You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2011/03/11 20:46:46 UTC
svn commit: r1080739 - in /incubator/deltacloud/trunk/client/lib:
base_object.rb deltacloud.rb plain_formatter.rb
Author: marios
Date: Fri Mar 11 19:46:46 2011
New Revision: 1080739
URL: http://svn.apache.org/viewvc?rev=1080739&view=rev
Log:
Fix display of blobs in a bucket (blob_list) when bucket requested by id
Modified:
incubator/deltacloud/trunk/client/lib/base_object.rb
incubator/deltacloud/trunk/client/lib/deltacloud.rb
incubator/deltacloud/trunk/client/lib/plain_formatter.rb
Modified: incubator/deltacloud/trunk/client/lib/base_object.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/lib/base_object.rb?rev=1080739&r1=1080738&r2=1080739&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/lib/base_object.rb (original)
+++ incubator/deltacloud/trunk/client/lib/base_object.rb Fri Mar 11 19:46:46 2011
@@ -100,6 +100,7 @@ module DeltaCloud
when :text then return m[:value]
when :property then return m[:property]
when :collection then return m[:values]
+ when :list then return m[:value].join(", ")
else raise NoHandlerForMethod
end
end
@@ -115,6 +116,23 @@ module DeltaCloud
end
end
+ # This method adds blobs to the blob_list property
+ # of a bucket
+ def add_blob!(blob_name)
+ if @blob_list.nil?
+ @blob_list = [blob_name]
+ @objects << {
+ :type => :list,
+ :method_name => "blob_list",
+ :value => @blob_list
+ }
+ else
+ @blob_list << blob_name
+ current = search_for_method('blob_list')
+ current[:value] = @blob_list
+ end
+ end
+
private
def search_for_method(name)
Modified: incubator/deltacloud/trunk/client/lib/deltacloud.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/lib/deltacloud.rb?rev=1080739&r1=1080738&r2=1080739&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/lib/deltacloud.rb (original)
+++ incubator/deltacloud/trunk/client/lib/deltacloud.rb Fri Mar 11 19:46:46 2011
@@ -179,6 +179,7 @@ module DeltaCloud
# Add default attributes [id and href] to class
def base_object(model, response)
+
c = DeltaCloud.add_class("#{model}", DeltaCloud::guess_model_type(response))
xml_to_class(c, Nokogiri::XML(response).xpath("#{model.to_s.singularize}").first)
end
@@ -200,7 +201,6 @@ module DeltaCloud
# Traverse across XML document and deal with elements
item.xpath('./*').each do |attribute|
-
# Do a link for elements which are links to other REST models
if self.entry_points.keys.include?(:"#{attribute.name}s")
obj.add_link!(attribute.name, attribute['id']) && next
@@ -234,6 +234,11 @@ module DeltaCloud
obj.add_collection!(attribute.name, (attribute/'*').collect { |value| value.text }) && next
end
+ #deal with blobs for buckets
+ if(attribute.name == 'blob')
+ obj.add_blob!(attribute.attributes['id'].value) && next
+ end
+
# Anything else is treaten as text object
obj.add_text!(attribute.name, attribute.text.convert)
end
Modified: incubator/deltacloud/trunk/client/lib/plain_formatter.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/lib/plain_formatter.rb?rev=1080739&r1=1080738&r2=1080739&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/lib/plain_formatter.rb (original)
+++ incubator/deltacloud/trunk/client/lib/plain_formatter.rb Fri Mar 11 19:46:46 2011
@@ -94,6 +94,17 @@ module DeltaCloud
end
end
+ class Bucket < Base
+ def format
+ sprintf("%-50s | %-50s | %-10s | %-1000s",
+ @obj.id[0,50],
+ @obj.name[0,50],
+ @obj.size ? @obj.size.to_s[0,10] : "",
+ @obj.blob_list ? @obj.blob_list[0,1000] : ""
+ )
+ end
+ end
+
end
def format(obj)