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,66 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module AWS
5
+ class EC2
6
+
7
+ # Create an EBS volume
8
+ #
9
+ # ==== Parameters
10
+ # * availability_zone<~String> - availability zone to create volume in
11
+ # * size<~Integer> - Size in GiBs for volume. Must be between 1 and 1024.
12
+ # * snapshot_id<~String> - Optional, snapshot to create volume from
13
+ #
14
+ # ==== Returns
15
+ # * response<~Fog::AWS::Response>:
16
+ # * body<~Hash>:
17
+ # * 'availabilityZone'<~String> - Availability zone for volume
18
+ # * 'createTime'<~Time> - Timestamp for creation
19
+ # * 'size'<~Integer> - Size in GiBs for volume
20
+ # * 'snapshotId'<~String> - Snapshot volume was created from, if any
21
+ # * 'status's<~String> - State of volume
22
+ # * 'volumeId'<~String> - Reference to volume
23
+ def create_volume(availability_zone, size, snapshot_id = nil)
24
+ request({
25
+ 'Action' => 'CreateVolume',
26
+ 'AvailabilityZone' => availability_zone,
27
+ 'Size' => size,
28
+ 'SnapshotId' => snapshot_id
29
+ }, Fog::Parsers::AWS::EC2::CreateVolume.new)
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+
36
+ else
37
+
38
+ module Fog
39
+ module AWS
40
+ class EC2
41
+
42
+ def create_volume(availability_zone, size, snapshot_id = nil)
43
+ response = Fog::Response.new
44
+ response.status = 200
45
+ volume_id = Fog::AWS::Mock.volume_id
46
+ data = {
47
+ 'availabilityZone' => availability_zone,
48
+ 'attachmentSet' => [],
49
+ 'createTime' => Time.now,
50
+ 'size' => size,
51
+ 'snapshotId' => snapshot_id || '',
52
+ 'status' => 'creating',
53
+ 'volumeId' => volume_id
54
+ }
55
+ Fog::AWS::EC2.data[:volumes][volume_id] = data
56
+ response.body = {
57
+ 'requestId' => Fog::AWS::Mock.request_id
58
+ }.merge!(data.reject {|key,value| !['availabilityZone','createTime','size','snapshotId','status','volumeId'].include?(key) })
59
+ response
60
+ end
61
+
62
+ end
63
+ end
64
+ end
65
+
66
+ end
@@ -0,0 +1,49 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module AWS
5
+ class EC2
6
+
7
+ # Delete a key pair that you own
8
+ #
9
+ # ==== Parameters
10
+ # * key_name<~String> - Name of the key pair.
11
+ #
12
+ # ==== Returns
13
+ # * response<~Fog::AWS::Response>:
14
+ # * body<~Hash>:
15
+ # * 'requestId'<~String> id of request
16
+ # * 'return'<~Boolean> - success?
17
+ def delete_key_pair(key_name)
18
+ request({
19
+ 'Action' => 'DeleteKeyPair',
20
+ 'KeyName' => key_name
21
+ }, Fog::Parsers::AWS::EC2::Basic.new)
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+
28
+ else
29
+
30
+ module Fog
31
+ module AWS
32
+ class EC2
33
+
34
+ def delete_key_pair(key_name)
35
+ response = Fog::Response.new
36
+ Fog::AWS::EC2.data[:key_pairs].delete(key_name)
37
+ response.status = 200
38
+ response.body = {
39
+ 'requestId' => Fog::AWS::Mock.request_id,
40
+ 'return' => true
41
+ }
42
+ response
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,52 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module AWS
5
+ class EC2
6
+
7
+ # Delete a security group that you own
8
+ #
9
+ # ==== Parameters
10
+ # * group_name<~String> - Name of the security group.
11
+ #
12
+ # ==== Returns
13
+ # * response<~Fog::AWS::Response>:
14
+ # * body<~Hash>:
15
+ # * 'requestId'<~String> - Id of request
16
+ # * 'return'<~Boolean> - success?
17
+ def delete_security_group(name)
18
+ request({
19
+ 'Action' => 'DeleteSecurityGroup',
20
+ 'GroupName' => name
21
+ }, Fog::Parsers::AWS::EC2::Basic.new)
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+
28
+ else
29
+
30
+ module Fog
31
+ module AWS
32
+ class EC2
33
+ def delete_security_group(name)
34
+ response = Fog::Response.new
35
+ if Fog::AWS::EC2.data[:security_groups][name]
36
+ Fog::AWS::EC2.data[:security_groups].delete(name)
37
+ response.status = 200
38
+ response.body = {
39
+ 'requestId' => Fog::AWS::Mock.request_id,
40
+ 'return' => true
41
+ }
42
+ else
43
+ response.status = 400
44
+ raise(Fog::Errors.status_error(200, 400, response))
45
+ end
46
+ response
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ end
@@ -0,0 +1,53 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module AWS
5
+ class EC2
6
+
7
+ # Delete a snapshot of an EBS volume that you own
8
+ #
9
+ # ==== Parameters
10
+ # * snapshot_id<~String> - ID of snapshot to delete
11
+ # ==== Returns
12
+ # ==== Returns
13
+ # * response<~Fog::AWS::Response>:
14
+ # * body<~Hash>:
15
+ # * 'requestId'<~String> - Id of request
16
+ # * 'return'<~Boolean> - success?
17
+ def delete_snapshot(snapshot_id)
18
+ request({
19
+ 'Action' => 'DeleteSnapshot',
20
+ 'SnapshotId' => snapshot_id
21
+ }, Fog::Parsers::AWS::EC2::Basic.new)
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+
28
+ else
29
+
30
+ module Fog
31
+ module AWS
32
+ class EC2
33
+
34
+ def delete_snapshot(snapshot_id)
35
+ response = Fog::Response.new
36
+ if snapshot = Fog::AWS::EC2.data[:snapshots].delete(snapshot_id)
37
+ response.status = true
38
+ response.body = {
39
+ 'requestId' => Fog::AWS::Mock.request_id,
40
+ 'return' => true
41
+ }
42
+ else
43
+ response.status = 400
44
+ raise(Fog::Errors.status_error(200, 400, response))
45
+ end
46
+ response
47
+ end
48
+
49
+ end
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,55 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module AWS
5
+ class EC2
6
+
7
+ # Delete an EBS volume
8
+ #
9
+ # ==== Parameters
10
+ # * volume_id<~String> - Id of volume to delete.
11
+ #
12
+ # ==== Returns
13
+ # * response<~Fog::AWS::Response>:
14
+ # * body<~Hash>:
15
+ # * 'requestId'<~String> - Id of request
16
+ # * 'return'<~Boolean> - success?
17
+ def delete_volume(volume_id)
18
+ request({
19
+ 'Action' => 'DeleteVolume',
20
+ 'VolumeId' => volume_id
21
+ }, Fog::Parsers::AWS::EC2::Basic.new)
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+
28
+ else
29
+
30
+ module Fog
31
+ module AWS
32
+ class EC2
33
+
34
+ def delete_volume(volume_id)
35
+ response = Fog::Response.new
36
+ if volume = Fog::AWS::EC2.data[:volumes][volume_id]
37
+ Fog::AWS::EC2.data[:deleted_at][volume_id] = Time.now
38
+ volume['status'] = 'deleting'
39
+ response.status = 200
40
+ response.body = {
41
+ 'requestId' => Fog::AWS::Mock.request_id,
42
+ 'return' => true
43
+ }
44
+ else
45
+ response.status = 400
46
+ raise(Fog::Errors.status_error(200, 400, response))
47
+ end
48
+ response
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+
55
+ end
@@ -0,0 +1,61 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module AWS
5
+ class EC2
6
+
7
+ # Describe all or specified IP addresses.
8
+ #
9
+ # ==== Parameters
10
+ # * public_ip<~Array> - List of ips to describe, defaults to all
11
+ #
12
+ # ==== Returns
13
+ # * response<~Fog::AWS::Response>:
14
+ # * body<~Hash>:
15
+ # * 'requestId'<~String> - Id of request
16
+ # * 'addressesSet'<~Array>:
17
+ # * 'instanceId'<~String> - instance for ip address
18
+ # * 'publicIp'<~String> - ip address for instance
19
+ def describe_addresses(public_ip = [])
20
+ params = indexed_params('PublicIp', public_ip)
21
+ request({
22
+ 'Action' => 'DescribeAddresses'
23
+ }.merge!(params), Fog::Parsers::AWS::EC2::DescribeAddresses.new)
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+
30
+ else
31
+
32
+ module Fog
33
+ module AWS
34
+ class EC2
35
+
36
+ def describe_addresses(public_ip = [])
37
+ response = Fog::Response.new
38
+ public_ip = [*public_ip]
39
+ if public_ip != []
40
+ addresses_set = Fog::AWS::EC2.data[:addresses].reject {|key, value| !public_ip.include?(key)}.values
41
+ else
42
+ addresses_set = Fog::AWS::EC2.data[:addresses].values
43
+ end
44
+ if public_ip.length == 0 || public_ip.length == addresses_set.length
45
+ response.status = 200
46
+ response.body = {
47
+ 'requestId' => Fog::AWS::Mock.request_id,
48
+ 'addressesSet' => addresses_set
49
+ }
50
+ else
51
+ response.status = 400
52
+ raise(Fog::Errors.status_error(200, 400, response))
53
+ end
54
+ response
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+
61
+ end
@@ -0,0 +1,64 @@
1
+ unless Fog.mocking?
2
+
3
+ module Fog
4
+ module AWS
5
+ class EC2
6
+
7
+ # Describe all or specified availability zones
8
+ #
9
+ # ==== Params
10
+ # * zone_name<~String> - List of availability zones to describe, defaults to all
11
+ #
12
+ # ==== Returns
13
+ # * response<~Fog::AWS::Response>:
14
+ # * body<~Hash>:
15
+ # * 'requestId'<~String> - Id of request
16
+ # * 'availabilityZoneInfo'<~Array>:
17
+ # * 'regionName'<~String> - Name of region
18
+ # * 'zoneName'<~String> - Name of zone
19
+ # * 'zoneState'<~String> - State of zone
20
+ def describe_availability_zones(zone_name = [])
21
+ params = indexed_params('ZoneName', zone_name)
22
+ request({
23
+ 'Action' => 'DescribeAvailabilityZones'
24
+ }.merge!(params), Fog::Parsers::AWS::EC2::DescribeAvailabilityZones.new)
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+
31
+ else
32
+
33
+ module Fog
34
+ module AWS
35
+ class EC2
36
+
37
+ def describe_availability_zones(zone_name = [])
38
+ response = Fog::Response.new
39
+ zone_name = [*zone_name]
40
+ zones = {
41
+ 'us-east-1a' => {"zoneName"=>"us-east-1a", "regionName"=>"us-east-1", "zoneState"=>"available"},
42
+ 'us-east-1b' => {"zoneName"=>"us-east-1b", "regionName"=>"us-east-1", "zoneState"=>"available"},
43
+ 'us-east-1c' => {"zoneName"=>"us-east-1c", "regionName"=>"us-east-1", "zoneState"=>"available"},
44
+ 'us-east-1d' => {"zoneName"=>"us-east-1d", "regionName"=>"us-east-1", "zoneState"=>"available"}
45
+ }
46
+ if zone_name != []
47
+ availability_zone_info = zones.reject {|key, value| !zone_name.include?(key)}.values
48
+ else
49
+ availability_zone_info = zones.values
50
+ end
51
+
52
+ response.status = 200
53
+ response.body = {
54
+ 'requestId' => Fog::AWS::Mock.request_id,
55
+ 'availabilityZoneInfo' => availability_zone_info
56
+ }
57
+ response
58
+ end
59
+
60
+ end
61
+ end
62
+ end
63
+
64
+ end
@@ -0,0 +1,41 @@
1
+ module Fog
2
+ module AWS
3
+ class EC2
4
+
5
+ # Describe all or specified images.
6
+ #
7
+ # ==== Params
8
+ # * options<~Hash> - Optional params
9
+ # * 'ExecutableBy'<~String> - Only return images that the executable_by
10
+ # user has explicit permission to launch
11
+ # * 'ImageId'<~Array> - Ids of images to describe
12
+ # * 'Owner'<~String> - Only return images belonging to owner.
13
+ #
14
+ # ==== Returns
15
+ # * response<~Fog::AWS::Response>:
16
+ # * body<~Hash>:
17
+ # * 'requestId'<~String> - Id of request
18
+ # * 'imagesSet'<~Array>:
19
+ # * 'architecture'<~String> - Architecture of the image
20
+ # * 'imageId'<~String> - Id of the image
21
+ # * 'imageLocation'<~String> - Location of the image
22
+ # * 'imageOwnerId'<~String> - Id of the owner of the image
23
+ # * 'imageState'<~String> - State of the image
24
+ # * 'imageType'<~String> - Type of the image
25
+ # * 'isPublic'<~Boolean> - Whether or not the image is public
26
+ # * 'kernelId'<~String> - Kernel id associated with image, if any
27
+ # * 'platform'<~String> - Operating platform of the image
28
+ # * 'productCodes'<~Array> - Product codes for the image
29
+ # * 'ramdiskId'<~String> - Ramdisk id associated with image, if any
30
+ def describe_images(options = {})
31
+ if image_id = options.delete('ImageId')
32
+ options.merge!(indexed_params('ImageId', image_id))
33
+ end
34
+ request({
35
+ 'Action' => 'DescribeImages'
36
+ }.merge!(options), Fog::Parsers::AWS::EC2::DescribeImages.new)
37
+ end
38
+
39
+ end
40
+ end
41
+ end