solutious-rudy 0.8.1 → 0.8.2
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/CHANGES.txt +9 -3
- data/README.rdoc +43 -1
- data/Rudyfile +15 -0
- data/bin/rudy +0 -12
- data/examples/debian-sinatra-thin/routines.rb +1 -1
- data/lib/rudy.rb +1 -1
- data/lib/rudy/routines.rb +4 -1
- data/lib/rudy/routines/helper.rb +1 -1
- data/lib/rudy/routines/helpers/dependshelper.rb +1 -1
- data/lib/rudy/routines/helpers/diskhelper.rb +3 -3
- data/lib/rudy/routines/helpers/scripthelper.rb +11 -14
- data/lib/rudy/routines/helpers/userhelper.rb +3 -3
- data/lib/rudy/routines/passthrough.rb +3 -3
- data/lib/rudy/scm.rb +1 -1
- data/lib/rudy/scm/git.rb +4 -4
- data/rudy.gemspec +1 -24
- metadata +1 -24
- data/lib/rudy/routines/helpers/scmhelper.rb +0 -39
- data/lib/rudy/routines/release.rb +0 -48
- data/test/01_mixins/10_hash_test.rb +0 -25
- data/test/10_config/00_setup_test.rb +0 -20
- data/test/10_config/30_machines_test.rb +0 -69
- data/test/15_scm/00_setup_test.rb +0 -20
- data/test/15_scm/20_git_test.rb +0 -61
- data/test/20_sdb/00_setup_test.rb +0 -16
- data/test/20_sdb/10_domains_test.rb +0 -115
- data/test/25_ec2/00_setup_test.rb +0 -29
- data/test/25_ec2/10_keypairs_test.rb +0 -41
- data/test/25_ec2/20_groups_test.rb +0 -131
- data/test/25_ec2/30_addresses_test.rb +0 -38
- data/test/25_ec2/40_volumes_test.rb +0 -49
- data/test/25_ec2/50_snapshots_test.rb +0 -74
- data/test/26_ec2_instances/00_setup_test.rb +0 -28
- data/test/26_ec2_instances/10_instances_test.rb +0 -83
- data/test/26_ec2_instances/50_images_test.rb +0 -13
- data/test/30_sdb_metadata/00_setup_test.rb +0 -21
- data/test/30_sdb_metadata/10_disks_test.rb +0 -109
- data/test/30_sdb_metadata/20_backups_test.rb +0 -102
- data/test/coverage.txt +0 -51
- data/test/helper.rb +0 -36
@@ -1,41 +0,0 @@
|
|
1
|
-
|
2
|
-
module Rudy::Test
|
3
|
-
|
4
|
-
class Case_25_EC2
|
5
|
-
|
6
|
-
context "#{name}_10 KeyPairs" do
|
7
|
-
setup do
|
8
|
-
@@test_name ||= 'test-' << Rudy::Utils.strand
|
9
|
-
@ec2key = Rudy::AWS::EC2::KeyPairs.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
10
|
-
#@ami = @@config.machines.find(@@zone.to_sym, :ami)
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
should "(10) create keypair" do
|
15
|
-
keypair = @ec2key.create(@@test_name)
|
16
|
-
assert keypair.is_a?(Rudy::AWS::EC2::KeyPair), "Not a KeyPair"
|
17
|
-
assert !keypair.name.empty?, "No name"
|
18
|
-
assert !keypair.fingerprint.empty?, "No fingerprint"
|
19
|
-
assert !keypair.private_key.empty?, "No private key"
|
20
|
-
end
|
21
|
-
|
22
|
-
should "(20) list keypairs" do
|
23
|
-
keypairs = @ec2key.list || []
|
24
|
-
assert keypairs.size > 0, "No keypairs"
|
25
|
-
end
|
26
|
-
|
27
|
-
should "(21) get specific keypair" do
|
28
|
-
assert @ec2key.get(@@test_name).is_a?(Rudy::AWS::EC2::KeyPair), "Not a KeyPair (#{@@test_name})"
|
29
|
-
end
|
30
|
-
|
31
|
-
should "(50) destroy keypairs" do
|
32
|
-
keypairs = @ec2key.list || []
|
33
|
-
assert keypairs.size > 0, "No keypairs"
|
34
|
-
keypairs.each do |kp|
|
35
|
-
@ec2key.destroy(kp.name)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
end
|
@@ -1,131 +0,0 @@
|
|
1
|
-
|
2
|
-
module Rudy::Test
|
3
|
-
|
4
|
-
class Case_25_EC2
|
5
|
-
|
6
|
-
def get_groups
|
7
|
-
# Ruby 1.8 throws an undefined method error when this is at the
|
8
|
-
# bottom of the class
|
9
|
-
group_list = @ec2group.list_as_hash
|
10
|
-
# "default" cannot be deleted so we exempt it
|
11
|
-
group_list.reject { |gname,group| gname == "default" }
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
context "#{name}_20 Groups" do
|
16
|
-
setup do
|
17
|
-
@ec2group = Rudy::AWS::EC2::Groups.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
18
|
-
@accountnum = @@config.accounts.aws.accountnum
|
19
|
-
end
|
20
|
-
|
21
|
-
should "(00) not be existing groups" do
|
22
|
-
|
23
|
-
group_list = get_groups
|
24
|
-
stop_test !group_list.empty?, "Destroy the existing groups (#{group_list.keys.join(', ')})"
|
25
|
-
stop_test !@accountnum, "Need an account number for group authorization"
|
26
|
-
end
|
27
|
-
|
28
|
-
should "(01) create group with name" do
|
29
|
-
group_list = get_groups
|
30
|
-
test_name ||= 'test-' << Rudy::Utils.strand
|
31
|
-
str = Rudy::Utils.strand
|
32
|
-
group = @ec2group.create(test_name)
|
33
|
-
assert group.is_a?(Rudy::AWS::EC2::Group), "Not a Group object (#{group.class.to_s})"
|
34
|
-
assert_equal group.name, test_name, "Group name not set"
|
35
|
-
assert_equal group.description, "Security Group #{test_name}", "Group description not 'Security Group #{test_name}'"
|
36
|
-
assert @ec2group.exists?(test_name), "Group #{test_name} doesn't exist"
|
37
|
-
end
|
38
|
-
|
39
|
-
should "(02) create group with name and description" do
|
40
|
-
test_name ||= 'test-' << Rudy::Utils.strand
|
41
|
-
str = Rudy::Utils.strand
|
42
|
-
desc = "Description for #{test_name}"
|
43
|
-
group = @ec2group.create(test_name, desc)
|
44
|
-
assert group.is_a?(Rudy::AWS::EC2::Group), "Not a Group object"
|
45
|
-
assert_equal group.name, test_name, "Group name not set"
|
46
|
-
assert_equal group.description, desc, "Group description not set"
|
47
|
-
assert @ec2group.exists?(test_name), "Group #{test_name} doesn't exist"
|
48
|
-
end
|
49
|
-
|
50
|
-
should "(10) list available groups" do
|
51
|
-
group_list = @ec2group.list
|
52
|
-
assert group_list.is_a?(Array), "Group list is not an Array"
|
53
|
-
|
54
|
-
group_list_hash = @ec2group.list_as_hash
|
55
|
-
assert group_list_hash.is_a?(Hash), "Group list is not an Hash"
|
56
|
-
|
57
|
-
group_list.each do |group|
|
58
|
-
assert group.is_a?(Rudy::AWS::EC2::Group), "Not a group"
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
should "(20) authorize/revoke group rules for address" do
|
63
|
-
external_ip_address = Rudy::Utils::external_ip_address
|
64
|
-
external_ip_address ||= '192.168.0.1/32'
|
65
|
-
|
66
|
-
test_name ||= 'test-' << Rudy::Utils.strand
|
67
|
-
|
68
|
-
group = @ec2group.create(test_name)
|
69
|
-
protocols = ['tcp', 'udp']
|
70
|
-
addresses = [external_ip_address]
|
71
|
-
ports = [[3100,3150],[3200,3250]]
|
72
|
-
|
73
|
-
ret = @ec2group.authorize(test_name, addresses, ports, protocols)
|
74
|
-
assert ret, "Authorize did not return true"
|
75
|
-
|
76
|
-
group = @ec2group.get(test_name)
|
77
|
-
|
78
|
-
assert group.is_a?(Rudy::AWS::EC2::Group), "Not a group (#{group})"
|
79
|
-
assert group.addresses.is_a?(Hash), "Addresses is not a hash (#{group.addresses})"
|
80
|
-
|
81
|
-
group.addresses.each_pair do |address,rules|
|
82
|
-
assert rules.is_a?(Array), "Not an Array"
|
83
|
-
assert_equal 7, rules.size, "Not 7 rules"
|
84
|
-
puts "TODO: Check port ranges"
|
85
|
-
end
|
86
|
-
|
87
|
-
ret = @ec2group.revoke(test_name, addresses, ports, protocols)
|
88
|
-
assert ret, "Revoke did not return true"
|
89
|
-
sleep 1 # Wait for eventual consistency
|
90
|
-
group = @ec2group.get(test_name)
|
91
|
-
assert group.addresses.is_a?(Hash), "Addresses is not a hash"
|
92
|
-
assert group.addresses.empty?, "Some addresses not revoked #{group.addresses.to_s}"
|
93
|
-
end
|
94
|
-
|
95
|
-
|
96
|
-
should "(21) authorize/revoke group permissions for account/group" do
|
97
|
-
test_name ||= 'test-' << Rudy::Utils.strand
|
98
|
-
group = @ec2group.create(test_name)
|
99
|
-
should_have = "#{@accountnum}:#{test_name}"
|
100
|
-
|
101
|
-
ret = @ec2group.authorize_group(test_name, test_name, @accountnum)
|
102
|
-
assert ret, "Authorize failed (#{should_have})"
|
103
|
-
group = @ec2group.get(test_name)
|
104
|
-
assert group.is_a?(Rudy::AWS::EC2::Group), "Not a Group object"
|
105
|
-
assert group.groups.is_a?(Hash), "Groups is not a Hash (#{group.groups.class})"
|
106
|
-
assert_equal should_have, group.groups.keys.first, "Authorized group is not #{should_have}"
|
107
|
-
# TODO: Check port ranges
|
108
|
-
|
109
|
-
ret = @ec2group.revoke_group(test_name, test_name, @accountnum)
|
110
|
-
assert ret, "Revoke failed (#{should_have})"
|
111
|
-
group = @ec2group.get(test_name)
|
112
|
-
assert group.is_a?(Rudy::AWS::EC2::Group), "Not a Group object"
|
113
|
-
assert group.groups.is_a?(Hash), "Groups is not a Hash (#{group.groups.class})"
|
114
|
-
assert !group.groups.has_key?(should_have), "Still authorized for #{should_have}"
|
115
|
-
end
|
116
|
-
|
117
|
-
|
118
|
-
should "(50) destroy groups" do
|
119
|
-
group_list = get_groups
|
120
|
-
assert !group_list.empty?, "No groups"
|
121
|
-
group_list.each_pair do |gname,group|
|
122
|
-
assert @ec2group.destroy(group.name), "Not destroyed (#{group.name})"
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
|
127
|
-
end
|
128
|
-
|
129
|
-
|
130
|
-
end
|
131
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
|
2
|
-
module Rudy::Test
|
3
|
-
|
4
|
-
class Case_25_EC2
|
5
|
-
|
6
|
-
context "#{name}_30 Addresses" do
|
7
|
-
setup do
|
8
|
-
@ec2add = Rudy::AWS::EC2::Addresses.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
9
|
-
end
|
10
|
-
|
11
|
-
should "(00) not be existing addresses" do
|
12
|
-
stop_test @ec2add.any?, "Destroy the existing addresses"
|
13
|
-
end
|
14
|
-
|
15
|
-
should "(01) create address" do
|
16
|
-
address = @ec2add.create
|
17
|
-
assert address.is_a?(Rudy::AWS::EC2::Address), "Did not create"
|
18
|
-
assert address.ipaddress.size > 0, "Address length is 0"
|
19
|
-
end
|
20
|
-
|
21
|
-
should "(10) list available addresses" do
|
22
|
-
assert @ec2add.any?, "No addresses"
|
23
|
-
assert @ec2add.list_as_hash.is_a?(Hash), "Not a Hash"
|
24
|
-
assert @ec2add.list.is_a?(Array), "Not an Array"
|
25
|
-
assert_equal 1, @ec2add.list.size, "More than one address"
|
26
|
-
end
|
27
|
-
|
28
|
-
should "(50) destroy address" do
|
29
|
-
assert @ec2add.any?, "No addresses"
|
30
|
-
@ec2add.list.each do |address|
|
31
|
-
assert @ec2add.destroy(address), "Did not destroy"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
|
2
|
-
module Rudy::Test
|
3
|
-
class Case_25_EC2
|
4
|
-
|
5
|
-
context "#{name}_40 Volumes" do
|
6
|
-
setup do
|
7
|
-
@ec2vol = Rudy::AWS::EC2::Volumes.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
8
|
-
end
|
9
|
-
|
10
|
-
should "(00) not be existing volumes" do
|
11
|
-
volume_hash = @ec2vol.list_as_hash
|
12
|
-
volume_hash.reject! { |volid, vol| !vol.available? }
|
13
|
-
stop_test !volume_hash.empty?, "Destroy the existing volumes"
|
14
|
-
end
|
15
|
-
|
16
|
-
should "(10) create volume" do
|
17
|
-
volume_size = 2
|
18
|
-
volume = @ec2vol.create(volume_size, @@zone)
|
19
|
-
assert volume.is_a?(Rudy::AWS::EC2::Volume), "Not a Volume"
|
20
|
-
assert_equal @@zone, volume.zone, "Zone incorrect: #{volume.zone}"
|
21
|
-
assert_equal volume_size.to_i, volume.size.to_i, "Size incorrect: #{volume.size}"
|
22
|
-
assert volume.creating? || volume.available?, "Volume not creating or available (#{volume.status})"
|
23
|
-
end
|
24
|
-
|
25
|
-
should "(20) list volumes" do
|
26
|
-
volume_list = @ec2vol.list
|
27
|
-
assert volume_list.is_a?(Array), "Not an Array"
|
28
|
-
assert volume_list.size > 0, "No Volumes in Array"
|
29
|
-
|
30
|
-
volume_hash = @ec2vol.list_as_hash
|
31
|
-
assert volume_hash.is_a?(Hash), "Not a Hash"
|
32
|
-
assert volume_hash.keys.size > 0, "No Volumes in Hash"
|
33
|
-
|
34
|
-
assert_equal volume_list.size.to_i, volume_hash.keys.size.to_i, "Hash and Array not equal size"
|
35
|
-
end
|
36
|
-
|
37
|
-
should "(50) destroy volumes" do
|
38
|
-
assert @ec2vol.any?, "No volumes"
|
39
|
-
volume_list = @ec2vol.list
|
40
|
-
volume_list.each do |vol|
|
41
|
-
next unless vol.available?
|
42
|
-
assert @ec2vol.destroy(vol.awsid), "Not destroyed (#{vol.awsid})"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
@@ -1,74 +0,0 @@
|
|
1
|
-
|
2
|
-
module Rudy::Test
|
3
|
-
class Case_25_EC2
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
context "#{name}_50 Snapshots" do
|
8
|
-
setup do
|
9
|
-
@ec2vol = Rudy::AWS::EC2::Volumes.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
10
|
-
@ec2snap = Rudy::AWS::EC2::Snapshots.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
should "(00) be no snapshots" do
|
15
|
-
stop_test @ec2snap.any?, "Destroy existing snapshots"
|
16
|
-
end
|
17
|
-
|
18
|
-
should "(01) create a volume to work off of" do
|
19
|
-
@@volumes ||= []
|
20
|
-
@@volumes << @ec2vol.create(1, @@zone)
|
21
|
-
stop_test !@@volumes.first.is_a?(Rudy::AWS::EC2::Volume), "No volume to work off of."
|
22
|
-
end
|
23
|
-
|
24
|
-
should "(01) create snapshot" do
|
25
|
-
stop_test !@@volumes.first.is_a?(Rudy::AWS::EC2::Volume), "No volume to work off of."
|
26
|
-
assert !@@volumes.first.awsid.empty?, "No volume ID"
|
27
|
-
@ec2snap.create(@@volumes.first.awsid)
|
28
|
-
end
|
29
|
-
|
30
|
-
should "(10) list snapshots" do
|
31
|
-
snap_list = @ec2snap.list
|
32
|
-
assert snap_list.is_a?(Array), "Not an Array"
|
33
|
-
assert snap_list.size > 0, "No Snapshots in Array"
|
34
|
-
|
35
|
-
snap_hash = @ec2snap.list_as_hash
|
36
|
-
assert snap_hash.is_a?(Hash), "Not an Hash"
|
37
|
-
assert snap_hash.keys.size > 0, "No Snapshots in Hash"
|
38
|
-
end
|
39
|
-
|
40
|
-
should "(20) create volume from snapshot" do
|
41
|
-
volume_size = 2
|
42
|
-
snap_list = @ec2snap.list || []
|
43
|
-
assert !snap_list.empty?, "No snapshots"
|
44
|
-
|
45
|
-
volume = @ec2vol.create(volume_size, @@zone, snap_list.first.awsid)
|
46
|
-
#puts "#{volume.awsid} #{snap_list.first.awsid}"
|
47
|
-
|
48
|
-
assert volume.is_a?(Rudy::AWS::EC2::Volume), "Not a Volume"
|
49
|
-
assert_equal @@zone, volume.zone, "Zone incorrect: #{volume.zone}"
|
50
|
-
assert_equal snap_list.first.awsid, volume.snapid, "Snapshot mismatch: #{volume.snapid}"
|
51
|
-
assert_equal volume_size.to_i, volume.size.to_i, "Size incorrect: #{volume.size}"
|
52
|
-
assert volume.creating? || volume.available?, "Volume not creating or available (#{volume.status})"
|
53
|
-
|
54
|
-
@@volumes << volume # We put it here so it will be destoryed in teardown
|
55
|
-
end
|
56
|
-
|
57
|
-
should "(90) destroy snapshots" do
|
58
|
-
assert @ec2snap.any?, "No snapshots"
|
59
|
-
snap_list = @ec2snap.list
|
60
|
-
snap_list.each do |snap|
|
61
|
-
next unless snap.completed?
|
62
|
-
assert @ec2snap.destroy(snap.awsid), "Not destroyed (#{snap.awsid})"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
should "(99) cleanup created volumes" do
|
67
|
-
(@@volumes || []).each do |vol|
|
68
|
-
assert @ec2vol.destroy(vol), "Volume not destoryed (#{vol.awsid})"
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '..', 'helper')
|
2
|
-
|
3
|
-
module Rudy::Test
|
4
|
-
# Expects:
|
5
|
-
# * There to be no pre-existing keypairs, addresses, etc... (except
|
6
|
-
# the default group)
|
7
|
-
# * It can destroy instances, images, etc...
|
8
|
-
#
|
9
|
-
# DO NOT RUN THIS TEST ON A PRODUCTION AWS ACCOUNT!!
|
10
|
-
#
|
11
|
-
class Case_26_EC2 < Test::Unit::TestCase
|
12
|
-
include Rudy::Huxtable
|
13
|
-
|
14
|
-
@@logger = STDERR #StringIO.new
|
15
|
-
@@zone = @@global.zone.to_s
|
16
|
-
|
17
|
-
context "#{name}_10 Setup" do
|
18
|
-
should "(10) have class variables setup" do
|
19
|
-
stop_test !@@global.is_a?(Rudy::Global), "We don't have Rudy::Global (#{@@global})"
|
20
|
-
stop_test !@@config.is_a?(Rudy::Config), "We don't have an instance of Rudy::Config (#{@@config})"
|
21
|
-
end
|
22
|
-
should "(11) be zone" do
|
23
|
-
stop_test !@@zone, "No zone"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
|
2
|
-
module Rudy::Test
|
3
|
-
class Case_26_EC2
|
4
|
-
|
5
|
-
context "#{name}_10 Instances" do
|
6
|
-
|
7
|
-
setup do
|
8
|
-
@ec2inst = Rudy::AWS::EC2::Instances.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
9
|
-
@ec2add = Rudy::AWS::EC2::Addresses.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
10
|
-
@us_ami = @@config.machines.find(:"us-east-1b", :ami)
|
11
|
-
@eu_ami = @@config.machines.find(:"eu-west-1b", :ami)
|
12
|
-
end
|
13
|
-
|
14
|
-
should "(10) create instance" do
|
15
|
-
stop_test @ec2inst.any?(:running), "Destroy the existing instances"
|
16
|
-
instances = @ec2inst.create(:ami => 'ami-235fba4a', :group => "default") # Amazon Getting Started AMI
|
17
|
-
assert instances.is_a?(Array), "Not an Array of instances"
|
18
|
-
instances.each do |instance|
|
19
|
-
Rudy::Utils.waiter(2, 120, @@logger) { @ec2inst.running?(instance) }
|
20
|
-
assert instance.is_a?(Rudy::AWS::EC2::Instance), "Not an Rudy::AWS::EC2::Instance object"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
testnum = 20
|
25
|
-
Rudy::AWS::EC2::Instances::KNOWN_STATES.each do |state|
|
26
|
-
should "(#{testnum}) know instance is #{state}" do
|
27
|
-
instances = @ec2inst.list(state) || []
|
28
|
-
return skip("No instances are in #{state} state") if instances.empty?
|
29
|
-
instances.each do |inst|
|
30
|
-
assert @ec2inst.send("#{state}?", inst) # running?(inst)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
testnum += 1
|
34
|
-
end
|
35
|
-
|
36
|
-
should "(30) list instance" do
|
37
|
-
assert @ec2inst.list.is_a?(Array), "Not an Array of instances"
|
38
|
-
assert @ec2inst.list_as_hash.is_a?(Hash), "Not a Hash of instances"
|
39
|
-
end
|
40
|
-
|
41
|
-
should "(31) console" do
|
42
|
-
@ec2inst.list.each do |inst|
|
43
|
-
assert @ec2inst.console_output(inst).is_a?(String), "No console output for (#{inst.awsid})"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
should "(40) assign IP address to instance" do
|
48
|
-
assigned = 0
|
49
|
-
@ec2inst.list.each do |instance|
|
50
|
-
next if instance.terminated? || instance.shutting_down?
|
51
|
-
assigned += 1
|
52
|
-
address = @ec2add.create
|
53
|
-
assert @ec2add.associate(address, instance), "Did not assign"
|
54
|
-
end
|
55
|
-
assert assigned > 0, "No machine running"
|
56
|
-
end
|
57
|
-
|
58
|
-
|
59
|
-
should "(60) restart instance" do
|
60
|
-
instances = @ec2inst.list(:running)
|
61
|
-
instances.each do |instance|
|
62
|
-
assert @ec2inst.restart(instance), "Did not restart"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
should "(99) destroy instance" do
|
67
|
-
assert @ec2inst.any?(:running), "No instances running"
|
68
|
-
instances = @ec2inst.list(:running)
|
69
|
-
return skip("No running instances") unless instances
|
70
|
-
instances.each do |instance|
|
71
|
-
assert @ec2inst.destroy(instance), "Did not destroy"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
should "(99) clean created addresses" do
|
76
|
-
(@ec2add.list || []).each do |address|
|
77
|
-
assert @ec2add.destroy(address), "Address not destroyed (#{address})"
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|