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
data/CHANGES.txt
CHANGED
@@ -1,11 +1,19 @@
|
|
1
1
|
RUDY, CHANGES
|
2
2
|
|
3
3
|
|
4
|
+
|
5
|
+
#### 0.8.2 (2009-05-28) ###############################
|
6
|
+
|
7
|
+
* CHANGE: Removed release routine code (it's now a passthrough) and scmhelper. All release stuff should
|
8
|
+
be implemented using the routine blocks.
|
9
|
+
* CHANGE: Passthrough routines no longer check if machine group is running.
|
10
|
+
* CHANGE: Local routines blocks now run from current working directory
|
11
|
+
|
12
|
+
|
4
13
|
#### 0.8.1 (2009-05-18) ###############################
|
5
14
|
|
6
15
|
* FIXED: The shutdown routine was not working for Windows instances
|
7
16
|
|
8
|
-
|
9
17
|
#### 0.8.0 (2009-05-18) ###############################
|
10
18
|
|
11
19
|
* ADDED: Better windows instance support during routines
|
@@ -20,7 +28,6 @@ RUDY, CHANGES
|
|
20
28
|
* CHANGE: rudy-ec2 console now displays windows password automatically if keypair is supplied.
|
21
29
|
* ADDED: register and destroy commands to rudy-ec2 images
|
22
30
|
|
23
|
-
|
24
31
|
#### 0.7.4 (2009-05-10) ###############################
|
25
32
|
|
26
33
|
* CHANGE: Keypairs now include zone. This was necessary to allow US and EU keypairs to
|
@@ -44,7 +51,6 @@ be stored in the same directory.
|
|
44
51
|
* FIXED: Corrected a few minor interface errors in rudy-ec2
|
45
52
|
* ADDED: rudy-ec2 console can now display the decoded admin password for Windows instances.
|
46
53
|
|
47
|
-
|
48
54
|
#### 0.7.2 (2009-05-04) ###############################
|
49
55
|
|
50
56
|
* FIXED: cli/routine.rb release method wasn't sending command alias (which broke rerelease)
|
data/README.rdoc
CHANGED
@@ -18,6 +18,48 @@ All configuration is organized into the zones, environments, and roles that you
|
|
18
18
|
|
19
19
|
<em>NOTE: This is a BETA release. That means Rudy's not ready for production use! See Project-Status[http://wiki.github.com/solutious/rudy/project-status].</em>
|
20
20
|
|
21
|
+
== Configuration
|
22
|
+
|
23
|
+
=== Machines
|
24
|
+
|
25
|
+
The machines configuration describes the "physical" characteristics of your infrastructure.
|
26
|
+
|
27
|
+
env :stage do # Define an environment
|
28
|
+
ami 'ami-e348af8a'
|
29
|
+
|
30
|
+
role :app do # Define a role
|
31
|
+
addresses '11.22.33.44' # Use elastic IPs
|
32
|
+
|
33
|
+
disks do # Create EBS volumes
|
34
|
+
path "/rudy/disk1" do
|
35
|
+
size 100
|
36
|
+
device "/dev/sdr"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
=== Routines
|
43
|
+
|
44
|
+
The routines configuration describes repeatable processes that you can execute on your machines.
|
45
|
+
|
46
|
+
startup do # $ rudy startup
|
47
|
+
adduser :rudy
|
48
|
+
authorize :rudy # Enable passwordless login
|
49
|
+
|
50
|
+
disks do # Create a disk
|
51
|
+
restore "/rudy/disk1" # from a backup
|
52
|
+
end
|
53
|
+
|
54
|
+
after :rudy do # Run remote SSH commands
|
55
|
+
mkdir :p, "great" # $ mkdir -p great
|
56
|
+
touch "great/scott" # $ touch great/scott
|
57
|
+
ls :l, :a # $ ls -l -a
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
|
21
63
|
== Features
|
22
64
|
|
23
65
|
* Create complex environments with a single command
|
@@ -112,7 +154,7 @@ I'm very open to contributions!
|
|
112
154
|
* Rubber -- http://github.com/wr0ngway/rubber/wikis
|
113
155
|
* Moonshine -- http://github.com/railsmachine/moonshine/tree
|
114
156
|
* Boto -- http://code.google.com/p/boto/
|
115
|
-
|
157
|
+
* Fabric -- http://www.nongnu.org/fab/
|
116
158
|
|
117
159
|
== License
|
118
160
|
|
data/Rudyfile
CHANGED
@@ -167,6 +167,7 @@ routines do
|
|
167
167
|
end
|
168
168
|
end
|
169
169
|
|
170
|
+
|
170
171
|
anything do # $ rudy anything
|
171
172
|
before :display_uptime # Specify a dependency
|
172
173
|
script :rudy do # This is Ruby, so any valid syntax
|
@@ -180,5 +181,19 @@ routines do
|
|
180
181
|
end
|
181
182
|
end
|
182
183
|
|
184
|
+
git_example do
|
185
|
+
before_local do
|
186
|
+
# Store variables using global variables. But be
|
187
|
+
# aware that the dollar sign variables can be set
|
188
|
+
# anywhere.
|
189
|
+
@sha = git 'rev-parse', '--short', 'HEAD'
|
190
|
+
@tagname = Time.now.strftime("%Y-%m-%d-#{Rudy.sysinfo.user}-#{@sha}")
|
191
|
+
git 'tag', :a, @tagname, :m, "Another release by Rudy"
|
192
|
+
end
|
193
|
+
script_local do
|
194
|
+
echo @tagname
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
183
198
|
end
|
184
199
|
|
data/bin/rudy
CHANGED
@@ -77,18 +77,6 @@ class RudyCLI < Rudy::CLI::Base
|
|
77
77
|
usage "rudy reboot"
|
78
78
|
command :reboot => Rudy::CLI::Routines
|
79
79
|
|
80
|
-
about "Create a release"
|
81
|
-
usage "rudy release"
|
82
|
-
command :release => Rudy::CLI::Routines
|
83
|
-
command_alias :release, :rerelease
|
84
|
-
|
85
|
-
#about "Update the release currently running in a machine group"
|
86
|
-
#command :rerelease => Rudy::CLI::Routines
|
87
|
-
#command_alias :rerelease, :rere
|
88
|
-
|
89
|
-
#about "Deploy disk snapshots from one machine to another"
|
90
|
-
#command :deploy => Rudy::CLI::Routines
|
91
|
-
|
92
80
|
|
93
81
|
# ------------------------------------ RUDY MISCELLANEOUS --------
|
94
82
|
# ------------------------------------------------------------------
|
data/lib/rudy.rb
CHANGED
data/lib/rudy/routines.rb
CHANGED
@@ -81,6 +81,7 @@ module Rudy
|
|
81
81
|
if Rudy::Routines::ScriptHelper.before_local?(routine) # before_local
|
82
82
|
# Runs "before_local" scripts of routines config.
|
83
83
|
puts task_separator("LOCAL SHELL")
|
84
|
+
lbox.cd Dir.pwd # Run local command block from current working directory
|
84
85
|
Rudy::Routines::ScriptHelper.before_local(routine, sconf, lbox)
|
85
86
|
end
|
86
87
|
}
|
@@ -90,12 +91,13 @@ module Rudy
|
|
90
91
|
# Runs "script_local" scripts of routines config.
|
91
92
|
# NOTE: This is synonymous with before_local
|
92
93
|
puts task_separator("LOCAL SHELL")
|
94
|
+
lbox.cd Dir.pwd # Run local command block from current working directory
|
93
95
|
Rudy::Routines::ScriptHelper.script_local(routine, sconf, lbox)
|
94
96
|
end
|
95
97
|
}
|
96
98
|
|
97
99
|
# Execute the action (create, list, destroy, restart)
|
98
|
-
machines = enjoy_every_sandwich([]) { rmach.send(machine_action) }
|
100
|
+
machines = enjoy_every_sandwich([]) { rmach.send(machine_action) } || []
|
99
101
|
|
100
102
|
machines.each do |machine|
|
101
103
|
puts machine_separator(machine.name, machine.awsid) unless skip_header
|
@@ -239,6 +241,7 @@ module Rudy
|
|
239
241
|
enjoy_every_sandwich {
|
240
242
|
if Rudy::Routines::ScriptHelper.after_local?(routine) # after_local
|
241
243
|
puts task_separator("LOCAL SHELL")
|
244
|
+
lbox.cd Dir.pwd # Run local command block from current working directory
|
242
245
|
# Runs "after_local" scripts of routines config
|
243
246
|
Rudy::Routines::ScriptHelper.after_local(routine, sconf, lbox)
|
244
247
|
end
|
data/lib/rudy/routines/helper.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Rudy; module Routines;
|
4
4
|
module DiskHelper
|
5
|
-
include Rudy::Routines::HelperBase # TODO: use
|
5
|
+
include Rudy::Routines::HelperBase # TODO: use trap_rbox_errors
|
6
6
|
extend self
|
7
7
|
|
8
8
|
def disks?(routine)
|
@@ -271,7 +271,7 @@ module Rudy; module Routines;
|
|
271
271
|
|
272
272
|
if disk.mounted?
|
273
273
|
print "Unmounting #{disk.path}..."
|
274
|
-
|
274
|
+
trap_rbox_errors { @rbox.umount(disk.path) }
|
275
275
|
puts " done"
|
276
276
|
sleep 0.5
|
277
277
|
end
|
@@ -307,7 +307,7 @@ module Rudy; module Routines;
|
|
307
307
|
|
308
308
|
if disk.mounted?
|
309
309
|
print "Unmounting #{disk.path}..."
|
310
|
-
|
310
|
+
trap_rbox_errors { @rbox.umount(disk.path) }
|
311
311
|
puts " done"
|
312
312
|
sleep 0.5
|
313
313
|
end
|
@@ -5,11 +5,11 @@ module Rudy; module Routines;
|
|
5
5
|
# TODO: Rename to ShellHelper
|
6
6
|
#++
|
7
7
|
module ScriptHelper
|
8
|
-
include Rudy::Routines::HelperBase # TODO: use
|
8
|
+
include Rudy::Routines::HelperBase # TODO: use trap_rbox_errors
|
9
9
|
extend self
|
10
10
|
|
11
11
|
@@script_types = [:after, :before, :after_local, :before_local, :script, :script_local]
|
12
|
-
@@
|
12
|
+
@@script_config_file_name = "rudy-config.yml"
|
13
13
|
|
14
14
|
# TODO: refactor using this_method
|
15
15
|
|
@@ -99,8 +99,12 @@ module Rudy; module Routines;
|
|
99
99
|
raise "ScriptHelper: Not a Rye::Box" unless rbox.is_a?(Rye::Box)
|
100
100
|
raise "ScriptHelper: #{timing}?" unless @@script_types.member?(timing)
|
101
101
|
|
102
|
+
# The config file that gets created on each remote machine
|
103
|
+
# will be created in the user's home directory.
|
104
|
+
script_config_remote_path = File.join(rbox.getenv['HOME'], @@script_config_file_name)
|
105
|
+
|
102
106
|
if sconf && !sconf.empty?
|
103
|
-
tf = Tempfile.new(@@
|
107
|
+
tf = Tempfile.new(@@script_config_file_name)
|
104
108
|
Rudy::Utils.write_to_file(tf.path, sconf.to_hash.to_yaml, 'w')
|
105
109
|
end
|
106
110
|
|
@@ -131,7 +135,7 @@ module Rudy; module Routines;
|
|
131
135
|
next
|
132
136
|
end
|
133
137
|
|
134
|
-
|
138
|
+
trap_rbox_errors {
|
135
139
|
# We need to create the config file for every script,
|
136
140
|
# b/c the user may change and it would not be accessible.
|
137
141
|
# We turn off safe mode so we can write the config file via SSH.
|
@@ -139,8 +143,8 @@ module Rudy; module Routines;
|
|
139
143
|
# TODO: Replace with rbox.upload. Make it safe again!
|
140
144
|
conf_str = StringIO.new
|
141
145
|
conf_str.puts sconf.to_hash.to_yaml
|
142
|
-
rbox.upload(conf_str,
|
143
|
-
rbox.chmod(600,
|
146
|
+
rbox.upload(conf_str, script_config_remote_path)
|
147
|
+
rbox.chmod(600, script_config_remote_path)
|
144
148
|
}
|
145
149
|
|
146
150
|
begin
|
@@ -172,15 +176,8 @@ module Rudy; module Routines;
|
|
172
176
|
exit 12 unless keep_going?
|
173
177
|
end
|
174
178
|
|
175
|
-
# I was gettings errors about script_config_file not existing. There
|
176
|
-
# might be a race condition when the rm command is called too quickly.
|
177
|
-
# It's also quite possible I'm off my rocker!
|
178
|
-
## NOTE: I believe this was an issue with Rye. I fixed it when I was
|
179
|
-
## noticing the same error in another place. It hasn't repeated.
|
180
|
-
## sleep 0.1
|
181
|
-
|
182
179
|
rbox.cd # reset to home dir
|
183
|
-
rbox.rudy_tmp_rm(
|
180
|
+
rbox.rudy_tmp_rm(:f, script_config_remote_path) # -f to ignore errors
|
184
181
|
end
|
185
182
|
|
186
183
|
# Return the borrowed rbox instance to the user it was provided with
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module Rudy; module Routines;
|
3
3
|
module UserHelper
|
4
|
-
include Rudy::Routines::HelperBase # TODO: use
|
4
|
+
include Rudy::Routines::HelperBase # TODO: use trap_rbox_errors
|
5
5
|
extend self
|
6
6
|
|
7
7
|
def adduser?(routine)
|
@@ -20,7 +20,7 @@ module Rudy; module Routines;
|
|
20
20
|
# adduser can prompt for info which we don't want.
|
21
21
|
# useradd does not prompt (on Debian/Ubuntu at least).
|
22
22
|
# We need to specify bash b/c the default is /bin/sh
|
23
|
-
|
23
|
+
trap_rbox_errors { rbox.useradd(args) }
|
24
24
|
end
|
25
25
|
|
26
26
|
def authorize?(routine)
|
@@ -28,7 +28,7 @@ module Rudy; module Routines;
|
|
28
28
|
end
|
29
29
|
def authorize(routine, machine, rbox)
|
30
30
|
puts command_separator(:authorize_keys_remote, rbox.user)
|
31
|
-
|
31
|
+
trap_rbox_errors { rbox.authorize_keys_remote(routine.authorize) }
|
32
32
|
end
|
33
33
|
|
34
34
|
|
@@ -28,9 +28,9 @@ module Rudy; module Routines;
|
|
28
28
|
rmach = Rudy::Machines.new
|
29
29
|
raise Rudy::PrivateKeyNotFound, root_keypairpath unless has_keypair?(:root)
|
30
30
|
raise MachineGroupNotDefined, current_machine_group unless known_machine_group?
|
31
|
-
if !@@global.offline && !rmach.running?
|
32
|
-
|
33
|
-
end
|
31
|
+
#if !@@global.offline && !rmach.running?
|
32
|
+
# raise MachineGroupNotRunning, current_machine_group
|
33
|
+
#end
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
data/lib/rudy/scm.rb
CHANGED
@@ -36,7 +36,7 @@ module Rudy
|
|
36
36
|
def raise_early_exceptions; raise "override raise_early_exceptions"; end
|
37
37
|
|
38
38
|
# copied from routines/helper.rb
|
39
|
-
def
|
39
|
+
def trap_rbox_errors(ret=nil, &command)
|
40
40
|
begin
|
41
41
|
ret = command.call
|
42
42
|
puts ' ' << ret.stdout.join("#{$/} ") if !ret.stdout.empty?
|
data/lib/rudy/scm/git.rb
CHANGED
@@ -69,10 +69,10 @@ module Rudy
|
|
69
69
|
|
70
70
|
def delete_rtag(rtag=nil)
|
71
71
|
rtag ||= @rtag
|
72
|
-
ret =
|
72
|
+
ret = trap_rbox_errors { Rye.shell(:git, 'tag', :d, rtag) }
|
73
73
|
raise ret.stderr.join($/) if ret.exit_code > 0 # TODO: retest
|
74
74
|
# Equivalent to: "git push origin :tag-name" which deletes a remote tag
|
75
|
-
ret =
|
75
|
+
ret = trap_rbox_errors { Rye.shell(:git, "push #{@remote} :#{rtag}") } if @remote
|
76
76
|
raise ret.stderr.join($/) if ret.exit_code > 0
|
77
77
|
true
|
78
78
|
end
|
@@ -144,11 +144,11 @@ module Rudy
|
|
144
144
|
rbox.upload(known_hosts, '.ssh/known_hosts')
|
145
145
|
rbox.chmod('0600', '.ssh/known_hosts')
|
146
146
|
|
147
|
-
|
147
|
+
trap_rbox_errors {
|
148
148
|
rbox.git('clone', get_remote_uri, @path)
|
149
149
|
}
|
150
150
|
rbox.cd(@path)
|
151
|
-
|
151
|
+
trap_rbox_errors {
|
152
152
|
rbox.git('checkout', :b, @rtag)
|
153
153
|
}
|
154
154
|
rescue Rye::CommandError => ex
|
data/rudy.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
@spec = Gem::Specification.new do |s|
|
2
2
|
s.name = "rudy"
|
3
3
|
s.rubyforge_project = 'rudy'
|
4
|
-
s.version = "0.8.
|
4
|
+
s.version = "0.8.2"
|
5
5
|
s.summary = "Rudy: Not your grandparents' EC2 deployment tool."
|
6
6
|
s.description = s.summary
|
7
7
|
s.author = "Delano Mandelbaum"
|
@@ -106,12 +106,10 @@
|
|
106
106
|
lib/rudy/routines/helper.rb
|
107
107
|
lib/rudy/routines/helpers/dependshelper.rb
|
108
108
|
lib/rudy/routines/helpers/diskhelper.rb
|
109
|
-
lib/rudy/routines/helpers/scmhelper.rb
|
110
109
|
lib/rudy/routines/helpers/scripthelper.rb
|
111
110
|
lib/rudy/routines/helpers/userhelper.rb
|
112
111
|
lib/rudy/routines/passthrough.rb
|
113
112
|
lib/rudy/routines/reboot.rb
|
114
|
-
lib/rudy/routines/release.rb
|
115
113
|
lib/rudy/routines/shutdown.rb
|
116
114
|
lib/rudy/routines/startup.rb
|
117
115
|
lib/rudy/scm.rb
|
@@ -123,27 +121,6 @@
|
|
123
121
|
support/randomize-root-password
|
124
122
|
support/rudy-ec2-startup
|
125
123
|
support/update-ec2-ami-tools
|
126
|
-
test/01_mixins/10_hash_test.rb
|
127
|
-
test/10_config/00_setup_test.rb
|
128
|
-
test/10_config/30_machines_test.rb
|
129
|
-
test/15_scm/00_setup_test.rb
|
130
|
-
test/15_scm/20_git_test.rb
|
131
|
-
test/20_sdb/00_setup_test.rb
|
132
|
-
test/20_sdb/10_domains_test.rb
|
133
|
-
test/25_ec2/00_setup_test.rb
|
134
|
-
test/25_ec2/10_keypairs_test.rb
|
135
|
-
test/25_ec2/20_groups_test.rb
|
136
|
-
test/25_ec2/30_addresses_test.rb
|
137
|
-
test/25_ec2/40_volumes_test.rb
|
138
|
-
test/25_ec2/50_snapshots_test.rb
|
139
|
-
test/26_ec2_instances/00_setup_test.rb
|
140
|
-
test/26_ec2_instances/10_instances_test.rb
|
141
|
-
test/26_ec2_instances/50_images_test.rb
|
142
|
-
test/30_sdb_metadata/00_setup_test.rb
|
143
|
-
test/30_sdb_metadata/10_disks_test.rb
|
144
|
-
test/30_sdb_metadata/20_backups_test.rb
|
145
|
-
test/coverage.txt
|
146
|
-
test/helper.rb
|
147
124
|
)
|
148
125
|
|
149
126
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solutious-rudy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Delano Mandelbaum
|
@@ -204,12 +204,10 @@ files:
|
|
204
204
|
- lib/rudy/routines/helper.rb
|
205
205
|
- lib/rudy/routines/helpers/dependshelper.rb
|
206
206
|
- lib/rudy/routines/helpers/diskhelper.rb
|
207
|
-
- lib/rudy/routines/helpers/scmhelper.rb
|
208
207
|
- lib/rudy/routines/helpers/scripthelper.rb
|
209
208
|
- lib/rudy/routines/helpers/userhelper.rb
|
210
209
|
- lib/rudy/routines/passthrough.rb
|
211
210
|
- lib/rudy/routines/reboot.rb
|
212
|
-
- lib/rudy/routines/release.rb
|
213
211
|
- lib/rudy/routines/shutdown.rb
|
214
212
|
- lib/rudy/routines/startup.rb
|
215
213
|
- lib/rudy/scm.rb
|
@@ -221,27 +219,6 @@ files:
|
|
221
219
|
- support/randomize-root-password
|
222
220
|
- support/rudy-ec2-startup
|
223
221
|
- support/update-ec2-ami-tools
|
224
|
-
- test/01_mixins/10_hash_test.rb
|
225
|
-
- test/10_config/00_setup_test.rb
|
226
|
-
- test/10_config/30_machines_test.rb
|
227
|
-
- test/15_scm/00_setup_test.rb
|
228
|
-
- test/15_scm/20_git_test.rb
|
229
|
-
- test/20_sdb/00_setup_test.rb
|
230
|
-
- test/20_sdb/10_domains_test.rb
|
231
|
-
- test/25_ec2/00_setup_test.rb
|
232
|
-
- test/25_ec2/10_keypairs_test.rb
|
233
|
-
- test/25_ec2/20_groups_test.rb
|
234
|
-
- test/25_ec2/30_addresses_test.rb
|
235
|
-
- test/25_ec2/40_volumes_test.rb
|
236
|
-
- test/25_ec2/50_snapshots_test.rb
|
237
|
-
- test/26_ec2_instances/00_setup_test.rb
|
238
|
-
- test/26_ec2_instances/10_instances_test.rb
|
239
|
-
- test/26_ec2_instances/50_images_test.rb
|
240
|
-
- test/30_sdb_metadata/00_setup_test.rb
|
241
|
-
- test/30_sdb_metadata/10_disks_test.rb
|
242
|
-
- test/30_sdb_metadata/20_backups_test.rb
|
243
|
-
- test/coverage.txt
|
244
|
-
- test/helper.rb
|
245
222
|
has_rdoc: true
|
246
223
|
homepage: http://github.com/solutious/rudy
|
247
224
|
post_install_message:
|