aws 2.4.5 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/README.markdown +9 -75
  2. data/lib/acf/acf_interface.rb +6 -4
  3. data/lib/aws.rb +2 -1
  4. data/lib/awsbase/awsbase.rb +98 -65
  5. data/lib/awsbase/errors.rb +9 -5
  6. data/lib/awsbase/parsers.rb +226 -226
  7. data/lib/awsbase/utils.rb +255 -207
  8. data/lib/ec2/ec2.rb +243 -105
  9. data/lib/ec2/mon_interface.rb +2 -1
  10. data/lib/iam/iam.rb +31 -25
  11. data/lib/right_aws.rb +1 -1
  12. data/lib/s3/bucket.rb +7 -8
  13. data/lib/s3/grantee.rb +238 -238
  14. data/lib/s3/key.rb +281 -281
  15. data/lib/s3/s3.rb +2 -1
  16. data/lib/s3/s3_interface.rb +45 -35
  17. data/lib/sdb/active_sdb.rb +19 -22
  18. data/lib/sdb/sdb_interface.rb +4 -5
  19. data/lib/ses/ses.rb +123 -0
  20. data/lib/sqs/sqs.rb +5 -0
  21. data/lib/sqs/sqs_interface.rb +3 -3
  22. metadata +53 -104
  23. data/lib/awsbase/support.rb +0 -142
  24. data/test/acf/test_acf.rb +0 -148
  25. data/test/acf/test_helper.rb +0 -2
  26. data/test/ec2/test_ec2.rb +0 -205
  27. data/test/ec2/test_helper.rb +0 -2
  28. data/test/ec2/test_mon.rb +0 -17
  29. data/test/elb/test_elb.rb +0 -51
  30. data/test/http_connection.rb +0 -87
  31. data/test/iam/test_iam.rb +0 -36
  32. data/test/rds/test_rds.rb +0 -181
  33. data/test/s3/s3_test_base.rb +0 -23
  34. data/test/s3/test_helper.rb +0 -3
  35. data/test/s3/test_s3.rb +0 -162
  36. data/test/s3/test_s3_class.rb +0 -179
  37. data/test/s3/test_s3_rights.rb +0 -139
  38. data/test/s3/test_s3_stubbed.rb +0 -97
  39. data/test/sdb/test_active_sdb.rb +0 -338
  40. data/test/sdb/test_helper.rb +0 -3
  41. data/test/sdb/test_sdb.rb +0 -220
  42. data/test/sqs/test_helper.rb +0 -2
  43. data/test/sqs/test_sqs.rb +0 -232
  44. data/test/test_credentials.rb +0 -54
  45. data/test/ts_right_aws.rb +0 -13
@@ -70,6 +70,11 @@ module Aws
70
70
  @interface = SqsInterface.new(aws_access_key_id, aws_secret_access_key, params)
71
71
  end
72
72
 
73
+ def close_connection
74
+ @interface.close_connection
75
+ end
76
+
77
+
73
78
  # Retrieves a list of queues.
74
79
  # Returns an +array+ of +Queue+ instances.
75
80
  #
@@ -118,7 +118,7 @@ module Aws
118
118
  "Version" => API_VERSION}
119
119
  service_hash.update(param)
120
120
  service_params = signed_service_params(@aws_secret_access_key, service_hash, :get, @params[:server], service)
121
- request = Net::HTTP::Get.new("#{AwsUtils.URLencode(service)}?#{service_params}")
121
+ request = Net::HTTP::Get.new("#{Utils.URLencode(service)}?#{service_params}")
122
122
  # prepare output hash
123
123
  {:request => request,
124
124
  :server => @params[:server],
@@ -138,7 +138,7 @@ module Aws
138
138
  service_hash.update(param)
139
139
  #
140
140
  service_params = signed_service_params(@aws_secret_access_key, service_hash, :post, @params[:server], service)
141
- request = Net::HTTP::Post.new(AwsUtils::URLencode(service))
141
+ request = Net::HTTP::Post.new(Utils::URLencode(service))
142
142
  request['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8'
143
143
  request.body = service_params
144
144
  # prepare output hash
@@ -384,7 +384,7 @@ module Aws
384
384
  #
385
385
  def pop_message(queue_url)
386
386
  messages = pop_messages(queue_url)
387
- messages.blank? ? nil : messages[0]
387
+ messages.nil? ? nil : messages[0]
388
388
  rescue
389
389
  on_exception
390
390
  end
metadata CHANGED
@@ -1,71 +1,61 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: aws
3
- version: !ruby/object:Gem::Version
4
- version: 2.4.5
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 2.5.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Travis Reeder
9
9
  - Chad Arimura
10
10
  - RightScale
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-03-10 00:00:00.000000000 -08:00
15
- default_executable:
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
14
+
15
+ date: 2011-05-08 00:00:00 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
18
  name: uuidtools
19
- requirement: &27101172 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - ! '>='
23
- - !ruby/object:Gem::Version
24
- version: '0'
25
- type: :runtime
26
19
  prerelease: false
27
- version_requirements: *27101172
28
- - !ruby/object:Gem::Dependency
29
- name: http_connection
30
- requirement: &27100884 !ruby/object:Gem::Requirement
20
+ requirement: &id001 !ruby/object:Gem::Requirement
31
21
  none: false
32
- requirements:
33
- - - ! '>='
34
- - !ruby/object:Gem::Version
35
- version: '0'
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: "0"
36
26
  type: :runtime
27
+ version_requirements: *id001
28
+ - !ruby/object:Gem::Dependency
29
+ name: http_connection
37
30
  prerelease: false
38
- version_requirements: *27100884
39
- - !ruby/object:Gem::Dependency
40
- name: xml-simple
41
- requirement: &27100596 !ruby/object:Gem::Requirement
31
+ requirement: &id002 !ruby/object:Gem::Requirement
42
32
  none: false
43
- requirements:
44
- - - ! '>='
45
- - !ruby/object:Gem::Version
46
- version: '0'
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: "0"
47
37
  type: :runtime
38
+ version_requirements: *id002
39
+ - !ruby/object:Gem::Dependency
40
+ name: xml-simple
48
41
  prerelease: false
49
- version_requirements: *27100596
50
- - !ruby/object:Gem::Dependency
51
- name: activesupport
52
- requirement: &27100308 !ruby/object:Gem::Requirement
42
+ requirement: &id003 !ruby/object:Gem::Requirement
53
43
  none: false
54
- requirements:
55
- - - ! '>='
56
- - !ruby/object:Gem::Version
57
- version: '0'
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: "0"
58
48
  type: :runtime
59
- prerelease: false
60
- version_requirements: *27100308
61
- description: AWS Ruby Library for interfacing with Amazon Web Services including EC2,
62
- S3, SQS, SimpleDB and most of their other services as well. By http://www.appoxy.com
49
+ version_requirements: *id003
50
+ description: AWS Ruby Library for interfacing with Amazon Web Services including EC2, S3, SQS, SimpleDB and most of their other services as well. By http://www.appoxy.com
63
51
  email: travis@appoxy.com
64
52
  executables: []
53
+
65
54
  extensions: []
66
- extra_rdoc_files:
55
+
56
+ extra_rdoc_files:
67
57
  - README.markdown
68
- files:
58
+ files:
69
59
  - lib/acf/acf_interface.rb
70
60
  - lib/aws.rb
71
61
  - lib/awsbase/aws_response_array.rb
@@ -74,7 +64,6 @@ files:
74
64
  - lib/awsbase/errors.rb
75
65
  - lib/awsbase/parsers.rb
76
66
  - lib/awsbase/require_relative.rb
77
- - lib/awsbase/support.rb
78
67
  - lib/awsbase/utils.rb
79
68
  - lib/ec2/ec2.rb
80
69
  - lib/ec2/mon_interface.rb
@@ -89,76 +78,36 @@ files:
89
78
  - lib/s3/s3_interface.rb
90
79
  - lib/sdb/active_sdb.rb
91
80
  - lib/sdb/sdb_interface.rb
81
+ - lib/ses/ses.rb
92
82
  - lib/sqs/sqs.rb
93
83
  - lib/sqs/sqs_interface.rb
94
84
  - README.markdown
95
- - test/acf/test_acf.rb
96
- - test/acf/test_helper.rb
97
- - test/ec2/test_ec2.rb
98
- - test/ec2/test_helper.rb
99
- - test/ec2/test_mon.rb
100
- - test/elb/test_elb.rb
101
- - test/http_connection.rb
102
- - test/iam/test_iam.rb
103
- - test/rds/test_rds.rb
104
- - test/s3/s3_test_base.rb
105
- - test/s3/test_helper.rb
106
- - test/s3/test_s3.rb
107
- - test/s3/test_s3_class.rb
108
- - test/s3/test_s3_rights.rb
109
- - test/s3/test_s3_stubbed.rb
110
- - test/sdb/test_active_sdb.rb
111
- - test/sdb/test_helper.rb
112
- - test/sdb/test_sdb.rb
113
- - test/sqs/test_helper.rb
114
- - test/sqs/test_sqs.rb
115
- - test/test_credentials.rb
116
- - test/ts_right_aws.rb
117
- has_rdoc: true
118
85
  homepage: http://github.com/appoxy/aws/
119
86
  licenses: []
87
+
120
88
  post_install_message:
121
89
  rdoc_options: []
122
- require_paths:
90
+
91
+ require_paths:
123
92
  - lib
124
- required_ruby_version: !ruby/object:Gem::Requirement
93
+ required_ruby_version: !ruby/object:Gem::Requirement
125
94
  none: false
126
- requirements:
127
- - - ! '>='
128
- - !ruby/object:Gem::Version
129
- version: '0'
130
- required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: "0"
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
100
  none: false
132
- requirements:
133
- - - ! '>='
134
- - !ruby/object:Gem::Version
135
- version: '0'
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: "0"
136
105
  requirements: []
106
+
137
107
  rubyforge_project:
138
- rubygems_version: 1.6.2
108
+ rubygems_version: 1.7.2
139
109
  signing_key:
140
110
  specification_version: 3
141
111
  summary: AWS Ruby Library for interfacing with Amazon Web Services. By http://www.appoxy.com
142
- test_files:
143
- - test/acf/test_acf.rb
144
- - test/acf/test_helper.rb
145
- - test/ec2/test_ec2.rb
146
- - test/ec2/test_helper.rb
147
- - test/ec2/test_mon.rb
148
- - test/elb/test_elb.rb
149
- - test/http_connection.rb
150
- - test/iam/test_iam.rb
151
- - test/rds/test_rds.rb
152
- - test/s3/s3_test_base.rb
153
- - test/s3/test_helper.rb
154
- - test/s3/test_s3.rb
155
- - test/s3/test_s3_class.rb
156
- - test/s3/test_s3_rights.rb
157
- - test/s3/test_s3_stubbed.rb
158
- - test/sdb/test_active_sdb.rb
159
- - test/sdb/test_helper.rb
160
- - test/sdb/test_sdb.rb
161
- - test/sqs/test_helper.rb
162
- - test/sqs/test_sqs.rb
163
- - test/test_credentials.rb
164
- - test/ts_right_aws.rb
112
+ test_files: []
113
+
@@ -1,142 +0,0 @@
1
- # If ActiveSupport is loaded, then great - use it. But we don't
2
- # want a dependency on it, so if it's not present, define the few
3
- # extensions that we want to use...
4
- unless defined? ActiveSupport
5
- # These are ActiveSupport-;like extensions to do a few handy things in the gems
6
- # Derived from ActiveSupport, so the AS copyright notice applies:
7
- #
8
- #
9
- #
10
- # Copyright (c) 2005 David Heinemeier Hansson
11
- #
12
- # Permission is hereby granted, free of charge, to any person obtaining
13
- # a copy of this software and associated documentation files (the
14
- # "Software"), to deal in the Software without restriction, including
15
- # without limitation the rights to use, copy, modify, merge, publish,
16
- # distribute, sublicense, and/or sell copies of the Software, and to
17
- # permit persons to whom the Software is furnished to do so, subject to
18
- # the following conditions:
19
- #
20
- # The above copyright notice and this permission notice shall be
21
- # included in all copies or substantial portions of the Software.
22
- #
23
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
- #++
31
- #
32
- #
33
- class String #:nodoc:
34
-
35
- # Constantize tries to find a declared constant with the name specified
36
- # in the string. It raises a NameError when the name is not in CamelCase
37
- # or is not initialized.
38
- #
39
- # Examples
40
- # "Module".constantize #=> Module
41
- # "Class".constantize #=> Class
42
- def constantize()
43
- camel_cased_word = self
44
- names = camel_cased_word.split('::')
45
- names.shift if names.empty? || names.first.empty?
46
-
47
- constant = Object
48
- names.each do |name|
49
- # constant = constant.const_get(name, false) || constant.const_missing(name)
50
- if Module.method(:const_get).arity == 1
51
- # ruby 1.8
52
- constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
53
- else
54
- # ruby 1.9
55
- constant = constant.const_get(name, false) || constant.const_missing(name)
56
- end
57
- end
58
- constant
59
- end
60
-
61
- end
62
-
63
-
64
- class Object #:nodoc:
65
- # "", " ", nil, [], and {} are blank
66
- def blank?
67
- if respond_to?(:empty?) && respond_to?(:strip)
68
- empty? or strip.empty?
69
- elsif respond_to?(:empty?)
70
- empty?
71
- else
72
- !self
73
- end
74
- end
75
- end
76
-
77
- class NilClass #:nodoc:
78
- def blank?
79
- true
80
- end
81
- end
82
-
83
- class FalseClass #:nodoc:
84
- def blank?
85
- true
86
- end
87
- end
88
-
89
- class TrueClass #:nodoc:
90
- def blank?
91
- false
92
- end
93
- end
94
-
95
- class Array #:nodoc:
96
- alias_method :blank?, :empty?
97
- end
98
-
99
- class Hash #:nodoc:
100
- alias_method :blank?, :empty?
101
-
102
- # Return a new hash with all keys converted to symbols.
103
- def symbolize_keys
104
- inject({}) do |options, (key, value)|
105
- options[key.to_sym] = value
106
- options
107
- end
108
- end
109
-
110
- # Slice a hash to include only the given keys. This is useful for
111
- # limiting an options hash to valid keys before passing to a method:
112
- #
113
- # def search(criteria = {})
114
- # assert_valid_keys(:mass, :velocity, :time)
115
- # end
116
- #
117
- # search(options.slice(:mass, :velocity, :time))
118
- #
119
- # If you have an array of keys you want to limit to, you should splat them:
120
- #
121
- # valid_keys = [:mass, :velocity, :time]
122
- # search(options.slice(*valid_keys))
123
- def slice(*keys)
124
- keys = keys.map! { |key| convert_key(key) } if respond_to?(:convert_key)
125
- hash = self.class.new
126
- keys.each { |k| hash[k] = self[k] if has_key?(k) }
127
- hash
128
- end
129
- end
130
-
131
- class String #:nodoc:
132
- def blank?
133
- empty? || strip.empty?
134
- end
135
- end
136
-
137
- class Numeric #:nodoc:
138
- def blank?
139
- false
140
- end
141
- end
142
- end
@@ -1,148 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
- require File.dirname(__FILE__) + '/../test_credentials.rb'
3
-
4
- class TestAcf < Test::Unit::TestCase
5
-
6
- RIGHT_OBJECT_TEXT = 'Right test message'
7
-
8
- STDOUT.sync = true
9
-
10
- def setup
11
- TestCredentials.get_credentials
12
- @acf= Aws::AcfInterface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
13
- @s3 = Aws::S3.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
14
- @bucket_name = "right-acf-awesome-test-bucket-0001"
15
- @bucket_domain = "#{@bucket_name}.s3.amazonaws.com"
16
- end
17
-
18
- def test_01_list_distributions_part1
19
- distributions = nil
20
- assert_nothing_raised(Aws::AwsError) do
21
- distributions = @acf.list_distributions
22
- end
23
- assert distributions.is_a?(Array)
24
- end
25
-
26
- def test_02_try_to_create_for_bad_bucket
27
- # a bucket does not exist
28
- assert_raise(Aws::AwsError) do
29
- @acf.create_distribution("right-cloudfront-awesome-test-bucket-not-exist", "Mustn't to be born", true)
30
- end
31
- # a bucket is not a domain naming complied guy
32
- bucket_name = 'right_cloudfront_awesome_test_bucket_BAD'
33
- @s3.bucket(bucket_name, :create)
34
- assert_raise(Aws::AwsError) do
35
- @acf.create_distribution(bucket_name, "Mustn't to be born", true)
36
- end
37
- end
38
-
39
- def test_03_create
40
- comment = 'WooHoo!!!'
41
- # create a test bucket
42
- @s3.bucket(@bucket_name, :create)
43
- # create a distribution
44
- distribution = @acf.create_distribution(@bucket_domain, comment, true)
45
- assert_equal comment, distribution[:comment]
46
- assert distribution[:cnames].size == 0
47
- assert distribution[:enabled]
48
- end
49
-
50
- def test_04_list_distributions_part2
51
- distributions = @acf.list_distributions
52
- assert distributions.size > 0
53
- end
54
-
55
- def get_test_distribution
56
- @acf.list_distributions.select{ |d| d[:origin] == @bucket_domain }.first
57
- end
58
-
59
- def test_05_get_distribution
60
- old = get_test_distribution
61
- assert_nothing_raised do
62
- @acf.get_distribution(old[:aws_id])
63
- end
64
- end
65
-
66
- def test_06_get_and_set_config
67
- config = nil
68
- old = get_test_distribution
69
- assert_nothing_raised do
70
- config = @acf.get_distribution_config(old[:aws_id])
71
- end
72
- # change a config
73
- config[:enabled] = false
74
- config[:cnames] << 'x1.myawesomesite.com'
75
- config[:cnames] << 'x2.myawesomesite.com'
76
- # set config
77
- set_config_result = nil
78
- assert_nothing_raised do
79
- set_config_result = @acf.set_distribution_config(old[:aws_id], config)
80
- end
81
- assert set_config_result
82
- # reget the config and check
83
- new_config = nil
84
- assert_nothing_raised do
85
- new_config = @acf.get_distribution_config(old[:aws_id])
86
- end
87
- assert !new_config[:enabled]
88
- assert_equal new_config[:cnames].sort, ['x1.myawesomesite.com', 'x2.myawesomesite.com']
89
- assert_not_equal config[:e_tag], new_config[:e_tag]
90
-
91
- # try to update the old config again (must fail because ETAG has changed)
92
- assert_raise(Aws::AwsError) do
93
- @acf.set_distribution_config(old[:aws_id], config)
94
- end
95
- end
96
-
97
- def test_07_caching
98
- # enable caching
99
- @acf.params[:cache] = true
100
- # list distributions
101
- @acf.list_distributions
102
- # list the distributions again - cache should hit
103
- assert_raise(Aws::AwsNoChange) do
104
- @acf.list_distributions
105
- end
106
- # disable caching
107
- @acf.params[:cache] = true
108
- end
109
-
110
- def test_08_delete_distribution
111
- # we need ETAG so use get_distribution
112
- distribution = @acf.get_distribution(get_test_distribution[:aws_id])
113
- # try to delete a distribution
114
- # should fail because
115
- if distribution[:status] == 'InProgress'
116
- # should fail because the distribution is not deployed yet
117
- assert_raise(Aws::AwsError) do
118
- @acf.delete_distribution(distribution[:aws_id], distribution[:e_tag])
119
- end
120
- # wait for a deployed state
121
- print "waiting up to 5 min while the distribution is being deployed: "
122
- 100.times do
123
- print '.'
124
- distribution = @acf.get_distribution(distribution[:aws_id])
125
- if distribution[:status] == 'Deployed'
126
- print ' done'
127
- break
128
- end
129
- sleep 3
130
- end
131
- puts
132
- end
133
-
134
- # only disabled and deployed distribution can be deleted
135
- assert_equal 'Deployed', distribution[:status]
136
- assert !distribution[:enabled]
137
-
138
- # delete the distribution
139
- assert_nothing_raised do
140
- @acf.delete_distribution(distribution[:aws_id], distribution[:e_tag])
141
- end
142
- end
143
-
144
- def test_09_drop_bucket
145
- assert @s3.bucket(@bucket_name).delete
146
- end
147
-
148
- end