You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by ma...@redhat.com on 2011/11/02 11:27:04 UTC

[PATCH 1/3] Fixes for google storage driver - blob metadata listing and valid_credentials method

From: marios <ma...@redhat.com>


Signed-off-by: marios <ma...@redhat.com>
---
 .../lib/deltacloud/drivers/google/google_driver.rb |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/server/lib/deltacloud/drivers/google/google_driver.rb b/server/lib/deltacloud/drivers/google/google_driver.rb
index f804fcf..2ffb5f8 100644
--- a/server/lib/deltacloud/drivers/google/google_driver.rb
+++ b/server/lib/deltacloud/drivers/google/google_driver.rb
@@ -83,12 +83,14 @@ class GoogleDriver < Deltacloud::BaseDriver
     google_client = new_client(credentials)
     safely do
       google_blob = google_client.head_object(opts['bucket'], opts[:id]).headers
+      meta_hash = google_blob.inject({}){|result, (k,v)| result[k]=v if k=~/^x-goog-meta-/i ; result}
+      meta_hash.gsub_keys("x-goog-meta-", "")
       blobs << Blob.new({   :id => opts[:id],
                  :bucket => opts['bucket'],
                  :content_length => google_blob['Content-Length'],
                  :content_type => google_blob['Content-Type'],
                  :last_modified => google_blob['Last-Modified'],
-                 :user_metadata => google_blob.select{|k,v| k.match(/^x-goog-meta-/i)}
+                 :user_metadata => meta_hash
               })
 
     end
@@ -193,6 +195,14 @@ class GoogleDriver < Deltacloud::BaseDriver
     end
   end
 
+  def valid_credentials?(credentials)
+    begin
+      new_client(credentials)
+    rescue
+      return false
+    end
+    return true
+  end
 
   private
 
-- 
1.7.6.4