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