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.
- data/.document +5 -0
- data/.gitignore +6 -0
- data/LICENSE +20 -0
- data/README.rdoc +7 -0
- data/Rakefile +98 -0
- data/VERSION +1 -0
- data/benchs/fog_vs.rb +135 -0
- data/benchs/headers_split_vs_match.rb +18 -0
- data/benchs/params.rb +43 -0
- data/benchs/parse_vs_push.rb +60 -0
- data/benchs/stripping.rb +26 -0
- data/lib/fog.rb +21 -0
- data/lib/fog/aws.rb +145 -0
- data/lib/fog/aws/ec2.rb +173 -0
- data/lib/fog/aws/models/ec2/address.rb +31 -0
- data/lib/fog/aws/models/ec2/addresses.rb +36 -0
- data/lib/fog/aws/models/ec2/key_pair.rb +35 -0
- data/lib/fog/aws/models/ec2/key_pairs.rb +36 -0
- data/lib/fog/aws/models/ec2/volume.rb +47 -0
- data/lib/fog/aws/models/ec2/volumes.rb +36 -0
- data/lib/fog/aws/models/s3/bucket.rb +77 -0
- data/lib/fog/aws/models/s3/buckets.rb +83 -0
- data/lib/fog/aws/models/s3/object.rb +76 -0
- data/lib/fog/aws/models/s3/objects.rb +97 -0
- data/lib/fog/aws/models/s3/owner.rb +18 -0
- data/lib/fog/aws/parsers/ec2/allocate_address.rb +19 -0
- data/lib/fog/aws/parsers/ec2/attach_volume.rb +22 -0
- data/lib/fog/aws/parsers/ec2/basic.rb +25 -0
- data/lib/fog/aws/parsers/ec2/create_key_pair.rb +20 -0
- data/lib/fog/aws/parsers/ec2/create_snapshot.rb +22 -0
- data/lib/fog/aws/parsers/ec2/create_volume.rb +24 -0
- data/lib/fog/aws/parsers/ec2/describe_addresses.rb +30 -0
- data/lib/fog/aws/parsers/ec2/describe_availability_zones.rb +30 -0
- data/lib/fog/aws/parsers/ec2/describe_images.rb +49 -0
- data/lib/fog/aws/parsers/ec2/describe_instances.rb +73 -0
- data/lib/fog/aws/parsers/ec2/describe_key_pairs.rb +30 -0
- data/lib/fog/aws/parsers/ec2/describe_regions.rb +30 -0
- data/lib/fog/aws/parsers/ec2/describe_security_groups.rb +75 -0
- data/lib/fog/aws/parsers/ec2/describe_snapshots.rb +30 -0
- data/lib/fog/aws/parsers/ec2/describe_volumes.rb +57 -0
- data/lib/fog/aws/parsers/ec2/detach_volume.rb +22 -0
- data/lib/fog/aws/parsers/ec2/get_console_output.rb +28 -0
- data/lib/fog/aws/parsers/ec2/run_instances.rb +65 -0
- data/lib/fog/aws/parsers/ec2/terminate_instances.rb +55 -0
- data/lib/fog/aws/parsers/s3/copy_object.rb +22 -0
- data/lib/fog/aws/parsers/s3/get_bucket.rb +46 -0
- data/lib/fog/aws/parsers/s3/get_bucket_location.rb +20 -0
- data/lib/fog/aws/parsers/s3/get_request_payment.rb +20 -0
- data/lib/fog/aws/parsers/s3/get_service.rb +32 -0
- data/lib/fog/aws/parsers/simpledb/basic.rb +31 -0
- data/lib/fog/aws/parsers/simpledb/domain_metadata.rb +30 -0
- data/lib/fog/aws/parsers/simpledb/get_attributes.rb +34 -0
- data/lib/fog/aws/parsers/simpledb/list_domains.rb +28 -0
- data/lib/fog/aws/parsers/simpledb/select.rb +39 -0
- data/lib/fog/aws/requests/ec2/allocate_address.rb +50 -0
- data/lib/fog/aws/requests/ec2/associate_address.rb +59 -0
- data/lib/fog/aws/requests/ec2/attach_volume.rb +71 -0
- data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +32 -0
- data/lib/fog/aws/requests/ec2/create_key_pair.rb +60 -0
- data/lib/fog/aws/requests/ec2/create_security_group.rb +61 -0
- data/lib/fog/aws/requests/ec2/create_snapshot.rb +65 -0
- data/lib/fog/aws/requests/ec2/create_volume.rb +66 -0
- data/lib/fog/aws/requests/ec2/delete_key_pair.rb +49 -0
- data/lib/fog/aws/requests/ec2/delete_security_group.rb +52 -0
- data/lib/fog/aws/requests/ec2/delete_snapshot.rb +53 -0
- data/lib/fog/aws/requests/ec2/delete_volume.rb +55 -0
- data/lib/fog/aws/requests/ec2/describe_addresses.rb +61 -0
- data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +64 -0
- data/lib/fog/aws/requests/ec2/describe_images.rb +41 -0
- data/lib/fog/aws/requests/ec2/describe_instances.rb +114 -0
- data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +63 -0
- data/lib/fog/aws/requests/ec2/describe_regions.rb +61 -0
- data/lib/fog/aws/requests/ec2/describe_security_groups.rb +71 -0
- data/lib/fog/aws/requests/ec2/describe_snapshots.rb +78 -0
- data/lib/fog/aws/requests/ec2/describe_volumes.rb +85 -0
- data/lib/fog/aws/requests/ec2/detach_volume.rb +62 -0
- data/lib/fog/aws/requests/ec2/disassociate_address.rb +55 -0
- data/lib/fog/aws/requests/ec2/get_console_output.rb +26 -0
- data/lib/fog/aws/requests/ec2/reboot_instances.rb +24 -0
- data/lib/fog/aws/requests/ec2/release_address.rb +50 -0
- data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +32 -0
- data/lib/fog/aws/requests/ec2/run_instances.rb +134 -0
- data/lib/fog/aws/requests/ec2/terminate_instances.rb +80 -0
- data/lib/fog/aws/requests/s3/copy_object.rb +79 -0
- data/lib/fog/aws/requests/s3/delete_bucket.rb +53 -0
- data/lib/fog/aws/requests/s3/delete_object.rb +52 -0
- data/lib/fog/aws/requests/s3/get_bucket.rb +100 -0
- data/lib/fog/aws/requests/s3/get_bucket_location.rb +53 -0
- data/lib/fog/aws/requests/s3/get_object.rb +82 -0
- data/lib/fog/aws/requests/s3/get_request_payment.rb +53 -0
- data/lib/fog/aws/requests/s3/get_service.rb +58 -0
- data/lib/fog/aws/requests/s3/head_object.rb +61 -0
- data/lib/fog/aws/requests/s3/put_bucket.rb +69 -0
- data/lib/fog/aws/requests/s3/put_object.rb +76 -0
- data/lib/fog/aws/requests/s3/put_request_payment.rb +56 -0
- data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +31 -0
- data/lib/fog/aws/requests/simpledb/create_domain.rb +25 -0
- data/lib/fog/aws/requests/simpledb/delete_attributes.rb +34 -0
- data/lib/fog/aws/requests/simpledb/delete_domain.rb +25 -0
- data/lib/fog/aws/requests/simpledb/domain_metadata.rb +30 -0
- data/lib/fog/aws/requests/simpledb/get_attributes.rb +35 -0
- data/lib/fog/aws/requests/simpledb/list_domains.rb +30 -0
- data/lib/fog/aws/requests/simpledb/put_attributes.rb +29 -0
- data/lib/fog/aws/requests/simpledb/select.rb +29 -0
- data/lib/fog/aws/s3.rb +157 -0
- data/lib/fog/aws/simpledb.rb +157 -0
- data/lib/fog/collection.rb +77 -0
- data/lib/fog/connection.rb +130 -0
- data/lib/fog/errors.rb +145 -0
- data/lib/fog/model.rb +72 -0
- data/lib/fog/parser.rb +30 -0
- data/lib/fog/response.rb +12 -0
- data/spec/aws/models/s3/bucket_spec.rb +130 -0
- data/spec/aws/models/s3/buckets_spec.rb +79 -0
- data/spec/aws/models/s3/object_spec.rb +121 -0
- data/spec/aws/models/s3/objects_spec.rb +112 -0
- data/spec/aws/models/s3/owner_spec.rb +18 -0
- data/spec/aws/requests/ec2/allocate_address_spec.rb +18 -0
- data/spec/aws/requests/ec2/associate_address_spec.rb +42 -0
- data/spec/aws/requests/ec2/attach_volume_spec.rb +53 -0
- data/spec/aws/requests/ec2/authorize_security_group_ingress_spec.rb +26 -0
- data/spec/aws/requests/ec2/create_key_pair_spec.rb +36 -0
- data/spec/aws/requests/ec2/create_security_group_spec.rb +34 -0
- data/spec/aws/requests/ec2/create_snapshot_spec.rb +37 -0
- data/spec/aws/requests/ec2/create_volume_spec.rb +23 -0
- data/spec/aws/requests/ec2/delete_key_pair_spec.rb +21 -0
- data/spec/aws/requests/ec2/delete_security_group_spec.rb +26 -0
- data/spec/aws/requests/ec2/delete_snapshot_spec.rb +35 -0
- data/spec/aws/requests/ec2/delete_volume_spec.rb +26 -0
- data/spec/aws/requests/ec2/describe_addresses_spec.rb +38 -0
- data/spec/aws/requests/ec2/describe_availability_zones_spec.rb +23 -0
- data/spec/aws/requests/ec2/describe_images_spec.rb +39 -0
- data/spec/aws/requests/ec2/describe_instances_spec.rb +86 -0
- data/spec/aws/requests/ec2/describe_key_pairs_spec.rb +42 -0
- data/spec/aws/requests/ec2/describe_regions_spec.rb +21 -0
- data/spec/aws/requests/ec2/describe_security_groups_spec.rb +51 -0
- data/spec/aws/requests/ec2/describe_snapshots_spec.rb +54 -0
- data/spec/aws/requests/ec2/describe_volumes_spec.rb +50 -0
- data/spec/aws/requests/ec2/detach_volume_spec.rb +43 -0
- data/spec/aws/requests/ec2/disassociate_address_spec.rb +35 -0
- data/spec/aws/requests/ec2/get_console_output_spec.rb +23 -0
- data/spec/aws/requests/ec2/reboot_instances_spec.rb +21 -0
- data/spec/aws/requests/ec2/release_address_spec.rb +26 -0
- data/spec/aws/requests/ec2/revoke_security_group_ingress_spec.rb +32 -0
- data/spec/aws/requests/ec2/run_instances_spec.rb +41 -0
- data/spec/aws/requests/ec2/terminate_instances_spec.rb +35 -0
- data/spec/aws/requests/s3/copy_object_spec.rb +62 -0
- data/spec/aws/requests/s3/delete_bucket_spec.rb +36 -0
- data/spec/aws/requests/s3/delete_object_spec.rb +37 -0
- data/spec/aws/requests/s3/get_bucket_location_spec.rb +30 -0
- data/spec/aws/requests/s3/get_bucket_spec.rb +110 -0
- data/spec/aws/requests/s3/get_object_spec.rb +45 -0
- data/spec/aws/requests/s3/get_request_payment_spec.rb +30 -0
- data/spec/aws/requests/s3/get_service_spec.rb +33 -0
- data/spec/aws/requests/s3/head_object_spec.rb +28 -0
- data/spec/aws/requests/s3/put_bucket_spec.rb +19 -0
- data/spec/aws/requests/s3/put_object_spec.rb +38 -0
- data/spec/aws/requests/s3/put_request_payment_spec.rb +29 -0
- data/spec/aws/requests/simpledb/batch_put_attributes_spec.rb +22 -0
- data/spec/aws/requests/simpledb/create_domain_spec.rb +21 -0
- data/spec/aws/requests/simpledb/delete_attributes_spec.rb +22 -0
- data/spec/aws/requests/simpledb/delete_domain_spec.rb +21 -0
- data/spec/aws/requests/simpledb/domain_metadata_spec.rb +43 -0
- data/spec/aws/requests/simpledb/get_attributes_spec.rb +31 -0
- data/spec/aws/requests/simpledb/list_domains_spec.rb +30 -0
- data/spec/aws/requests/simpledb/put_attributes_spec.rb +22 -0
- data/spec/aws/requests/simpledb/select_spec.rb +9 -0
- data/spec/lorem.txt +1 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +66 -0
- 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
|