judo 0.3.4 → 0.3.5
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/VERSION +1 -1
- data/bin/judo +14 -0
- data/lib/judo/base.rb +18 -6
- metadata +2 -2
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.5
|
data/bin/judo
CHANGED
|
@@ -85,6 +85,16 @@ banner
|
|
|
85
85
|
opts.on( '-a', '--accessid ID', 'Specify the AWS access ID' ) do |id|
|
|
86
86
|
options[:access_id] = id
|
|
87
87
|
end
|
|
88
|
+
opts.on( '-k', '--keypair KEY', 'Speicy the AWS keypair pem file to use or \'create\'' ) do |key|
|
|
89
|
+
if key == 'create'
|
|
90
|
+
options[:key_create] = true
|
|
91
|
+
elsif File.basename(key) =~ /(.*)[.]pem$/
|
|
92
|
+
options[:key_name] = $1
|
|
93
|
+
options[:key_material] = File.new(key).read
|
|
94
|
+
else
|
|
95
|
+
abort "Key file must be KEY_NAME.pem"
|
|
96
|
+
end
|
|
97
|
+
end
|
|
88
98
|
opts.on( '-s', '--secret KEY', 'Specify the AWS access secret key' ) do |key|
|
|
89
99
|
options[:access_secret] = key
|
|
90
100
|
end
|
|
@@ -129,6 +139,10 @@ begin
|
|
|
129
139
|
when "create" then mk_servers(judo, options, ARGV)
|
|
130
140
|
when "launch" then mk_servers(judo, options, ARGV) { |s| s.start(options) }
|
|
131
141
|
when "snapshots" then do_snapshots(judo, ARGV)
|
|
142
|
+
when "config" then
|
|
143
|
+
puts "Judo DB Version: #{judo.db_version}"
|
|
144
|
+
puts "Judo Keypair: #{judo.key_name}"
|
|
145
|
+
puts "Judo Bucket: #{judo.bucket_name}"
|
|
132
146
|
when "rename" then
|
|
133
147
|
raise JudoError, "usage: judo rename SERVER SERVER" unless ARGV.size == 2
|
|
134
148
|
old,new = ARGV
|
data/lib/judo/base.rb
CHANGED
|
@@ -34,6 +34,9 @@ module Judo
|
|
|
34
34
|
@access_id = options[:access_id]
|
|
35
35
|
@access_secret = options[:access_secret]
|
|
36
36
|
@domain = options[:domain]
|
|
37
|
+
@key_name = options[:key_name]
|
|
38
|
+
@key_material = options[:key_material]
|
|
39
|
+
@key_create = options[:key_create]
|
|
37
40
|
end
|
|
38
41
|
|
|
39
42
|
def volumes
|
|
@@ -228,16 +231,18 @@ module Judo
|
|
|
228
231
|
end
|
|
229
232
|
|
|
230
233
|
def set_keypair(key_name, material)
|
|
234
|
+
@key_name = key_name
|
|
235
|
+
@key_material = material
|
|
231
236
|
s3_put("#{key_name}.pem", material)
|
|
232
237
|
update "key_name" => key_name
|
|
233
238
|
end
|
|
234
239
|
|
|
235
240
|
def key_name
|
|
236
|
-
get("key_name")
|
|
241
|
+
@key_name ||= get("key_name")
|
|
237
242
|
end
|
|
238
243
|
|
|
239
244
|
def key_material
|
|
240
|
-
s3_get("#{key_name}.pem")
|
|
245
|
+
@key_material ||= s3_get("#{key_name}.pem")
|
|
241
246
|
end
|
|
242
247
|
|
|
243
248
|
def ip_to_judo(ip)
|
|
@@ -319,7 +324,7 @@ module Judo
|
|
|
319
324
|
set_db_version(2)
|
|
320
325
|
end
|
|
321
326
|
else
|
|
322
|
-
raise
|
|
327
|
+
raise JudoError, "judo db is newer than the current gem - upgrade judo and try again"
|
|
323
328
|
end
|
|
324
329
|
end
|
|
325
330
|
|
|
@@ -352,7 +357,7 @@ module Judo
|
|
|
352
357
|
upgrade_db
|
|
353
358
|
end
|
|
354
359
|
|
|
355
|
-
def setup
|
|
360
|
+
def setup(options = {})
|
|
356
361
|
@repo ||= "." ## use cwd as default repo dir
|
|
357
362
|
|
|
358
363
|
setup_sdb
|
|
@@ -423,17 +428,24 @@ module Judo
|
|
|
423
428
|
if name = get("bucket_name")
|
|
424
429
|
puts "Bucket #{name} already set"
|
|
425
430
|
else
|
|
431
|
+
puts "Setting bucket name #{bucket_name}"
|
|
426
432
|
set_bucket_name(bucket_name)
|
|
427
433
|
end
|
|
428
434
|
end
|
|
429
435
|
|
|
430
436
|
def setup_keypair
|
|
431
|
-
|
|
432
|
-
task("
|
|
437
|
+
if @key_name and @key_material
|
|
438
|
+
task("Setting keypair #{@key_name}") do
|
|
439
|
+
set_keypair(@key_name, @key_material)
|
|
440
|
+
end
|
|
441
|
+
elsif @key_create or not key_name
|
|
442
|
+
task("Generating an ssl keypair") do
|
|
433
443
|
name = "judo#{ec2.describe_key_pairs.map { |k| k[:aws_key_name] }.map { |k| k =~ /^judo(\d*)/; $1.to_i }.sort.last.to_i + 1}"
|
|
434
444
|
material = ec2.create_key_pair(name)[:aws_material]
|
|
435
445
|
set_keypair(name, material)
|
|
436
446
|
end
|
|
447
|
+
else
|
|
448
|
+
puts "Keypair #{key_name} already set"
|
|
437
449
|
end
|
|
438
450
|
end
|
|
439
451
|
|