sabat-rudy 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/CHANGES.txt +188 -0
  2. data/LICENSE.txt +19 -0
  3. data/README.rdoc +118 -0
  4. data/Rakefile +165 -0
  5. data/Rudyfile +184 -0
  6. data/bin/ird +153 -0
  7. data/bin/rudy +232 -0
  8. data/bin/rudy-ec2 +241 -0
  9. data/bin/rudy-s3 +79 -0
  10. data/bin/rudy-sdb +69 -0
  11. data/examples/README.md +10 -0
  12. data/examples/debian-sinatra-passenger/commands.rb +19 -0
  13. data/examples/debian-sinatra-passenger/machines.rb +32 -0
  14. data/examples/debian-sinatra-passenger/routines.rb +30 -0
  15. data/examples/debian-sinatra-thin/commands.rb +17 -0
  16. data/examples/debian-sinatra-thin/machines.rb +35 -0
  17. data/examples/debian-sinatra-thin/routines.rb +72 -0
  18. data/lib/rudy.rb +170 -0
  19. data/lib/rudy/aws.rb +75 -0
  20. data/lib/rudy/aws/ec2.rb +59 -0
  21. data/lib/rudy/aws/ec2/address.rb +157 -0
  22. data/lib/rudy/aws/ec2/group.rb +301 -0
  23. data/lib/rudy/aws/ec2/image.rb +168 -0
  24. data/lib/rudy/aws/ec2/instance.rb +438 -0
  25. data/lib/rudy/aws/ec2/keypair.rb +104 -0
  26. data/lib/rudy/aws/ec2/snapshot.rb +109 -0
  27. data/lib/rudy/aws/ec2/volume.rb +230 -0
  28. data/lib/rudy/aws/ec2/zone.rb +77 -0
  29. data/lib/rudy/aws/s3.rb +60 -0
  30. data/lib/rudy/aws/sdb.rb +312 -0
  31. data/lib/rudy/aws/sdb/error.rb +47 -0
  32. data/lib/rudy/cli.rb +186 -0
  33. data/lib/rudy/cli/aws/ec2/addresses.rb +105 -0
  34. data/lib/rudy/cli/aws/ec2/candy.rb +191 -0
  35. data/lib/rudy/cli/aws/ec2/groups.rb +118 -0
  36. data/lib/rudy/cli/aws/ec2/images.rb +185 -0
  37. data/lib/rudy/cli/aws/ec2/instances.rb +222 -0
  38. data/lib/rudy/cli/aws/ec2/keypairs.rb +53 -0
  39. data/lib/rudy/cli/aws/ec2/snapshots.rb +49 -0
  40. data/lib/rudy/cli/aws/ec2/volumes.rb +104 -0
  41. data/lib/rudy/cli/aws/ec2/zones.rb +22 -0
  42. data/lib/rudy/cli/aws/s3/buckets.rb +49 -0
  43. data/lib/rudy/cli/aws/s3/store.rb +22 -0
  44. data/lib/rudy/cli/aws/sdb/domains.rb +41 -0
  45. data/lib/rudy/cli/candy.rb +19 -0
  46. data/lib/rudy/cli/config.rb +81 -0
  47. data/lib/rudy/cli/disks.rb +58 -0
  48. data/lib/rudy/cli/machines.rb +114 -0
  49. data/lib/rudy/cli/routines.rb +108 -0
  50. data/lib/rudy/config.rb +116 -0
  51. data/lib/rudy/config/objects.rb +148 -0
  52. data/lib/rudy/global.rb +130 -0
  53. data/lib/rudy/guidelines.rb +18 -0
  54. data/lib/rudy/huxtable.rb +373 -0
  55. data/lib/rudy/machines.rb +281 -0
  56. data/lib/rudy/metadata.rb +51 -0
  57. data/lib/rudy/metadata/backup.rb +113 -0
  58. data/lib/rudy/metadata/backups.rb +65 -0
  59. data/lib/rudy/metadata/disk.rb +177 -0
  60. data/lib/rudy/metadata/disks.rb +67 -0
  61. data/lib/rudy/metadata/objectbase.rb +104 -0
  62. data/lib/rudy/mixins.rb +2 -0
  63. data/lib/rudy/mixins/hash.rb +25 -0
  64. data/lib/rudy/routines.rb +318 -0
  65. data/lib/rudy/routines/helper.rb +55 -0
  66. data/lib/rudy/routines/helpers/dependshelper.rb +34 -0
  67. data/lib/rudy/routines/helpers/diskhelper.rb +331 -0
  68. data/lib/rudy/routines/helpers/scmhelper.rb +39 -0
  69. data/lib/rudy/routines/helpers/scripthelper.rb +198 -0
  70. data/lib/rudy/routines/helpers/userhelper.rb +37 -0
  71. data/lib/rudy/routines/passthrough.rb +38 -0
  72. data/lib/rudy/routines/reboot.rb +75 -0
  73. data/lib/rudy/routines/release.rb +50 -0
  74. data/lib/rudy/routines/shutdown.rb +33 -0
  75. data/lib/rudy/routines/startup.rb +36 -0
  76. data/lib/rudy/scm.rb +75 -0
  77. data/lib/rudy/scm/git.rb +217 -0
  78. data/lib/rudy/scm/svn.rb +110 -0
  79. data/lib/rudy/utils.rb +365 -0
  80. data/rudy.gemspec +151 -0
  81. data/support/mailtest +40 -0
  82. data/support/randomize-root-password +45 -0
  83. data/support/rudy-ec2-startup +200 -0
  84. data/support/update-ec2-ami-tools +20 -0
  85. data/test/01_mixins/10_hash_test.rb +25 -0
  86. data/test/10_config/00_setup_test.rb +20 -0
  87. data/test/10_config/30_machines_test.rb +69 -0
  88. data/test/15_scm/00_setup_test.rb +20 -0
  89. data/test/15_scm/20_git_test.rb +61 -0
  90. data/test/20_sdb/00_setup_test.rb +16 -0
  91. data/test/20_sdb/10_domains_test.rb +115 -0
  92. data/test/25_ec2/00_setup_test.rb +29 -0
  93. data/test/25_ec2/10_keypairs_test.rb +41 -0
  94. data/test/25_ec2/20_groups_test.rb +131 -0
  95. data/test/25_ec2/30_addresses_test.rb +38 -0
  96. data/test/25_ec2/40_volumes_test.rb +49 -0
  97. data/test/25_ec2/50_snapshots_test.rb +74 -0
  98. data/test/26_ec2_instances/00_setup_test.rb +28 -0
  99. data/test/26_ec2_instances/10_instances_test.rb +83 -0
  100. data/test/26_ec2_instances/50_images_test.rb +13 -0
  101. data/test/30_sdb_metadata/00_setup_test.rb +21 -0
  102. data/test/30_sdb_metadata/10_disks_test.rb +109 -0
  103. data/test/30_sdb_metadata/20_backups_test.rb +102 -0
  104. data/test/coverage.txt +51 -0
  105. data/test/helper.rb +36 -0
  106. metadata +276 -0
data/test/coverage.txt ADDED
@@ -0,0 +1,51 @@
1
+ Finished in 134.699353 seconds.
2
+
3
+ 81 tests, 200 assertions, 0 failures, 0 errors
4
+ +----------------------------------------------------+-------+-------+--------+
5
+ | File | Lines | LOC | COV |
6
+ +----------------------------------------------------+-------+-------+--------+
7
+ |lib/annoy.rb | 227 | 131 | 42.0% |
8
+ |lib/aws_sdb.rb | 3 | 2 | 100.0% |
9
+ |lib/aws_sdb/error.rb | 42 | 33 | 66.7% |
10
+ |lib/aws_sdb/service.rb | 215 | 192 | 96.4% |
11
+ |lib/console.rb | 401 | 263 | 35.7% |
12
+ |lib/rudy.rb | 275 | 186 | 57.5% |
13
+ |lib/rudy/addresses.rb | 22 | 14 | 57.1% |
14
+ |lib/rudy/aws.rb | 72 | 47 | 91.5% |
15
+ |lib/rudy/aws/ec2.rb | 28 | 23 | 100.0% |
16
+ |lib/rudy/aws/ec2/address.rb | 111 | 80 | 87.5% |
17
+ |lib/rudy/aws/ec2/group.rb | 237 | 150 | 86.7% |
18
+ |lib/rudy/aws/ec2/image.rb | 46 | 33 | 21.2% |
19
+ |lib/rudy/aws/ec2/instance.rb | 283 | 180 | 71.1% |
20
+ |lib/rudy/aws/ec2/keypair.rb | 90 | 71 | 93.0% |
21
+ |lib/rudy/aws/ec2/snapshot.rb | 87 | 63 | 87.3% |
22
+ |lib/rudy/aws/ec2/volume.rb | 184 | 127 | 60.6% |
23
+ |lib/rudy/aws/s3.rb | 3 | 2 | 100.0% |
24
+ |lib/rudy/aws/simpledb.rb | 71 | 54 | 100.0% |
25
+ |lib/rudy/backups.rb | 10 | 5 | 100.0% |
26
+ |lib/rudy/config.rb | 113 | 72 | 91.7% |
27
+ |lib/rudy/disks.rb | 9 | 5 | 100.0% |
28
+ |lib/rudy/groups.rb | 113 | 80 | 82.5% |
29
+ |lib/rudy/huxtable.rb | 212 | 152 | 54.6% |
30
+ |lib/rudy/keypairs.rb | 100 | 78 | 100.0% |
31
+ |lib/rudy/machines.rb | 193 | 142 | 9.2% |
32
+ |lib/rudy/manager.rb | 62 | 43 | 16.3% |
33
+ |lib/rudy/metadata/backup.rb | 135 | 100 | 73.0% |
34
+ |lib/rudy/metadata/disk.rb | 149 | 117 | 47.0% |
35
+ |lib/rudy/metadata/machine.rb | 34 | 23 | 82.6% |
36
+ |lib/rudy/routines.rb | 54 | 26 | 23.1% |
37
+ |lib/rudy/routines/disk_handler.rb | 190 | 133 | 5.3% |
38
+ |lib/rudy/routines/release.rb | 15 | 8 | 100.0% |
39
+ |lib/rudy/routines/script_runner.rb | 65 | 47 | 10.6% |
40
+ |lib/rudy/routines/shutdown.rb | 42 | 30 | 13.3% |
41
+ |lib/rudy/routines/startup.rb | 48 | 33 | 12.1% |
42
+ |lib/rudy/scm/svn.rb | 68 | 50 | 26.0% |
43
+ |lib/rudy/utils.rb | 118 | 75 | 54.7% |
44
+ |lib/rudy/volumes.rb | 108 | 84 | 11.9% |
45
+ |lib/storable.rb | 284 | 185 | 43.8% |
46
+ |lib/sysinfo.rb | 255 | 154 | 35.7% |
47
+ |lib/utils/crypto-key.rb | 93 | 36 | 55.6% |
48
+ +----------------------------------------------------+-------+-------+--------+
49
+ |Total | 4867 | 3329 | 55.6% |
50
+ +----------------------------------------------------+-------+-------+--------+
51
+ 55.6% 41 file(s) 4867 Lines 3329 LOC
data/test/helper.rb ADDED
@@ -0,0 +1,36 @@
1
+
2
+ libdir = File.join(File.dirname(__FILE__), '..', 'lib')
3
+ $:.unshift libdir
4
+ %w{amazon-ec2 drydock caesars rye}.each { |dir| $:.unshift File.join(File.dirname(__FILE__), '..', '..', dir, 'lib') }
5
+
6
+ require 'rubygems'
7
+ require 'test/unit'
8
+ require 'shoulda'
9
+
10
+ require 'rudy'
11
+
12
+
13
+ puts Rudy::Utils.banner("THIS IS RUBY #{RUBY_VERSION}")
14
+
15
+ # +should_stop+ should the test be stopped?
16
+ # +str+ The message to print when +should_stop+ is true
17
+ def stop_test(should_stop, str)
18
+ return unless should_stop
19
+ str ||= "Test stopped for unknown reason"
20
+ abort str.color(:red).bright
21
+ end
22
+ def xstop_test(*args, &ignore)
23
+ #puts %Q(Skipping stop_test: %s "%s") % [args.last.color(:blue), args.first.color(:blue).bright]
24
+ end
25
+
26
+ def skip(msg)
27
+ puts "%s (%s)" % ["SKIP".color(:blue).bright, msg]
28
+ :skip # this doesn't do anything, but I would like it to!
29
+ end
30
+
31
+ def xshould(*args, &ignore)
32
+ puts %Q(Skipping test: %s "%s") % [@name.color(:blue), args.first.color(:blue).bright]
33
+ end
34
+ def xcontext(*args, &ignore)
35
+ puts %q(Skipping context: "%s") % (@name || args.first).color(:blue).bright
36
+ end
metadata ADDED
@@ -0,0 +1,276 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sabat-rudy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.0
5
+ platform: ruby
6
+ authors:
7
+ - Delano Mandelbaum
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-08 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: drydock
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.6.3
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: caesars
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.6.6
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rye
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.6.5
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: sysinfo
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.5.1
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: storable
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.5.2
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: annoy
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 0.5.0
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: grit
77
+ type: :runtime
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: echoe
87
+ type: :runtime
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
95
+ - !ruby/object:Gem::Dependency
96
+ name: amazon-ec2
97
+ type: :runtime
98
+ version_requirement:
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.3.8
104
+ version:
105
+ - !ruby/object:Gem::Dependency
106
+ name: aws-s3
107
+ type: :runtime
108
+ version_requirement:
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 0.6.1
114
+ version:
115
+ - !ruby/object:Gem::Dependency
116
+ name: highline
117
+ type: :runtime
118
+ version_requirement:
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 1.5.1
124
+ version:
125
+ description: "Rudy: Not your grandparents' EC2 deployment tool."
126
+ email: delano@solutious.com
127
+ executables:
128
+ - rudy
129
+ - rudy-ec2
130
+ - rudy-sdb
131
+ - rudy-s3
132
+ extensions: []
133
+
134
+ extra_rdoc_files:
135
+ - README.rdoc
136
+ - Rudyfile
137
+ - LICENSE.txt
138
+ - CHANGES.txt
139
+ files:
140
+ - CHANGES.txt
141
+ - LICENSE.txt
142
+ - README.rdoc
143
+ - Rakefile
144
+ - Rudyfile
145
+ - bin/ird
146
+ - bin/rudy
147
+ - bin/rudy-ec2
148
+ - bin/rudy-s3
149
+ - bin/rudy-sdb
150
+ - examples/README.md
151
+ - examples/debian-sinatra-passenger/commands.rb
152
+ - examples/debian-sinatra-passenger/machines.rb
153
+ - examples/debian-sinatra-passenger/routines.rb
154
+ - examples/debian-sinatra-thin/commands.rb
155
+ - examples/debian-sinatra-thin/machines.rb
156
+ - examples/debian-sinatra-thin/routines.rb
157
+ - lib/rudy.rb
158
+ - lib/rudy/aws.rb
159
+ - lib/rudy/aws/ec2.rb
160
+ - lib/rudy/aws/ec2/address.rb
161
+ - lib/rudy/aws/ec2/group.rb
162
+ - lib/rudy/aws/ec2/image.rb
163
+ - lib/rudy/aws/ec2/instance.rb
164
+ - lib/rudy/aws/ec2/keypair.rb
165
+ - lib/rudy/aws/ec2/snapshot.rb
166
+ - lib/rudy/aws/ec2/volume.rb
167
+ - lib/rudy/aws/ec2/zone.rb
168
+ - lib/rudy/aws/s3.rb
169
+ - lib/rudy/aws/sdb.rb
170
+ - lib/rudy/aws/sdb/error.rb
171
+ - lib/rudy/cli.rb
172
+ - lib/rudy/cli/aws/ec2/addresses.rb
173
+ - lib/rudy/cli/aws/ec2/candy.rb
174
+ - lib/rudy/cli/aws/ec2/groups.rb
175
+ - lib/rudy/cli/aws/ec2/images.rb
176
+ - lib/rudy/cli/aws/ec2/instances.rb
177
+ - lib/rudy/cli/aws/ec2/keypairs.rb
178
+ - lib/rudy/cli/aws/ec2/snapshots.rb
179
+ - lib/rudy/cli/aws/ec2/volumes.rb
180
+ - lib/rudy/cli/aws/ec2/zones.rb
181
+ - lib/rudy/cli/aws/s3/buckets.rb
182
+ - lib/rudy/cli/aws/s3/store.rb
183
+ - lib/rudy/cli/aws/sdb/domains.rb
184
+ - lib/rudy/cli/candy.rb
185
+ - lib/rudy/cli/config.rb
186
+ - lib/rudy/cli/disks.rb
187
+ - lib/rudy/cli/machines.rb
188
+ - lib/rudy/cli/routines.rb
189
+ - lib/rudy/config.rb
190
+ - lib/rudy/config/objects.rb
191
+ - lib/rudy/global.rb
192
+ - lib/rudy/guidelines.rb
193
+ - lib/rudy/huxtable.rb
194
+ - lib/rudy/machines.rb
195
+ - lib/rudy/metadata.rb
196
+ - lib/rudy/metadata/backup.rb
197
+ - lib/rudy/metadata/backups.rb
198
+ - lib/rudy/metadata/disk.rb
199
+ - lib/rudy/metadata/disks.rb
200
+ - lib/rudy/metadata/objectbase.rb
201
+ - lib/rudy/mixins.rb
202
+ - lib/rudy/mixins/hash.rb
203
+ - lib/rudy/routines.rb
204
+ - lib/rudy/routines/helper.rb
205
+ - lib/rudy/routines/helpers/dependshelper.rb
206
+ - lib/rudy/routines/helpers/diskhelper.rb
207
+ - lib/rudy/routines/helpers/scmhelper.rb
208
+ - lib/rudy/routines/helpers/scripthelper.rb
209
+ - lib/rudy/routines/helpers/userhelper.rb
210
+ - lib/rudy/routines/passthrough.rb
211
+ - lib/rudy/routines/reboot.rb
212
+ - lib/rudy/routines/release.rb
213
+ - lib/rudy/routines/shutdown.rb
214
+ - lib/rudy/routines/startup.rb
215
+ - lib/rudy/scm.rb
216
+ - lib/rudy/scm/git.rb
217
+ - lib/rudy/scm/svn.rb
218
+ - lib/rudy/utils.rb
219
+ - rudy.gemspec
220
+ - support/mailtest
221
+ - support/randomize-root-password
222
+ - support/rudy-ec2-startup
223
+ - 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
+ has_rdoc: true
246
+ homepage: http://github.com/solutious/rudy
247
+ post_install_message:
248
+ rdoc_options:
249
+ - --line-numbers
250
+ - --title
251
+ - "Rudy: Not your grandparents' EC2 deployment tool."
252
+ - --main
253
+ - README.rdoc
254
+ require_paths:
255
+ - lib
256
+ required_ruby_version: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - ">="
259
+ - !ruby/object:Gem::Version
260
+ version: "0"
261
+ version:
262
+ required_rubygems_version: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ - - ">="
265
+ - !ruby/object:Gem::Version
266
+ version: "0"
267
+ version:
268
+ requirements: []
269
+
270
+ rubyforge_project: rudy
271
+ rubygems_version: 1.2.0
272
+ signing_key:
273
+ specification_version: 2
274
+ summary: "Rudy: Not your grandparents' EC2 deployment tool."
275
+ test_files: []
276
+