fog 0.0.9 → 0.0.10
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/README.rdoc +79 -2
- data/VERSION +1 -1
- data/fog.gemspec +28 -6
- data/lib/fog.rb +10 -7
- data/lib/fog/aws.rb +35 -9
- data/lib/fog/aws/ec2.rb +82 -69
- data/lib/fog/aws/models/ec2/address.rb +23 -1
- data/lib/fog/aws/models/ec2/addresses.rb +26 -2
- data/lib/fog/aws/models/ec2/instance.rb +135 -0
- data/lib/fog/aws/models/ec2/instances.rb +56 -0
- data/lib/fog/aws/models/ec2/key_pair.rb +17 -2
- data/lib/fog/aws/models/ec2/key_pairs.rb +29 -3
- data/lib/fog/aws/models/ec2/security_group.rb +41 -0
- data/lib/fog/aws/models/ec2/security_groups.rb +62 -0
- data/lib/fog/aws/models/ec2/snapshot.rb +12 -12
- data/lib/fog/aws/models/ec2/snapshots.rb +43 -21
- data/lib/fog/aws/models/ec2/volume.rb +21 -10
- data/lib/fog/aws/models/ec2/volumes.rb +30 -4
- data/lib/fog/aws/models/s3/buckets.rb +5 -8
- data/lib/fog/aws/models/s3/objects.rb +4 -7
- data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +63 -27
- data/lib/fog/aws/requests/ec2/create_security_group.rb +3 -3
- data/lib/fog/aws/requests/ec2/describe_images.rb +65 -35
- data/lib/fog/aws/requests/ec2/describe_instances.rb +2 -0
- data/lib/fog/aws/requests/ec2/get_console_output.rb +52 -21
- data/lib/fog/aws/requests/ec2/reboot_instances.rb +52 -19
- data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +63 -27
- data/lib/fog/aws/requests/ec2/run_instances.rb +1 -1
- data/lib/fog/aws/requests/ec2/terminate_instances.rb +14 -10
- data/lib/fog/aws/s3.rb +31 -35
- data/lib/fog/aws/simpledb.rb +19 -22
- data/lib/fog/collection.rb +3 -3
- data/lib/fog/connection.rb +2 -2
- data/lib/fog/errors.rb +1 -1
- data/lib/fog/model.rb +3 -3
- data/spec/aws/models/ec2/address_spec.rb +84 -0
- data/spec/aws/models/ec2/addresses_spec.rb +70 -0
- data/spec/aws/models/ec2/key_pair_spec.rb +84 -0
- data/spec/aws/models/ec2/key_pairs_spec.rb +71 -0
- data/spec/aws/models/ec2/security_group_spec.rb +84 -0
- data/spec/aws/models/ec2/security_groups_spec.rb +71 -0
- data/spec/aws/models/ec2/snapshot_spec.rb +93 -0
- data/spec/aws/models/ec2/snapshots_spec.rb +74 -0
- data/spec/aws/models/ec2/volume_spec.rb +84 -0
- data/spec/aws/models/ec2/volumes_spec.rb +70 -0
- data/spec/aws/models/s3/bucket_spec.rb +0 -1
- data/spec/aws/models/s3/buckets_spec.rb +2 -11
- data/spec/aws/requests/ec2/describe_security_groups_spec.rb +1 -1
- data/spec/aws/requests/ec2/get_console_output_spec.rb +9 -0
- data/spec/aws/requests/ec2/reboot_instances_spec.rb +11 -2
- data/spec/aws/requests/ec2/run_instances_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +26 -4
- data/LICENSE +0 -20
@@ -0,0 +1,71 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe 'Fog::AWS::EC2::SecurityGroups' do
|
4
|
+
|
5
|
+
describe "#all" do
|
6
|
+
|
7
|
+
it "should return a Fog::AWS::EC2::SecurityGroups" do
|
8
|
+
ec2.security_groups.all.should be_a(Fog::AWS::EC2::SecurityGroups)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should include persisted security_groups" do
|
12
|
+
security_group = ec2.security_groups.create(:group_description => 'groupdescription', :group_name => 'keyname')
|
13
|
+
ec2.security_groups.get(security_group.group_name).should_not be_nil
|
14
|
+
security_group.destroy
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#create" do
|
20
|
+
|
21
|
+
before(:each) do
|
22
|
+
@security_group = ec2.security_groups.create(:group_description => 'groupdescription', :group_name => 'keyname')
|
23
|
+
end
|
24
|
+
|
25
|
+
after(:each) do
|
26
|
+
@security_group.destroy
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should return a Fog::AWS::EC2::SecurityGroup" do
|
30
|
+
@security_group.should be_a(Fog::AWS::EC2::SecurityGroup)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should exist on ec2" do
|
34
|
+
ec2.security_groups.get(@security_group.group_name).should_not be_nil
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#get" do
|
40
|
+
|
41
|
+
it "should return a Fog::AWS::EC2::SecurityGroup if a matching security_group exists" do
|
42
|
+
security_group = ec2.security_groups.create(:group_description => 'groupdescription', :group_name => 'keyname')
|
43
|
+
get = ec2.security_groups.get(security_group.group_name)
|
44
|
+
security_group.attributes[:fingerprint].should == get.attributes[:fingerprint]
|
45
|
+
security_group.attributes[:group_name].should == get.attributes[:group_name]
|
46
|
+
security_group.destroy
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should return nil if no matching security_group exists" do
|
50
|
+
ec2.security_groups.get('notasecuritygroupname').should be_nil
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "#new" do
|
56
|
+
|
57
|
+
it "should return a Fog::AWS::EC2::SecurityGroup" do
|
58
|
+
ec2.security_groups.new(:group_description => 'groupdescription', :group_name => 'keyname').should be_a(Fog::AWS::EC2::SecurityGroup)
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#reload" do
|
64
|
+
|
65
|
+
it "should return a Fog::AWS::EC2::SecurityGroups" do
|
66
|
+
ec2.security_groups.all.reload.should be_a(Fog::AWS::EC2::SecurityGroups)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe 'Fog::AWS::EC2::Snapshots' do
|
4
|
+
|
5
|
+
describe "#initialize" do
|
6
|
+
|
7
|
+
it "should remap attributes from parser" # do
|
8
|
+
# snapshot = Fog::AWS::EC2::Address.new(
|
9
|
+
# 'instanceId' => 'i-00000000',
|
10
|
+
# 'publicIp' => '0.0.0.0'
|
11
|
+
# )
|
12
|
+
# address.instance_id.should == 'i-00000000'
|
13
|
+
# address.public_ip.should == '0.0.0.0'
|
14
|
+
# end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#snapshots" do
|
19
|
+
|
20
|
+
it "should return a Fog::AWS::EC2::Snapshots" do
|
21
|
+
ec2.snapshots.new.snapshots.should be_a(Fog::AWS::EC2::Snapshots)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should be the snapshots the snapshot is related to" do
|
25
|
+
snapshots = ec2.snapshots
|
26
|
+
snapshots.new.snapshots.should == snapshots
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#destroy" do
|
32
|
+
|
33
|
+
it "should return true if the snapshot is deleted" do
|
34
|
+
volume = ec2.volumes.create
|
35
|
+
snapshot = volume.snapshots.create
|
36
|
+
snapshot.destroy.should be_true
|
37
|
+
volume.destroy
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#reload" do
|
43
|
+
|
44
|
+
before(:each) do
|
45
|
+
@volume = ec2.volumes.create
|
46
|
+
@snapshot = @volume.snapshots.create
|
47
|
+
@reloaded = @snapshot.reload
|
48
|
+
end
|
49
|
+
|
50
|
+
after(:each) do
|
51
|
+
@snapshot.destroy
|
52
|
+
@volume.destroy
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should return a Fog::AWS::EC2::Snapshot" do
|
56
|
+
@reloaded.should be_a(Fog::AWS::EC2::Snapshot)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should reset attributes to remote state" do
|
60
|
+
@snapshot.attributes.should == @reloaded.attributes
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "#save" do
|
66
|
+
|
67
|
+
before(:each) do
|
68
|
+
@volume = ec2.volumes.create
|
69
|
+
@snapshot = @volume.snapshots.new
|
70
|
+
end
|
71
|
+
|
72
|
+
after(:each) do
|
73
|
+
@volume.destroy
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should return true when it succeeds" do
|
77
|
+
@snapshot.save.should be_true
|
78
|
+
@snapshot.destroy
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should not exist in addresses before save" do
|
82
|
+
@snapshot.snapshots.get(@snapshot.snapshot_id).should be_nil
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should exist in buckets after save" do
|
86
|
+
@snapshot.save
|
87
|
+
@snapshot.snapshots.get(@snapshot.snapshot_id).should_not be_nil
|
88
|
+
@snapshot.destroy
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe 'Fog::AWS::EC2::Snapshots' do
|
4
|
+
|
5
|
+
describe "#all" do
|
6
|
+
|
7
|
+
it "should return a Fog::AWS::EC2::Snapshots" do
|
8
|
+
ec2.snapshots.all.should be_a(Fog::AWS::EC2::Snapshots)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should include persisted snapshots" do
|
12
|
+
volume = ec2.volumes.create
|
13
|
+
snapshot = volume.snapshots.create
|
14
|
+
ec2.snapshots.get(snapshot.snapshot_id).should_not be_nil
|
15
|
+
snapshot.destroy
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#create" do
|
21
|
+
|
22
|
+
before(:each) do
|
23
|
+
@volume = ec2.volumes.create
|
24
|
+
@snapshot = @volume.snapshots.create
|
25
|
+
end
|
26
|
+
|
27
|
+
after(:each) do
|
28
|
+
@snapshot.destroy
|
29
|
+
@volume.destroy
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return a Fog::AWS::EC2::Snapshot" do
|
33
|
+
@snapshot.should be_a(Fog::AWS::EC2::Snapshot)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should exist on ec2" do
|
37
|
+
ec2.snapshots.get(@snapshot.snapshot_id).should_not be_nil
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#get" do
|
43
|
+
|
44
|
+
it "should return a Fog::AWS::EC2::Snapshot if a matching snapshot exists" do
|
45
|
+
volume = ec2.volumes.create
|
46
|
+
snapshot = volume.snapshots.create
|
47
|
+
get = ec2.snapshots.get(snapshot.snapshot_id)
|
48
|
+
snapshot.attributes.should == get.attributes
|
49
|
+
snapshot.destroy
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should return nil if no matching address exists" do
|
53
|
+
ec2.snapshots.get('vol-00000000').should be_nil
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "#new" do
|
59
|
+
|
60
|
+
it "should return a Fog::AWS::EC2::Snapshot" do
|
61
|
+
ec2.snapshots.new.should be_a(Fog::AWS::EC2::Snapshot)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "#reload" do
|
67
|
+
|
68
|
+
it "should return a Fog::AWS::EC2::Snapshots" do
|
69
|
+
ec2.snapshots.all.reload.should be_a(Fog::AWS::EC2::Snapshots)
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe 'Fog::AWS::EC2::Volume' do
|
4
|
+
|
5
|
+
describe "#initialize" do
|
6
|
+
|
7
|
+
it "should remap attributes from parser" # do
|
8
|
+
# volume = Fog::AWS::EC2::Address.new(
|
9
|
+
# 'instanceId' => 'i-00000000',
|
10
|
+
# 'publicIp' => '0.0.0.0'
|
11
|
+
# )
|
12
|
+
# address.instance_id.should == 'i-00000000'
|
13
|
+
# address.public_ip.should == '0.0.0.0'
|
14
|
+
# end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#volumes" do
|
19
|
+
|
20
|
+
it "should return a Fog::AWS::EC2::Volumes" do
|
21
|
+
ec2.volumes.new.volumes.should be_a(Fog::AWS::EC2::Volumes)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should be the volumes the volume is related to" do
|
25
|
+
volumes = ec2.volumes
|
26
|
+
volumes.new.volumes.should == volumes
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#destroy" do
|
32
|
+
|
33
|
+
it "should return true if the volume is deleted" do
|
34
|
+
volume = ec2.volumes.create
|
35
|
+
volume.destroy.should be_true
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#reload" do
|
41
|
+
|
42
|
+
before(:each) do
|
43
|
+
@volume = ec2.volumes.create
|
44
|
+
@reloaded = @volume.reload
|
45
|
+
end
|
46
|
+
|
47
|
+
after(:each) do
|
48
|
+
@volume.destroy
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should return a Fog::AWS::EC2::Volume" do
|
52
|
+
@reloaded.should be_a(Fog::AWS::EC2::Volume)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should reset attributes to remote state" do
|
56
|
+
@volume.attributes.should == @reloaded.attributes
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#save" do
|
62
|
+
|
63
|
+
before(:each) do
|
64
|
+
@volume = ec2.volumes.new
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return true when it succeeds" do
|
68
|
+
@volume.save.should be_true
|
69
|
+
@volume.destroy
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should not exist in addresses before save" do
|
73
|
+
@volume.volumes.get(@volume.volume_id).should be_nil
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should exist in buckets after save" do
|
77
|
+
@volume.save
|
78
|
+
@volume.volumes.get(@volume.volume_id).should_not be_nil
|
79
|
+
@volume.destroy
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe 'Fog::AWS::EC2::Volumes' do
|
4
|
+
|
5
|
+
describe "#all" do
|
6
|
+
|
7
|
+
it "should return a Fog::AWS::EC2::Volumes" do
|
8
|
+
ec2.volumes.all.should be_a(Fog::AWS::EC2::Volumes)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should include persisted volumes" do
|
12
|
+
volume = ec2.volumes.create
|
13
|
+
ec2.volumes.get(volume.volume_id).should_not be_nil
|
14
|
+
volume.destroy
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#create" do
|
20
|
+
|
21
|
+
before(:each) do
|
22
|
+
@volume = ec2.volumes.create
|
23
|
+
end
|
24
|
+
|
25
|
+
after(:each) do
|
26
|
+
@volume.destroy
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should return a Fog::AWS::EC2::Volume" do
|
30
|
+
@volume.should be_a(Fog::AWS::EC2::Volume)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should exist on ec2" do
|
34
|
+
ec2.volumes.get(@volume.volume_id).should_not be_nil
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#get" do
|
40
|
+
|
41
|
+
it "should return a Fog::AWS::EC2::Volume if a matching volume exists" do
|
42
|
+
volume = ec2.volumes.create
|
43
|
+
get = ec2.volumes.get(volume.volume_id)
|
44
|
+
volume.attributes.should == get.attributes
|
45
|
+
volume.destroy
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should return nil if no matching address exists" do
|
49
|
+
ec2.volumes.get('vol-00000000').should be_nil
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#new" do
|
55
|
+
|
56
|
+
it "should return a Fog::AWS::EC2::Volume" do
|
57
|
+
ec2.volumes.new.should be_a(Fog::AWS::EC2::Volume)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "#reload" do
|
63
|
+
|
64
|
+
it "should return a Fog::AWS::EC2::Volumes" do
|
65
|
+
ec2.volumes.all.reload.should be_a(Fog::AWS::EC2::Volumes)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -9,9 +9,9 @@ describe 'Fog::AWS::S3::Buckets' do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should include persisted buckets" do
|
12
|
-
|
12
|
+
bucket = s3.buckets.create(:name => 'fogbucketname')
|
13
13
|
s3.buckets.all.map {|bucket| bucket.name}.should include('fogbucketname')
|
14
|
-
|
14
|
+
bucket.destroy
|
15
15
|
end
|
16
16
|
|
17
17
|
end
|
@@ -45,15 +45,6 @@ describe 'Fog::AWS::S3::Buckets' do
|
|
45
45
|
bucket.destroy
|
46
46
|
end
|
47
47
|
|
48
|
-
it "should return memoized bucket on subsequent gets" do
|
49
|
-
bucket = s3.buckets.create(:name => 'fogbucketname')
|
50
|
-
get1 = s3.buckets.get('fogbucketname')
|
51
|
-
s3.should_not_receive(:get_bucket)
|
52
|
-
get2 = s3.buckets.get('fogbucketname')
|
53
|
-
get1.attributes.should == get2.attributes
|
54
|
-
bucket.destroy
|
55
|
-
end
|
56
|
-
|
57
48
|
it "should return nil if no matching bucket exists" do
|
58
49
|
s3.buckets.get('fogbucketname').should be_nil
|
59
50
|
end
|
@@ -16,7 +16,7 @@ describe 'EC2.describe_security_groups' do
|
|
16
16
|
actual.body['requestId'].should be_a(String)
|
17
17
|
actual.body['securityGroupInfo'].should be_an(Array)
|
18
18
|
security_group = actual.body['securityGroupInfo'].select do |security_group|
|
19
|
-
security_group['groupName'] == '
|
19
|
+
security_group['groupName'] == 'fog_security_group'
|
20
20
|
end.first
|
21
21
|
security_group['groupDescription'].should be_a(String)
|
22
22
|
security_group['groupName'].should be_a(String)
|
@@ -20,4 +20,13 @@ describe 'EC2.get_console_output' do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
23
|
+
describe 'failure' do
|
24
|
+
|
25
|
+
it "should raise a BadRequest error if the instance does not exist" do
|
26
|
+
lambda {
|
27
|
+
ec2.get_console_output('i-00000000')
|
28
|
+
}.should raise_error(Fog::Errors::BadRequest)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
23
32
|
end
|