Return-Path: Delivered-To: apmail-incubator-deltacloud-dev-archive@minotaur.apache.org Received: (qmail 51451 invoked from network); 3 Dec 2010 11:41:25 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 Dec 2010 11:41:25 -0000 Received: (qmail 89523 invoked by uid 500); 3 Dec 2010 11:41:25 -0000 Delivered-To: apmail-incubator-deltacloud-dev-archive@incubator.apache.org Received: (qmail 89284 invoked by uid 500); 3 Dec 2010 11:41:24 -0000 Mailing-List: contact deltacloud-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: deltacloud-dev@incubator.apache.org Delivered-To: mailing list deltacloud-dev@incubator.apache.org Received: (qmail 89265 invoked by uid 99); 3 Dec 2010 11:41:24 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Dec 2010 11:41:24 +0000 X-ASF-Spam-Status: No, hits=-5.0 required=10.0 tests=RCVD_IN_DNSWL_HI,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mfojtik@redhat.com designates 209.132.183.28 as permitted sender) Received: from [209.132.183.28] (HELO mx1.redhat.com) (209.132.183.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Dec 2010 11:41:19 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id oB3BewpR019795 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 3 Dec 2010 06:40:58 -0500 Received: from redhat.com (dhcp-2-138.brq.redhat.com [10.34.2.138]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id oB3BetTt014910 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 3 Dec 2010 06:40:57 -0500 Date: Fri, 3 Dec 2010 12:40:54 +0100 From: Michal Fojtik To: deltacloud-dev@incubator.apache.org Subject: Re: [PATCH] Adds 'create_blob' and 'delete_blob' for rackspace cloudfiles. Also some minor mods to haml for aesthetics (move 'delete' button and only display when bucket.size == 0) Message-ID: <20101203114054.GB3470@redhat.com> References: <1291042403-19205-1-git-send-email-marios@redhat.com> <1291042403-19205-2-git-send-email-marios@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <1291042403-19205-2-git-send-email-marios@redhat.com> X-Operating-System: Linux patashnik 2.6.35.6-48.fc14.i686.PAE User-Agent: Mutt/1.5.20 (2009-06-14) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 On 29/11/10 16:53 +0200, marios@redhat.com wrote: Resending this ACK ;-) >From: marios > >ACK. Code looks safe to me. EC2 driver fix is backported also for new EC2 >driver. > > -- Michal > >--- > server/lib/deltacloud/drivers/ec2/ec2_driver.rb | 4 +- > .../drivers/rackspace/rackspace_driver.rb | 29 +++++++++++++++++++- > server/views/buckets/index.html.haml | 3 +- > server/views/buckets/show.html.haml | 7 +++-- > 4 files changed, 36 insertions(+), 7 deletions(-) > >diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb >index d38f8f7..a7a9dbb 100644 >--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb >+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb >@@ -410,11 +410,11 @@ class EC2Driver < Deltacloud::BaseDriver > s3_client = s3_client(credentials) > #data is a construct with the temporary file created by server @.tempfile > #also file[:type] will give us the content-type >- res = s3_client.interface.put(bucket_id, blob_id, data.tempfile, {"Content-Type" => data[:type]}) >+ res = s3_client.interface.put(bucket_id, blob_id, data[:tempfile], {"Content-Type" => data[:type]}) > #create a new Blob object and return that > Blob.new( { :id => blob_id, > :bucket => bucket_id, >- :content_length => data.tempfile.length, >+ :content_length => data[:tempfile].length, > :content_type => data[:type], > :last_modified => '' > } >diff --git a/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb b/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb >index 7d7d367..e40fb9c 100644 >--- a/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb >+++ b/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb >@@ -228,6 +228,33 @@ class RackspaceDriver < Deltacloud::BaseDriver > end > end > >+#-- >+# Create Blob >+#-- >+ def create_blob(credentials, bucket_id, blob_id, blob_data, opts=nil) >+ cf = cloudfiles_client(credentials) >+ #must first create the object using cloudfiles_client.create_object >+ #then can write using object.write(data) >+ object = cf.container(bucket_id).create_object(blob_id) >+ #blob_data is a construct with data in .tempfile and content-type in {:type} >+ res = object.write(blob_data[:tempfile], {'Content-Type' => blob_data[:type]}) >+ Blob.new( { :id => object.name, >+ :bucket => object.container.name, >+ :content_length => blob_data[:tempfile].length, >+ :content_type => blob_data[:type], >+ :last_modified => '' >+ } >+ ) >+ end >+ >+#-- >+# Delete Blob >+#-- >+ def delete_blob(credentials, bucket_id, blob_id, opts=nil) >+ cf = cloudfiles_client(credentials) >+ cf.container(bucket_id).delete_object(blob_id) >+ end >+ > private > > def convert_srv_to_instance(srv) >@@ -271,7 +298,7 @@ private > > def cloudfiles_client(credentials) > safely do >- CloudFiles::Connection.new(credentials.user, credentials.password) >+ CloudFiles::Connection.new(:username => credentials.user, :api_key => credentials.password) > end > end > >diff --git a/server/views/buckets/index.html.haml b/server/views/buckets/index.html.haml >index 279d06d..0cb7ebe 100644 >--- a/server/views/buckets/index.html.haml >+++ b/server/views/buckets/index.html.haml >@@ -30,4 +30,5 @@ > -bucket.blob_list.each do |blob| > = blob > %td >- =link_to_action 'Delete', destroy_bucket_url(bucket.name), :delete >+ -if bucket.size == 0 >+ =link_to_action 'Delete', destroy_bucket_url(bucket.name), :delete >diff --git a/server/views/buckets/show.html.haml b/server/views/buckets/show.html.haml >index 6346a50..9be3696 100644 >--- a/server/views/buckets/show.html.haml >+++ b/server/views/buckets/show.html.haml >@@ -14,9 +14,10 @@ > %dd > -@bucket.blob_list.each do |blob| > = link_to blob, bucket_url(@bucket.name) + '/' + blob >- %dt Delete bucket (must be empty) >- %dd > %dt Create a new blob > %dd > =link_to 'Create Blob', bucket_url(@bucket.name) + '/new_blob' >- =link_to_action 'Delete', destroy_bucket_url(@bucket.name), :delete >+ %dt Delete bucket (must be empty) >+ %dd >+ -if @bucket.size == 0 >+ =link_to_action 'Delete', destroy_bucket_url(@bucket.name), :delete >\ No newline at end of file >-- >1.7.2.3 > -- -------------------------------------------------------- Michal Fojtik, mfojtik@redhat.com Deltacloud API: http://deltacloud.org --------------------------------------------------------