solutious-rudy 0.7.4 → 0.7.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +6 -1
- data/README.rdoc +8 -0
- data/Rudyfile +3 -3
- data/bin/rudy +2 -2
- data/bin/rudy-ec2 +2 -0
- data/lib/rudy.rb +2 -2
- data/lib/rudy/aws/ec2/image.rb +3 -3
- data/lib/rudy/cli/aws/ec2/images.rb +14 -14
- data/lib/rudy/cli/aws/ec2/instances.rb +2 -5
- data/lib/rudy/routines.rb +7 -5
- data/lib/rudy/routines/startup.rb +2 -4
- data/rudy.gemspec +5 -5
- metadata +5 -5
data/CHANGES.txt
CHANGED
@@ -5,7 +5,12 @@ RUDY, CHANGES
|
|
5
5
|
* TODO: Tests for zone and region support
|
6
6
|
* TODO: Support for machine image attributes
|
7
7
|
* TODO: Support for product codes
|
8
|
-
|
8
|
+
|
9
|
+
#### 0.7.5 (2009-05-??) ###############################
|
10
|
+
|
11
|
+
* CHANGE: rudy-ec2 console now displays windows password automatically if keypair is supplied.
|
12
|
+
* ADDED: register and destroy commands to rudy-ec2 images
|
13
|
+
|
9
14
|
|
10
15
|
#### 0.7.4 (2009-05-10) ###############################
|
11
16
|
|
data/README.rdoc
CHANGED
@@ -105,6 +105,14 @@ I'm very open to contributions!
|
|
105
105
|
* Rudy::AWS::SDB adapted from aws_sdb by Tim Dysinger (http://dysinger.net)
|
106
106
|
|
107
107
|
|
108
|
+
== Related Projects
|
109
|
+
|
110
|
+
* Pool Party -- http://www.poolpartyrb.com/
|
111
|
+
* Rubber -- http://github.com/wr0ngway/rubber/wikis
|
112
|
+
* Moonshine -- http://github.com/railsmachine/moonshine/tree
|
113
|
+
* Boto -- http://code.google.com/p/boto/
|
114
|
+
|
115
|
+
|
108
116
|
== License
|
109
117
|
|
110
118
|
See: LICENSE.txt
|
data/Rudyfile
CHANGED
@@ -169,13 +169,13 @@ routines do
|
|
169
169
|
|
170
170
|
anything do # $ rudy anything
|
171
171
|
before :display_uptime # Specify a dependency
|
172
|
-
script
|
173
|
-
ls :l
|
172
|
+
script :rudy do # This is Ruby, so any valid syntax
|
173
|
+
ls :l # can be used in the definitions.
|
174
174
|
end # See: SysInfo gem for more info.
|
175
175
|
end
|
176
176
|
|
177
177
|
display_uptime do # $ rudy display-uptime
|
178
|
-
script
|
178
|
+
script :rudy do # NOTE: You can use 'dashes' on the
|
179
179
|
uptime # command-line instead of underscores
|
180
180
|
end
|
181
181
|
end
|
data/bin/rudy
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') # Put our local lib in first place
|
12
12
|
$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'drydock', 'lib')
|
13
|
-
|
13
|
+
require 'rubygems'
|
14
14
|
|
15
15
|
#$SAFE = 1 # require is unsafe in Ruby 1.9??
|
16
16
|
|
@@ -21,7 +21,7 @@ require 'rudy/cli'
|
|
21
21
|
# Command-line interface for /bin/rudy
|
22
22
|
class RudyCLI < Rudy::CLI::Base
|
23
23
|
|
24
|
-
debug :
|
24
|
+
debug :on
|
25
25
|
default :machines
|
26
26
|
trawler :passthrough
|
27
27
|
|
data/bin/rudy-ec2
CHANGED
@@ -102,6 +102,7 @@ module RudyCLI_EC2
|
|
102
102
|
usage "rudy-ec2 images -o 123456789012"
|
103
103
|
usage "rudy-ec2 images -o amazon"
|
104
104
|
usage "rudy-ec2 images -o self"
|
105
|
+
usage "rudy-ec2 images -R bucket/ami-name.manifest.xml"
|
105
106
|
option :o, :owner, String, "Amazon Account Number or one of: amazon, self"
|
106
107
|
option :l, :all, "Display all registered machine images (warning: slow)"
|
107
108
|
#option :p, :private, "Private images only"
|
@@ -110,6 +111,7 @@ module RudyCLI_EC2
|
|
110
111
|
option :u, :user, String, "Username to connect as (used for creating an image)"
|
111
112
|
action :C, :create, "Create an image"
|
112
113
|
#action :P, :prepare, "Prepare a running instance to be used as an image"
|
114
|
+
action :R, :register, "Register an image"
|
113
115
|
action :D, :destroy, "Deregister an image (does not remove image files from S3)"
|
114
116
|
argv :ami
|
115
117
|
command :images => Rudy::CLI::AWS::EC2::Images
|
data/lib/rudy.rb
CHANGED
@@ -4,8 +4,8 @@ unless defined?(RUDY_HOME)
|
|
4
4
|
RUDY_LIB = File.join(File.dirname(__FILE__), '..', 'lib')
|
5
5
|
end
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
local_libs = %w{net-scp amazon-ec2 aws-s3 caesars drydock rye storable sysinfo annoy}
|
8
|
+
local_libs.each { |dir| $:.unshift File.join(RUDY_HOME, '..', dir, 'lib') }
|
9
9
|
|
10
10
|
require 'digest/md5'
|
11
11
|
require 'stringio'
|
data/lib/rudy/aws/ec2/image.rb
CHANGED
@@ -106,7 +106,7 @@ module Rudy::AWS
|
|
106
106
|
:image_id => id
|
107
107
|
}
|
108
108
|
ret = @ec2.deregister_image(opts)
|
109
|
-
|
109
|
+
return false unless ret && ret.is_a?(Hash)
|
110
110
|
true
|
111
111
|
end
|
112
112
|
|
@@ -117,8 +117,8 @@ module Rudy::AWS
|
|
117
117
|
:image_location => path
|
118
118
|
}
|
119
119
|
ret = @ec2.register_image(opts)
|
120
|
-
|
121
|
-
|
120
|
+
return nil unless ret && ret.is_a?(Hash)
|
121
|
+
ret['imageId']
|
122
122
|
end
|
123
123
|
|
124
124
|
# imageOwnerId: "203338247012"
|
@@ -155,24 +155,24 @@ module AWS; module EC2;
|
|
155
155
|
|
156
156
|
end
|
157
157
|
|
158
|
-
def
|
158
|
+
def destroy_images_valid?
|
159
159
|
unless @argv.ami && Rudy::Utils.is_id?(:image, @argv.ami)
|
160
|
-
raise "
|
160
|
+
raise "Must supply an AMI ID (ami-XXXXXXX)"
|
161
161
|
end
|
162
|
+
@rimages = Rudy::AWS::EC2::Images.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
162
163
|
end
|
163
|
-
def
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
if rimages.deregister(ami)
|
171
|
-
puts "Done!"
|
172
|
-
else
|
173
|
-
puts "There was an unknown problem!"
|
164
|
+
def destroy_images
|
165
|
+
puts @rimages.deregister(@argv.ami) ? "Done" : "Unknown error"
|
166
|
+
end
|
167
|
+
|
168
|
+
def register_images_valid?
|
169
|
+
unless @argv.first
|
170
|
+
raise "Must supply a valid manifest path (bucket/ami-name.manifest.xml)"
|
174
171
|
end
|
175
|
-
|
172
|
+
@rimages = Rudy::AWS::EC2::Images.new(@@global.accesskey, @@global.secretkey, @@global.region)
|
173
|
+
end
|
174
|
+
def register_images
|
175
|
+
puts @rimages.register(@argv.first)
|
176
176
|
end
|
177
177
|
|
178
178
|
|
@@ -144,11 +144,8 @@ module AWS; module EC2;
|
|
144
144
|
encrtypted_text = ($1 || '').strip
|
145
145
|
k = Rye::Key.from_file(@@global.pkey)
|
146
146
|
pword = k.decrypt(encrtypted_text)
|
147
|
-
|
148
|
-
|
149
|
-
answer = "%s: %s" % ['password', pword]
|
150
|
-
Annoy.timed_display(answer, STDERR, 10)
|
151
|
-
end
|
147
|
+
answer = "%s: %s" % ['password', pword]
|
148
|
+
Annoy.timed_display(answer, STDERR, 10)
|
152
149
|
puts
|
153
150
|
else
|
154
151
|
puts "Please supply a private key path to decode the administrator password"
|
data/lib/rudy/routines.rb
CHANGED
@@ -94,13 +94,11 @@ module Rudy
|
|
94
94
|
end
|
95
95
|
}
|
96
96
|
|
97
|
-
unless has_remote_task?(routine)
|
98
|
-
puts "[no remote tasks]"
|
99
|
-
return
|
100
|
-
end
|
101
|
-
|
102
97
|
# Execute the action (create, list, destroy, restart) & apply the block to each
|
98
|
+
machines = []
|
103
99
|
rmach.send(machine_action) do |machine|
|
100
|
+
machines << machine
|
101
|
+
|
104
102
|
puts machine_separator(machine.name, machine.awsid) unless skip_header
|
105
103
|
|
106
104
|
unless skip_check
|
@@ -152,6 +150,10 @@ module Rudy
|
|
152
150
|
}
|
153
151
|
end
|
154
152
|
|
153
|
+
unless has_remote_task?(routine)
|
154
|
+
puts "[no remote tasks]"
|
155
|
+
next
|
156
|
+
end
|
155
157
|
|
156
158
|
enjoy_every_sandwich {
|
157
159
|
if Rudy::Routines::UserHelper.adduser?(routine) # adduser
|
@@ -10,16 +10,14 @@ module Rudy; module Routines;
|
|
10
10
|
# * +each_mach+ is an optional block which is executed between
|
11
11
|
# disk creation and the after scripts. The will receives two
|
12
12
|
# arguments: instances of Rudy::Machine and Rye::Box.
|
13
|
+
# Returns an Array of Rudy::Machine objects
|
13
14
|
def execute(&each_mach)
|
14
15
|
routine_separator(:startup)
|
15
16
|
unless @routine
|
16
17
|
STDERR.puts "[this is a generic startup routine]"
|
17
18
|
@routine = {}
|
18
19
|
end
|
19
|
-
machines =
|
20
|
-
generic_machine_runner(:create) do |machine,rbox|
|
21
|
-
machines << machine
|
22
|
-
end
|
20
|
+
machines = generic_machine_runner(:create)
|
23
21
|
machines
|
24
22
|
end
|
25
23
|
|
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.7.
|
4
|
+
s.version = "0.7.5"
|
5
5
|
s.summary = "Rudy: Not your grandparents' EC2 deployment tool."
|
6
6
|
s.description = s.summary
|
7
7
|
s.author = "Delano Mandelbaum"
|
@@ -14,11 +14,11 @@
|
|
14
14
|
s.require_paths = %w[lib]
|
15
15
|
s.rubygems_version = '1.1.1'
|
16
16
|
|
17
|
-
s.add_dependency 'drydock', '>= 0.6.
|
18
|
-
s.add_dependency 'caesars', '>= 0.6.
|
19
|
-
s.add_dependency 'rye', '>= 0.6.
|
17
|
+
s.add_dependency 'drydock', '>= 0.6.3'
|
18
|
+
s.add_dependency 'caesars', '>= 0.6.6'
|
19
|
+
s.add_dependency 'rye', '>= 0.6.5'
|
20
20
|
s.add_dependency 'sysinfo', '>= 0.5.1'
|
21
|
-
s.add_dependency 'storable', '>= 0.5.
|
21
|
+
s.add_dependency 'storable', '>= 0.5.2'
|
22
22
|
s.add_dependency 'annoy', '>= 0.5.0'
|
23
23
|
|
24
24
|
s.add_dependency 'grit'
|
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.7.
|
4
|
+
version: 0.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Delano Mandelbaum
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.6.
|
23
|
+
version: 0.6.3
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: caesars
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.6.
|
33
|
+
version: 0.6.6
|
34
34
|
version:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: rye
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.6.
|
43
|
+
version: 0.6.5
|
44
44
|
version:
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: sysinfo
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.5.
|
63
|
+
version: 0.5.2
|
64
64
|
version:
|
65
65
|
- !ruby/object:Gem::Dependency
|
66
66
|
name: annoy
|