From: marios <[email protected]>

Signed-off-by: marios <[email protected]>
---
 server/lib/deltacloud/helpers/conversion_helper.rb |    8 ++++++--
 server/lib/deltacloud/models/bucket.rb             |    6 ++++--
 server/server.rb                                   |    2 +-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/server/lib/deltacloud/helpers/conversion_helper.rb 
b/server/lib/deltacloud/helpers/conversion_helper.rb
index 9a33482..4afbc0e 100644
--- a/server/lib/deltacloud/helpers/conversion_helper.rb
+++ b/server/lib/deltacloud/helpers/conversion_helper.rb
@@ -19,7 +19,7 @@ require 'deltacloud/base_driver'
 module ConversionHelper
 
   def convert_to_json(type, obj)
-    if ( [ :image, :realm, :instance, :storage_volume, :storage_snapshot, 
:hardware_profile, :key, :bucket, :address ].include?( type ) )
+    if ( [ :image, :realm, :instance, :storage_volume, :storage_snapshot, 
:hardware_profile, :key, :bucket, :blob, :firewall, :load_balancer, :address 
].include?( type ) )
       if Array.eql?(obj.class)
         data = obj.collect do |o|
           o.to_hash.merge({ :href => self.send(:"#{type}_url", 
type.eql?(:hardware_profile) ? o.name : o.id ) })
@@ -27,7 +27,11 @@ module ConversionHelper
         type = type.to_s.pluralize
       else
         data = obj.to_hash
-        data.merge!({ :href => self.send(:"#{type}_url", data[:id]) })
+        if type == :blob
+          data.merge!({ :href => self.send(:"bucket_url", 
"#{data[:bucket]}/#{data[:id]}" ) })
+        else
+          data.merge!({ :href => self.send(:"#{type}_url", data[:id]) })
+        end
       end
       return { :"#{type}" => data }.to_json
     end
diff --git a/server/lib/deltacloud/models/bucket.rb 
b/server/lib/deltacloud/models/bucket.rb
index bef36ac..d7c984b 100644
--- a/server/lib/deltacloud/models/bucket.rb
+++ b/server/lib/deltacloud/models/bucket.rb
@@ -24,8 +24,10 @@ class Bucket < BaseModel
 
   def to_hash
     h = self.to_hash_original
-    h[:blob_list] = self.blob_list.collect { |blob| { :id => blob,
-      :href => 
"#{Sinatra::UrlForHelper::DEFAULT_URI_PREFIX}/buckets/#{self.id}/#{blob.id}"}}
+    unless blob_list.nil?
+      h[:blob_list] = self.blob_list.collect { |blob| { :id => blob,
+        :href => 
"#{Sinatra::UrlForHelper::DEFAULT_URI_PREFIX}/buckets/#{self.id}/#{blob}"}}
+    end
     return h
   end
 end
diff --git a/server/server.rb b/server/server.rb
index ae23263..6e4342f 100644
--- a/server/server.rb
+++ b/server/server.rb
@@ -776,7 +776,7 @@ get 
"#{Sinatra::UrlForHelper::DEFAULT_URI_PREFIX}/buckets/:bucket/:blob" do
     respond_to do |format|
       format.html { haml :"blobs/show" }
       format.xml { haml :"blobs/show" }
-      format.json { convert_to_json(blobs, @blob) }
+      format.json { convert_to_json(:blob, @blob) }
       end
   else
       report_error(404)
-- 
1.7.3.4

Reply via email to