From 673c5a1407e46741aee1b92a75c781cfb327d474 Mon Sep 17 00:00:00 2001 From: Travis Reeder Date: Wed, 22 Dec 2010 14:08:25 -0800 Subject: [PATCH 1/4] Added options to batch_put_attributes --- lib/sdb/right_sdb_interface.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/sdb/right_sdb_interface.rb b/lib/sdb/right_sdb_interface.rb index 9d44106..14f5223 100644 --- a/lib/sdb/right_sdb_interface.rb +++ b/lib/sdb/right_sdb_interface.rb @@ -389,7 +389,7 @@ def create_domain_if_not_exist(ex, domain_name) # # items is an array of Aws::SdbInterface::Item.new(o.id, o.attributes, true) - def batch_put_attributes(domain_name, items) + def batch_put_attributes(domain_name, items, options={}) params = {'DomainName' => domain_name} i = 0 items.each do |item| @@ -399,7 +399,17 @@ def batch_put_attributes(domain_name, items) i += 1 end link = generate_request("BatchPutAttributes", params) - request_info(link, QSdbSimpleParser.new) + begin + request_info(link, QSdbSimpleParser.new, options) + rescue Aws::AwsError => ex + # puts "RESCUED in batch_put_attributes: " + $! + if options[:create_domain] && create_domain_if_not_exist(ex, domain_name) + options.delete(:create_domain) + batch_put_attributes(domain_name, items, options) + else + raise ex + end + end rescue Exception on_exception end From 3d95f0b96988ce500d62a5c4438e30aab293c3fa Mon Sep 17 00:00:00 2001 From: Travis Reeder Date: Wed, 22 Dec 2010 15:26:46 -0800 Subject: [PATCH 2/4] Added delete_key to bucket. --- lib/s3/right_s3.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/s3/right_s3.rb b/lib/s3/right_s3.rb index f081444..7935f56 100644 --- a/lib/s3/right_s3.rb +++ b/lib/s3/right_s3.rb @@ -232,7 +232,7 @@ def keys(options={}, head=false) # p service #=> {"max-keys"=>"2", "prefix"=>"logs", "name"=>"my_awesome_bucket", "marker"=>"", "is_truncated"=>true} # def keys_and_service(options={}, head=false) - opt = {}; options.each { |key, value| opt[key.to_s] = value } + opt = {}; options.each { |key, value| opt[key.to_s] = value } service_data = {} thislist = {} list = [] @@ -364,6 +364,11 @@ def delete(force=false) force ? @s3.interface.force_delete_bucket(@name) : @s3.interface.delete_bucket(@name) end + # Deletes an object from s3 in this bucket. + def delete_key(key) + @s3.interface.delete(name, key) + end + # Return a list of grantees. # def grantees @@ -615,7 +620,7 @@ def reload_meta # key.reload_meta #=> {"family"=>"oops", "race" => "troll"} # def save_meta(meta_headers) - meta = self.class.add_meta_prefix(meta_headers) + meta = self.class.add_meta_prefix(meta_headers) @bucket.s3.interface.copy(@bucket.name, @name, @bucket.name, @name, :replace, meta) @meta_headers = self.class.split_meta(meta)[1] end From 6076a3f6768bb94a5d05319f46d25f9e70a64212 Mon Sep 17 00:00:00 2001 From: Travis Reeder Date: Wed, 22 Dec 2010 15:27:18 -0800 Subject: [PATCH 3/4] version bump. --- VERSION.yml | 2 +- aws.gemspec | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION.yml b/VERSION.yml index 3645800..022393b 100644 --- a/VERSION.yml +++ b/VERSION.yml @@ -1,5 +1,5 @@ --- :major: 2 :minor: 3 -:patch: 32 +:patch: 34 :build: diff --git a/aws.gemspec b/aws.gemspec index ec395e2..5a112b0 100644 --- a/aws.gemspec +++ b/aws.gemspec @@ -5,11 +5,11 @@ Gem::Specification.new do |s| s.name = %q{aws} - s.version = "2.3.32" + s.version = "2.3.34" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Travis Reeder", "Chad Arimura", "RightScale"] - s.date = %q{2010-12-19} + s.date = %q{2010-12-22} s.description = %q{AWS Ruby Library for interfacing with Amazon Web Services.} s.email = %q{travis@appoxy.com} s.extra_rdoc_files = [ From da3e9541308f8a7ff8f6e33c143c53766d17bbb1 Mon Sep 17 00:00:00 2001 From: Travis Reeder Date: Sun, 26 Dec 2010 17:03:45 -0800 Subject: [PATCH 4/4] prints message when creating new domain. --- lib/sdb/right_sdb_interface.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/sdb/right_sdb_interface.rb b/lib/sdb/right_sdb_interface.rb index 14f5223..8be6d00 100644 --- a/lib/sdb/right_sdb_interface.rb +++ b/lib/sdb/right_sdb_interface.rb @@ -381,6 +381,7 @@ def put_attributes(domain_name, item_name, attributes, replace = false, options= def create_domain_if_not_exist(ex, domain_name) if ex.message().index("NoSuchDomain") + puts "Creating domain: #{domain_name}" create_domain(domain_name) return true end