fog 0.0.3

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 (171) hide show
  1. data/.document +5 -0
  2. data/.gitignore +6 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +7 -0
  5. data/Rakefile +98 -0
  6. data/VERSION +1 -0
  7. data/benchs/fog_vs.rb +135 -0
  8. data/benchs/headers_split_vs_match.rb +18 -0
  9. data/benchs/params.rb +43 -0
  10. data/benchs/parse_vs_push.rb +60 -0
  11. data/benchs/stripping.rb +26 -0
  12. data/lib/fog.rb +21 -0
  13. data/lib/fog/aws.rb +145 -0
  14. data/lib/fog/aws/ec2.rb +173 -0
  15. data/lib/fog/aws/models/ec2/address.rb +31 -0
  16. data/lib/fog/aws/models/ec2/addresses.rb +36 -0
  17. data/lib/fog/aws/models/ec2/key_pair.rb +35 -0
  18. data/lib/fog/aws/models/ec2/key_pairs.rb +36 -0
  19. data/lib/fog/aws/models/ec2/volume.rb +47 -0
  20. data/lib/fog/aws/models/ec2/volumes.rb +36 -0
  21. data/lib/fog/aws/models/s3/bucket.rb +77 -0
  22. data/lib/fog/aws/models/s3/buckets.rb +83 -0
  23. data/lib/fog/aws/models/s3/object.rb +76 -0
  24. data/lib/fog/aws/models/s3/objects.rb +97 -0
  25. data/lib/fog/aws/models/s3/owner.rb +18 -0
  26. data/lib/fog/aws/parsers/ec2/allocate_address.rb +19 -0
  27. data/lib/fog/aws/parsers/ec2/attach_volume.rb +22 -0
  28. data/lib/fog/aws/parsers/ec2/basic.rb +25 -0
  29. data/lib/fog/aws/parsers/ec2/create_key_pair.rb +20 -0
  30. data/lib/fog/aws/parsers/ec2/create_snapshot.rb +22 -0
  31. data/lib/fog/aws/parsers/ec2/create_volume.rb +24 -0
  32. data/lib/fog/aws/parsers/ec2/describe_addresses.rb +30 -0
  33. data/lib/fog/aws/parsers/ec2/describe_availability_zones.rb +30 -0
  34. data/lib/fog/aws/parsers/ec2/describe_images.rb +49 -0
  35. data/lib/fog/aws/parsers/ec2/describe_instances.rb +73 -0
  36. data/lib/fog/aws/parsers/ec2/describe_key_pairs.rb +30 -0
  37. data/lib/fog/aws/parsers/ec2/describe_regions.rb +30 -0
  38. data/lib/fog/aws/parsers/ec2/describe_security_groups.rb +75 -0
  39. data/lib/fog/aws/parsers/ec2/describe_snapshots.rb +30 -0
  40. data/lib/fog/aws/parsers/ec2/describe_volumes.rb +57 -0
  41. data/lib/fog/aws/parsers/ec2/detach_volume.rb +22 -0
  42. data/lib/fog/aws/parsers/ec2/get_console_output.rb +28 -0
  43. data/lib/fog/aws/parsers/ec2/run_instances.rb +65 -0
  44. data/lib/fog/aws/parsers/ec2/terminate_instances.rb +55 -0
  45. data/lib/fog/aws/parsers/s3/copy_object.rb +22 -0
  46. data/lib/fog/aws/parsers/s3/get_bucket.rb +46 -0
  47. data/lib/fog/aws/parsers/s3/get_bucket_location.rb +20 -0
  48. data/lib/fog/aws/parsers/s3/get_request_payment.rb +20 -0
  49. data/lib/fog/aws/parsers/s3/get_service.rb +32 -0
  50. data/lib/fog/aws/parsers/simpledb/basic.rb +31 -0
  51. data/lib/fog/aws/parsers/simpledb/domain_metadata.rb +30 -0
  52. data/lib/fog/aws/parsers/simpledb/get_attributes.rb +34 -0
  53. data/lib/fog/aws/parsers/simpledb/list_domains.rb +28 -0
  54. data/lib/fog/aws/parsers/simpledb/select.rb +39 -0
  55. data/lib/fog/aws/requests/ec2/allocate_address.rb +50 -0
  56. data/lib/fog/aws/requests/ec2/associate_address.rb +59 -0
  57. data/lib/fog/aws/requests/ec2/attach_volume.rb +71 -0
  58. data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +32 -0
  59. data/lib/fog/aws/requests/ec2/create_key_pair.rb +60 -0
  60. data/lib/fog/aws/requests/ec2/create_security_group.rb +61 -0
  61. data/lib/fog/aws/requests/ec2/create_snapshot.rb +65 -0
  62. data/lib/fog/aws/requests/ec2/create_volume.rb +66 -0
  63. data/lib/fog/aws/requests/ec2/delete_key_pair.rb +49 -0
  64. data/lib/fog/aws/requests/ec2/delete_security_group.rb +52 -0
  65. data/lib/fog/aws/requests/ec2/delete_snapshot.rb +53 -0
  66. data/lib/fog/aws/requests/ec2/delete_volume.rb +55 -0
  67. data/lib/fog/aws/requests/ec2/describe_addresses.rb +61 -0
  68. data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +64 -0
  69. data/lib/fog/aws/requests/ec2/describe_images.rb +41 -0
  70. data/lib/fog/aws/requests/ec2/describe_instances.rb +114 -0
  71. data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +63 -0
  72. data/lib/fog/aws/requests/ec2/describe_regions.rb +61 -0
  73. data/lib/fog/aws/requests/ec2/describe_security_groups.rb +71 -0
  74. data/lib/fog/aws/requests/ec2/describe_snapshots.rb +78 -0
  75. data/lib/fog/aws/requests/ec2/describe_volumes.rb +85 -0
  76. data/lib/fog/aws/requests/ec2/detach_volume.rb +62 -0
  77. data/lib/fog/aws/requests/ec2/disassociate_address.rb +55 -0
  78. data/lib/fog/aws/requests/ec2/get_console_output.rb +26 -0
  79. data/lib/fog/aws/requests/ec2/reboot_instances.rb +24 -0
  80. data/lib/fog/aws/requests/ec2/release_address.rb +50 -0
  81. data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +32 -0
  82. data/lib/fog/aws/requests/ec2/run_instances.rb +134 -0
  83. data/lib/fog/aws/requests/ec2/terminate_instances.rb +80 -0
  84. data/lib/fog/aws/requests/s3/copy_object.rb +79 -0
  85. data/lib/fog/aws/requests/s3/delete_bucket.rb +53 -0
  86. data/lib/fog/aws/requests/s3/delete_object.rb +52 -0
  87. data/lib/fog/aws/requests/s3/get_bucket.rb +100 -0
  88. data/lib/fog/aws/requests/s3/get_bucket_location.rb +53 -0
  89. data/lib/fog/aws/requests/s3/get_object.rb +82 -0
  90. data/lib/fog/aws/requests/s3/get_request_payment.rb +53 -0
  91. data/lib/fog/aws/requests/s3/get_service.rb +58 -0
  92. data/lib/fog/aws/requests/s3/head_object.rb +61 -0
  93. data/lib/fog/aws/requests/s3/put_bucket.rb +69 -0
  94. data/lib/fog/aws/requests/s3/put_object.rb +76 -0
  95. data/lib/fog/aws/requests/s3/put_request_payment.rb +56 -0
  96. data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +31 -0
  97. data/lib/fog/aws/requests/simpledb/create_domain.rb +25 -0
  98. data/lib/fog/aws/requests/simpledb/delete_attributes.rb +34 -0
  99. data/lib/fog/aws/requests/simpledb/delete_domain.rb +25 -0
  100. data/lib/fog/aws/requests/simpledb/domain_metadata.rb +30 -0
  101. data/lib/fog/aws/requests/simpledb/get_attributes.rb +35 -0
  102. data/lib/fog/aws/requests/simpledb/list_domains.rb +30 -0
  103. data/lib/fog/aws/requests/simpledb/put_attributes.rb +29 -0
  104. data/lib/fog/aws/requests/simpledb/select.rb +29 -0
  105. data/lib/fog/aws/s3.rb +157 -0
  106. data/lib/fog/aws/simpledb.rb +157 -0
  107. data/lib/fog/collection.rb +77 -0
  108. data/lib/fog/connection.rb +130 -0
  109. data/lib/fog/errors.rb +145 -0
  110. data/lib/fog/model.rb +72 -0
  111. data/lib/fog/parser.rb +30 -0
  112. data/lib/fog/response.rb +12 -0
  113. data/spec/aws/models/s3/bucket_spec.rb +130 -0
  114. data/spec/aws/models/s3/buckets_spec.rb +79 -0
  115. data/spec/aws/models/s3/object_spec.rb +121 -0
  116. data/spec/aws/models/s3/objects_spec.rb +112 -0
  117. data/spec/aws/models/s3/owner_spec.rb +18 -0
  118. data/spec/aws/requests/ec2/allocate_address_spec.rb +18 -0
  119. data/spec/aws/requests/ec2/associate_address_spec.rb +42 -0
  120. data/spec/aws/requests/ec2/attach_volume_spec.rb +53 -0
  121. data/spec/aws/requests/ec2/authorize_security_group_ingress_spec.rb +26 -0
  122. data/spec/aws/requests/ec2/create_key_pair_spec.rb +36 -0
  123. data/spec/aws/requests/ec2/create_security_group_spec.rb +34 -0
  124. data/spec/aws/requests/ec2/create_snapshot_spec.rb +37 -0
  125. data/spec/aws/requests/ec2/create_volume_spec.rb +23 -0
  126. data/spec/aws/requests/ec2/delete_key_pair_spec.rb +21 -0
  127. data/spec/aws/requests/ec2/delete_security_group_spec.rb +26 -0
  128. data/spec/aws/requests/ec2/delete_snapshot_spec.rb +35 -0
  129. data/spec/aws/requests/ec2/delete_volume_spec.rb +26 -0
  130. data/spec/aws/requests/ec2/describe_addresses_spec.rb +38 -0
  131. data/spec/aws/requests/ec2/describe_availability_zones_spec.rb +23 -0
  132. data/spec/aws/requests/ec2/describe_images_spec.rb +39 -0
  133. data/spec/aws/requests/ec2/describe_instances_spec.rb +86 -0
  134. data/spec/aws/requests/ec2/describe_key_pairs_spec.rb +42 -0
  135. data/spec/aws/requests/ec2/describe_regions_spec.rb +21 -0
  136. data/spec/aws/requests/ec2/describe_security_groups_spec.rb +51 -0
  137. data/spec/aws/requests/ec2/describe_snapshots_spec.rb +54 -0
  138. data/spec/aws/requests/ec2/describe_volumes_spec.rb +50 -0
  139. data/spec/aws/requests/ec2/detach_volume_spec.rb +43 -0
  140. data/spec/aws/requests/ec2/disassociate_address_spec.rb +35 -0
  141. data/spec/aws/requests/ec2/get_console_output_spec.rb +23 -0
  142. data/spec/aws/requests/ec2/reboot_instances_spec.rb +21 -0
  143. data/spec/aws/requests/ec2/release_address_spec.rb +26 -0
  144. data/spec/aws/requests/ec2/revoke_security_group_ingress_spec.rb +32 -0
  145. data/spec/aws/requests/ec2/run_instances_spec.rb +41 -0
  146. data/spec/aws/requests/ec2/terminate_instances_spec.rb +35 -0
  147. data/spec/aws/requests/s3/copy_object_spec.rb +62 -0
  148. data/spec/aws/requests/s3/delete_bucket_spec.rb +36 -0
  149. data/spec/aws/requests/s3/delete_object_spec.rb +37 -0
  150. data/spec/aws/requests/s3/get_bucket_location_spec.rb +30 -0
  151. data/spec/aws/requests/s3/get_bucket_spec.rb +110 -0
  152. data/spec/aws/requests/s3/get_object_spec.rb +45 -0
  153. data/spec/aws/requests/s3/get_request_payment_spec.rb +30 -0
  154. data/spec/aws/requests/s3/get_service_spec.rb +33 -0
  155. data/spec/aws/requests/s3/head_object_spec.rb +28 -0
  156. data/spec/aws/requests/s3/put_bucket_spec.rb +19 -0
  157. data/spec/aws/requests/s3/put_object_spec.rb +38 -0
  158. data/spec/aws/requests/s3/put_request_payment_spec.rb +29 -0
  159. data/spec/aws/requests/simpledb/batch_put_attributes_spec.rb +22 -0
  160. data/spec/aws/requests/simpledb/create_domain_spec.rb +21 -0
  161. data/spec/aws/requests/simpledb/delete_attributes_spec.rb +22 -0
  162. data/spec/aws/requests/simpledb/delete_domain_spec.rb +21 -0
  163. data/spec/aws/requests/simpledb/domain_metadata_spec.rb +43 -0
  164. data/spec/aws/requests/simpledb/get_attributes_spec.rb +31 -0
  165. data/spec/aws/requests/simpledb/list_domains_spec.rb +30 -0
  166. data/spec/aws/requests/simpledb/put_attributes_spec.rb +22 -0
  167. data/spec/aws/requests/simpledb/select_spec.rb +9 -0
  168. data/spec/lorem.txt +1 -0
  169. data/spec/spec.opts +1 -0
  170. data/spec/spec_helper.rb +66 -0
  171. metadata +309 -0
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.authorize_security_group_ingress' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ ec2.create_security_group('fog_security_group', 'a security group for testing fog')
8
+ end
9
+
10
+ after(:each) do
11
+ ec2.delete_security_group('fog_security_group')
12
+ end
13
+
14
+ it "should return proper attributes" do
15
+ actual = ec2.authorize_security_group_ingress({
16
+ 'FromPort' => 80,
17
+ 'GroupName' => 'fog_security_group',
18
+ 'IpProtocol' => 'tcp',
19
+ 'ToPort' => 80,
20
+ })
21
+ actual.body['requestId'].should be_a(String)
22
+ [false, true].should include(actual.body['return'])
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.create_key_pair' do
4
+ describe 'success' do
5
+
6
+ after(:each) do
7
+ ec2.delete_key_pair('fog_key_pair')
8
+ end
9
+
10
+ it "should return proper attributes" do
11
+ actual = ec2.create_key_pair('fog_key_pair')
12
+ actual.body['keyFingerprint'].should be_a(String)
13
+ actual.body['keyMaterial'].should be_a(String)
14
+ actual.body['keyName'].should be_a(String)
15
+ actual.body['requestId'].should be_a(String)
16
+ end
17
+
18
+ end
19
+ describe 'failure' do
20
+
21
+ before(:each) do
22
+ ec2.create_key_pair('fog_key_pair')
23
+ end
24
+
25
+ after(:each) do
26
+ ec2.delete_key_pair('fog_key_pair')
27
+ end
28
+
29
+ it "should raise a BadRequest when the key pair already exists" do
30
+ lambda {
31
+ ec2.create_key_pair('fog_key_pair')
32
+ }.should raise_error(Fog::Errors::BadRequest)
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.create_security_group' do
4
+ describe 'success' do
5
+
6
+ after(:each) do
7
+ ec2.delete_security_group('fog_security_group')
8
+ end
9
+
10
+ it "should return proper attributes" do
11
+ actual = ec2.create_security_group('fog_security_group', 'a security group for testing fog')
12
+ actual.body['requestId'].should be_a(String)
13
+ [false, true].should include(actual.body['return'])
14
+ end
15
+
16
+ end
17
+ describe 'failure' do
18
+
19
+ before(:each) do
20
+ ec2.create_security_group('fog_security_group', 'a security group for testing fog')
21
+ end
22
+
23
+ after(:each) do
24
+ ec2.delete_security_group('fog_security_group')
25
+ end
26
+
27
+ it "should raise a BadRequest error when the security group already exists" do
28
+ lambda {
29
+ ec2.create_security_group('fog_security_group', 'a security group for testing fog')
30
+ }.should raise_error(Fog::Errors::BadRequest)
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,37 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.create_snapshot' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @volume_id = ec2.create_volume('us-east-1a', 1).body['volumeId']
8
+ end
9
+
10
+ after(:each) do
11
+ ec2.delete_volume(@volume_id)
12
+ eventually do
13
+ ec2.delete_snapshot(@snapshot_id)
14
+ end
15
+ end
16
+
17
+ it "should return proper attributes" do
18
+ actual = ec2.create_snapshot(@volume_id)
19
+ actual.body['progress'].should be_a(String)
20
+ @snapshot_id = actual.body['snapshotId']
21
+ actual.body['snapshotId'].should be_a(String)
22
+ actual.body['startTime'].should be_a(Time)
23
+ actual.body['status'].should be_a(String)
24
+ actual.body['volumeId'].should be_a(String)
25
+ end
26
+
27
+ end
28
+ describe 'failure' do
29
+
30
+ it "should raise a BadRequest error if the volume does not exist" do
31
+ lambda {
32
+ ec2.create_snapshot('vol-00000000')
33
+ }.should raise_error(Fog::Errors::BadRequest)
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.create_volume' do
4
+ describe 'success' do
5
+
6
+ after(:each) do
7
+ ec2.delete_volume(@volume_id)
8
+ end
9
+
10
+ it "should return proper attributes" do
11
+ actual = ec2.create_volume('us-east-1a', 1)
12
+ actual.body['availabilityZone'].should be_a(String)
13
+ actual.body['createTime'].should be_a(Time)
14
+ actual.body['requestId'].should be_a(String)
15
+ actual.body['size'].should == 1
16
+ actual.body['snapshotId'].should == ''
17
+ actual.body['status'].should be_a(String)
18
+ actual.body['volumeId'].should be_a(String)
19
+ @volume_id = actual.body['volumeId']
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.delete_key_pair' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ ec2.create_key_pair('fog_key_name')
8
+ @response = ec2.delete_key_pair('fog_key_name')
9
+ end
10
+
11
+ it "should return proper attributes" do
12
+ @response.body['requestId'].should be_a(String)
13
+ [false, true].should include(@response.body['return'])
14
+ end
15
+
16
+ it "should not raise an error if the key pair does not exist" do
17
+ ec2.delete_key_pair('not_a_key_name')
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.delete_security_group' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ ec2.create_security_group('fog_security_group', 'a security group for testing fog')
8
+ end
9
+
10
+ it "should return proper attributes" do
11
+ actual = ec2.delete_security_group('fog_security_group')
12
+ actual.body['requestId'].should be_a(String)
13
+ [false, true].should include(actual.body['return'])
14
+ end
15
+
16
+ end
17
+ describe 'failure' do
18
+
19
+ it "should raise a BadRequest error if the security group does not exist" do
20
+ lambda {
21
+ ec2.delete_security_group('fog_not_a_security_group')
22
+ }.should raise_error(Fog::Errors::BadRequest)
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.delete_snapshot' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @volume_id = ec2.create_volume('us-east-1a', 1).body['volumeId']
8
+ @snapshot_id = ec2.create_snapshot(@volume_id).body['snapshotId']
9
+ end
10
+
11
+ after(:each) do
12
+ ec2.delete_volume(@volume_id)
13
+ end
14
+
15
+ it "should return proper attributes" do
16
+ eventually do
17
+ actual = ec2.delete_snapshot(@snapshot_id)
18
+ unless actual.body.empty?
19
+ actual.body['requestId'].should be_a(String)
20
+ [false, true].should include(actual.body['return'])
21
+ end
22
+ end
23
+ end
24
+
25
+ end
26
+ describe 'failure' do
27
+
28
+ it "should raise a BadRequest error if snapshot does not exist" do
29
+ lambda {
30
+ ec2.release_address('snap-00000000')
31
+ }.should raise_error(Fog::Errors::BadRequest)
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.create_volume' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @volume_id = ec2.create_volume('us-east-1a', 1).body['volumeId']
8
+ end
9
+
10
+ it "should return proper attributes" do
11
+ actual = ec2.delete_volume(@volume_id)
12
+ actual.body['requestId'].should be_a(String)
13
+ actual.body['return'].should == true
14
+ end
15
+
16
+ end
17
+ describe 'failure' do
18
+
19
+ it "should raise a BadRequest error if volume does not exist" do
20
+ lambda {
21
+ ec2.release_address('vol-00000000')
22
+ }.should raise_error(Fog::Errors::BadRequest)
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,38 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.describe_addresses' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @public_ip = ec2.allocate_address.body['publicIp']
8
+ end
9
+
10
+ after(:each) do
11
+ ec2.release_address(@public_ip)
12
+ end
13
+
14
+ it "should return proper attributes with no params" do
15
+ actual = ec2.describe_addresses
16
+ actual.body['requestId'].should be_a(String)
17
+ item = actual.body['addressesSet'].select {|address| address['publicIp'] == @public_ip}
18
+ item.should_not be_nil
19
+ end
20
+
21
+ it "should return proper attributes for specific ip" do
22
+ actual = ec2.describe_addresses(@public_ip)
23
+ actual.body['requestId'].should be_a(String)
24
+ item = actual.body['addressesSet'].select {|address| address['publicIp'] == @public_ip}
25
+ item.should_not be_nil
26
+ end
27
+
28
+ end
29
+ describe 'failure' do
30
+
31
+ it "should raise a BadRequest error if ip does not exist" do
32
+ lambda {
33
+ ec2.describe_addresses('127.0.0.1')
34
+ }.should raise_error(Fog::Errors::BadRequest)
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.describe_availability_zones' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes with no params" do
7
+ actual = ec2.describe_availability_zones
8
+ zone = actual.body['availabilityZoneInfo'].first
9
+ zone['regionName'].should be_a(String)
10
+ zone['zoneName'].should be_a(String)
11
+ zone['zoneState'].should be_a(String)
12
+ end
13
+
14
+ it "should return proper attribute with params" do
15
+ actual = ec2.describe_availability_zones(['us-east-1a'])
16
+ zone = actual.body['availabilityZoneInfo'].first
17
+ zone['regionName'].should be_a(String)
18
+ zone['zoneName'].should be_a(String)
19
+ zone['zoneState'].should be_a(String)
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.describe_images' do
4
+ describe 'success' do
5
+
6
+ it "should return proper attributes with no params" do
7
+ actual = ec2.describe_images
8
+ actual.body['requestId'].should be_a(String)
9
+ image = actual.body['imagesSet'].first
10
+ image['architecture'].should be_a(String)
11
+ image['imageId'].should be_a(String)
12
+ image['imageLocation'].should be_a(String)
13
+ image['imageOwnerId'].should be_a(String)
14
+ image['imageState'].should be_a(String)
15
+ image['imageType'].should be_a(String)
16
+ [false, true].should include(image['isPublic'])
17
+ image['kernelId'].should be_a(String) if image['kernelId']
18
+ image['platform'].should be_a(String) if image['platform']
19
+ image['ramdiskId'].should be_a(String) if image['ramdiskId']
20
+ end
21
+
22
+ it "should return proper attributes with params" do
23
+ actual = ec2.describe_images('ImageId' => 'ami-5ee70037')
24
+ actual.body['requestId'].should be_a(String)
25
+ image = actual.body['imagesSet'].first
26
+ image['architecture'].should be_a(String)
27
+ image['imageId'].should be_a(String)
28
+ image['imageLocation'].should be_a(String)
29
+ image['imageOwnerId'].should be_a(String)
30
+ image['imageState'].should be_a(String)
31
+ image['imageType'].should be_a(String)
32
+ [false, true].should include(image['isPublic'])
33
+ image['kernelId'].should be_a(String) if image['kernelId']
34
+ image['platform'].should be_a(String) if image['platform']
35
+ image['ramdiskId'].should be_a(String) if image['ramdiskId']
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,86 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'EC2.describe_instances' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ run_instances = ec2.run_instances('ami-5ee70037', 1, 1).body
8
+ @instance_id = run_instances['instancesSet'].first['instanceId']
9
+ @reservation_id = run_instances['reservationId']
10
+ end
11
+
12
+ after(:each) do
13
+ ec2.terminate_instances([@instance_id])
14
+ end
15
+
16
+ it "should return proper attributes with no params" do
17
+ actual = ec2.describe_instances
18
+ reservation = actual.body['reservationSet'].select {|reservation| reservation['reservationId'] == @reservation_id}.first
19
+ reservation['groupSet'].should be_an(Array)
20
+ reservation['groupSet'].first.should be_a(String)
21
+ reservation['ownerId'].should be_a(String)
22
+ reservation['reservationId'].should be_a(String)
23
+ instance = reservation['instancesSet'].select {|instance| instance['instanceId'] == @instance_id}.first
24
+ instance['amiLaunchIndex'].should be_an(Integer)
25
+ instance['dnsName'].should be_a(String)
26
+ instance['imageId'].should be_a(String)
27
+ instance['instanceId'].should be_a(String)
28
+ instance['instanceState'].should be_a(Hash)
29
+ instance['instanceState']['code'].should be_a(Integer)
30
+ instance['instanceState']['name'].should be_a(String)
31
+ instance['instanceType'].should be_a(String)
32
+ instance['kernelId'].should be_a(String)
33
+ instance['keyName'].should be_a(String) if instance['keyName']
34
+ instance['launchTime'].should be_a(Time)
35
+ instance['monitoring'].should be_a(Hash)
36
+ [true, false].should include(instance['monitoring']['state'])
37
+ instance['placement'].should be_a(Hash)
38
+ instance['placement']['availabilityZone'].should be_a(String)
39
+ instance['privateDnsName'].should be_a(String)
40
+ instance['productCodes'].should be_an(Array)
41
+ instance['productCodes'].first.should be_a(String) if instance['productCodes'].first
42
+ instance['ramdiskId'].should be_a(String)
43
+ instance['reason'].should be_a(String)
44
+ end
45
+
46
+ it "should return proper attributes with params" do
47
+ actual = ec2.describe_instances(@instance_id)
48
+ reservation = actual.body['reservationSet'].select {|reservation| reservation['reservationId'] == @reservation_id}.first
49
+ reservation['groupSet'].should be_an(Array)
50
+ reservation['groupSet'].first.should be_a(String)
51
+ reservation['ownerId'].should be_a(String)
52
+ reservation['reservationId'].should be_a(String)
53
+ instance = reservation['instancesSet'].select {|instance| instance['instanceId'] == @instance_id}.first
54
+ instance['amiLaunchIndex'].should be_an(Integer)
55
+ instance['dnsName'].should be_a(String)
56
+ instance['imageId'].should be_a(String)
57
+ instance['instanceId'].should be_a(String)
58
+ instance['instanceState'].should be_a(Hash)
59
+ instance['instanceState']['code'].should be_a(Integer)
60
+ instance['instanceState']['name'].should be_a(String)
61
+ instance['instanceType'].should be_a(String)
62
+ instance['kernelId'].should be_a(String)
63
+ instance['keyName'].should be_a(String) if instance['keyName']
64
+ instance['launchTime'].should be_a(Time)
65
+ instance['monitoring'].should be_a(Hash)
66
+ [true, false].should include(instance['monitoring']['state'])
67
+ instance['placement'].should be_a(Hash)
68
+ instance['placement']['availabilityZone'].should be_a(String)
69
+ instance['privateDnsName'].should be_a(String)
70
+ instance['productCodes'].should be_an(Array)
71
+ instance['productCodes'].first.should be_a(String) if instance['productCodes'].first
72
+ instance['ramdiskId'].should be_a(String)
73
+ instance['reason'].should be_a(String)
74
+ end
75
+
76
+ end
77
+ describe 'failure' do
78
+
79
+ it 'should raise a BadRequest error if the instance does not exist' do
80
+ lambda {
81
+ ec2.describe_instances('i-00000000')
82
+ }.should raise_error(Fog::Errors::BadRequest)
83
+ end
84
+
85
+ end
86
+ end