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,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
|