solutious-rudy 0.9.3 → 0.9.4
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 +8 -1
- data/bin/rudy +4 -0
- data/bin/rudy-ec2 +1 -0
- data/lib/rudy.rb +1 -1
- data/lib/rudy/aws/ec2.rb +4 -5
- data/lib/rudy/aws/ec2/group.rb +0 -2
- data/lib/rudy/aws/sdb.rb +3 -3
- data/lib/rudy/cli/aws/ec2/addresses.rb +5 -5
- data/lib/rudy/cli/aws/ec2/candy.rb +16 -16
- data/lib/rudy/cli/aws/ec2/groups.rb +6 -6
- data/lib/rudy/cli/aws/ec2/images.rb +3 -3
- data/lib/rudy/cli/aws/ec2/info.rb +18 -18
- data/lib/rudy/cli/aws/ec2/instances.rb +15 -15
- data/lib/rudy/cli/aws/ec2/keypairs.rb +6 -6
- data/lib/rudy/cli/aws/ec2/snapshots.rb +1 -1
- data/lib/rudy/cli/aws/ec2/volumes.rb +10 -10
- data/lib/rudy/cli/backups.rb +5 -5
- data/lib/rudy/cli/base.rb +9 -9
- data/lib/rudy/cli/candy.rb +1 -1
- data/lib/rudy/cli/config.rb +6 -6
- data/lib/rudy/cli/disks.rb +5 -5
- data/lib/rudy/cli/images.rb +12 -12
- data/lib/rudy/cli/info.rb +9 -9
- data/lib/rudy/cli/keypairs.rb +5 -5
- data/lib/rudy/cli/machines.rb +26 -26
- data/lib/rudy/cli/metadata.rb +2 -2
- data/lib/rudy/cli/networks.rb +17 -8
- data/lib/rudy/cli/routines.rb +10 -10
- data/lib/rudy/config.rb +2 -2
- data/lib/rudy/config/objects.rb +1 -1
- data/lib/rudy/huxtable.rb +11 -5
- data/lib/rudy/machines.rb +4 -1
- data/lib/rudy/metadata/machine.rb +18 -9
- data/lib/rudy/routines.rb +4 -4
- data/lib/rudy/routines/handlers/base.rb +6 -6
- data/lib/rudy/routines/handlers/disks.rb +9 -9
- data/lib/rudy/routines/handlers/group.rb +1 -1
- data/lib/rudy/routines/handlers/rye.rb +7 -5
- data/lib/rudy/routines/handlers/script.rb +2 -2
- data/lib/rudy/routines/passthrough.rb +11 -4
- data/lib/rudy/routines/reboot.rb +16 -5
- data/lib/rudy/routines/shutdown.rb +14 -5
- data/lib/rudy/routines/startup.rb +5 -6
- data/lib/rudy/utils.rb +2 -2
- data/rudy.gemspec +1 -1
- metadata +2 -3
@@ -12,11 +12,11 @@ module AWS; module EC2;
|
|
12
12
|
def create_keypairs
|
13
13
|
kp = execute_action { Rudy::AWS::EC2::Keypairs.create(@argv.name) }
|
14
14
|
if [:s, :string].member?(@@global.format)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
li "Name: #{kp.name}"
|
16
|
+
li "Fingerprint: #{kp.fingerprint}", $/
|
17
|
+
li "Copy the following private key data into a file."
|
18
|
+
li "Set the permissions to 0600 and keep it safe.", $/
|
19
|
+
li kp.private_key
|
20
20
|
else
|
21
21
|
print_stobject kp
|
22
22
|
end
|
@@ -29,7 +29,7 @@ module AWS; module EC2;
|
|
29
29
|
def destroy_keypairs
|
30
30
|
raise "Keypair #{@argv.name} does not exist" unless Rudy::AWS::EC2::Keypairs.exists?(@argv.name)
|
31
31
|
kp = Rudy::AWS::EC2::Keypairs.get(@argv.name)
|
32
|
-
|
32
|
+
li "Destroying: #{kp.name}"
|
33
33
|
execute_check(:medium)
|
34
34
|
execute_action { Rudy::AWS::EC2::Keypairs.destroy(kp.name) }
|
35
35
|
end
|
@@ -12,12 +12,12 @@ module AWS; module EC2;
|
|
12
12
|
true
|
13
13
|
end
|
14
14
|
def volumes_create
|
15
|
-
|
15
|
+
li "Creating #{@option.size}GB volume in #{@@global.zone}"
|
16
16
|
execute_check(:low)
|
17
17
|
vol = execute_action("Create Failed") {
|
18
18
|
Rudy::AWS::EC2::Volumes.create(@option.size, @@global.zone, @option.snapshot)
|
19
19
|
}
|
20
|
-
|
20
|
+
li @global.verbose > 1 ? vol.inspect : vol.dump(@@global.format)
|
21
21
|
end
|
22
22
|
|
23
23
|
|
@@ -39,13 +39,13 @@ module AWS; module EC2;
|
|
39
39
|
raise "Volume #{@volume.awsid} is still attached" if @volume.attached?
|
40
40
|
raise "Volume #{@volume.awsid} is not available (#{@volume.state})" unless @volume.available?
|
41
41
|
|
42
|
-
|
42
|
+
li "Destroying #{@volume.awsid}"
|
43
43
|
execute_check(:medium)
|
44
44
|
execute_action("Destroy Failed") { Rudy::AWS::EC2::Volumes.destroy(@volume.awsid) }
|
45
45
|
|
46
46
|
vol = Rudy::AWS::EC2::Volumes.get(@volume.awsid)
|
47
47
|
|
48
|
-
|
48
|
+
li @global.verbose > 1 ? vol.inspect : vol.dump(@@global.format)
|
49
49
|
end
|
50
50
|
|
51
51
|
|
@@ -60,14 +60,14 @@ module AWS; module EC2;
|
|
60
60
|
raise "Volume #{@argv.volid} is already attached" if Rudy::AWS::EC2::Volumes.attached?(@argv.volid)
|
61
61
|
raise "Instance #{@option.instance} does not exist" unless Rudy::AWS::EC2::Instances.exists?(@option.instance)
|
62
62
|
|
63
|
-
|
63
|
+
li "Attaching #{@argv.volid} to #{@option.instance} on #{@option.device}"
|
64
64
|
execute_check(:low)
|
65
65
|
execute_action("Attach Failed") {
|
66
66
|
Rudy::AWS::EC2::Volumes.attach(@argv.volid, @option.instance, @option.device)
|
67
67
|
}
|
68
68
|
|
69
69
|
vol = Rudy::AWS::EC2::Volumes.get(@argv.volid)
|
70
|
-
|
70
|
+
li @global.verbose > 1 ? vol.inspect : vol.dump(@@global.format)
|
71
71
|
end
|
72
72
|
|
73
73
|
def volumes_detach_valid?
|
@@ -80,21 +80,21 @@ module AWS; module EC2;
|
|
80
80
|
vol = Rudy::AWS::EC2::Volumes.get(@argv.volid)
|
81
81
|
raise "Volume #{vol.awsid} is not attached" unless vol.attached?
|
82
82
|
|
83
|
-
|
83
|
+
li "Detaching #{vol.awsid} from #{vol.instid}"
|
84
84
|
execute_check(:medium)
|
85
85
|
execute_action("Detach Failed") { Rudy::AWS::EC2::Volumes.detach(vol.awsid) }
|
86
86
|
|
87
87
|
vol = Rudy::AWS::EC2::Volumes.get(vol.awsid)
|
88
|
-
|
88
|
+
li @global.verbose > 1 ? vol.inspect : vol.dump(@@global.format)
|
89
89
|
end
|
90
90
|
|
91
91
|
|
92
92
|
def volumes
|
93
93
|
volumes = Rudy::AWS::EC2::Volumes.list || []
|
94
94
|
volumes.each do |vol|
|
95
|
-
|
95
|
+
li @global.verbose > 1 ? vol.inspect : vol.dump(@@global.format)
|
96
96
|
end
|
97
|
-
|
97
|
+
li "No volumes" if volumes.empty?
|
98
98
|
end
|
99
99
|
|
100
100
|
end
|
data/lib/rudy/cli/backups.rb
CHANGED
@@ -13,12 +13,12 @@ module Rudy
|
|
13
13
|
def backups_wash
|
14
14
|
dirt = (get_backups || []).select { |b| !b.snapshot_exists? }
|
15
15
|
if dirt.empty?
|
16
|
-
|
16
|
+
li "Nothing to wash in #{current_machine_group}"
|
17
17
|
return
|
18
18
|
end
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
li "The following backup metadata will be deleted:"
|
21
|
+
li dirt.collect {|b| b.name }
|
22
22
|
|
23
23
|
execute_check(:medium)
|
24
24
|
|
@@ -38,9 +38,9 @@ module Rudy
|
|
38
38
|
|
39
39
|
def backups_create
|
40
40
|
@dlist.each do |d|
|
41
|
-
|
41
|
+
li "Creating backup for #{d.name}"
|
42
42
|
back = d.archive
|
43
|
-
|
43
|
+
li back
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
data/lib/rudy/cli/base.rb
CHANGED
@@ -26,8 +26,8 @@ module Rudy::CLI
|
|
26
26
|
begin
|
27
27
|
Rudy::Huxtable.update_config
|
28
28
|
rescue Caesars::SyntaxError => ex
|
29
|
-
|
30
|
-
|
29
|
+
le ex.message
|
30
|
+
le ex.backtrace if @@global.verbose > 0
|
31
31
|
exit 81
|
32
32
|
end
|
33
33
|
|
@@ -41,13 +41,13 @@ module Rudy::CLI
|
|
41
41
|
end
|
42
42
|
|
43
43
|
unless @@global.accesskey && @@global.secretkey
|
44
|
-
|
45
|
-
|
44
|
+
le "No AWS credentials. Check your configs!"
|
45
|
+
le "Try: rudy init"
|
46
46
|
exit 1
|
47
47
|
end
|
48
48
|
|
49
49
|
if @@global.environment =~ /^prod/ && Rudy.debug?
|
50
|
-
|
50
|
+
li Rudy::Utils.banner("PRODUCTION ACCESS IS DISABLED IN DEBUG MODE")
|
51
51
|
exit 1
|
52
52
|
end
|
53
53
|
|
@@ -55,7 +55,7 @@ module Rudy::CLI
|
|
55
55
|
format = @@global.format == :json ? :json : :yaml
|
56
56
|
gcopy = @@global.dup
|
57
57
|
gcopy.secretkey = "[HIDDEN]"
|
58
|
-
|
58
|
+
li "# GLOBALS: ", gcopy.dump(format)
|
59
59
|
end
|
60
60
|
|
61
61
|
Rudy::Metadata.connect @@global.accesskey, @@global.secretkey, @@global.region
|
@@ -86,12 +86,12 @@ module Rudy::CLI
|
|
86
86
|
# updated after initialization but before the command was executed
|
87
87
|
Rudy::Huxtable.update_global @global
|
88
88
|
|
89
|
-
|
89
|
+
li Rudy::CLI.generate_header(@@global, @@config) if @@global.print_header
|
90
90
|
|
91
91
|
unless @@global.quiet
|
92
92
|
if @@global.environment == "prod"
|
93
93
|
msg = "YOU ARE PLAYING WITH PRODUCTION"
|
94
|
-
|
94
|
+
li Rudy::Utils.banner(msg, :normal), $/
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|
@@ -108,7 +108,7 @@ module Rudy::CLI
|
|
108
108
|
format = @@global.format
|
109
109
|
format = :yaml if @@global.verbose > 0 && @@global.format == :string
|
110
110
|
format = :string if noverbose
|
111
|
-
|
111
|
+
li obj.dump(format)
|
112
112
|
end
|
113
113
|
|
114
114
|
def machine_separator(name, awsid)
|
data/lib/rudy/cli/candy.rb
CHANGED
data/lib/rudy/cli/config.rb
CHANGED
@@ -50,23 +50,23 @@ module Rudy
|
|
50
50
|
if @option.project
|
51
51
|
rf = File.join(RUDY_HOME, 'Rudyfile')
|
52
52
|
raise "Cannot find: #{rf}" unless File.exists?(rf)
|
53
|
-
|
53
|
+
li File.read(rf)
|
54
54
|
|
55
55
|
elsif @option.script
|
56
56
|
conf = fetch_script_config
|
57
|
-
|
57
|
+
li conf.to_hash.send(outform) if conf
|
58
58
|
|
59
59
|
else
|
60
|
-
#
|
60
|
+
#li "# ACCOUNTS: [not displayed]" if types.delete(:accounts)
|
61
61
|
types.each do |conftype|
|
62
|
-
|
62
|
+
li "# #{conftype.to_s.upcase}"
|
63
63
|
next unless @@config[conftype] # Nothing to output
|
64
64
|
if conftype == :accounts
|
65
65
|
skey = @@config[conftype][:aws][:secretkey]
|
66
66
|
@@config[conftype][:aws][:secretkey] = hide_secret_key(skey)
|
67
67
|
end
|
68
68
|
|
69
|
-
|
69
|
+
li @@config[conftype].to_hash.send(outform)
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
@@ -81,7 +81,7 @@ module Rudy
|
|
81
81
|
gtmp = @@global.clone
|
82
82
|
gtmp.format = "yaml" if gtmp.format == :s || gtmp.format == :string
|
83
83
|
gtmp.secretkey = hide_secret_key(gtmp.secretkey)
|
84
|
-
|
84
|
+
li gtmp.dump(gtmp.format)
|
85
85
|
end
|
86
86
|
|
87
87
|
private
|
data/lib/rudy/cli/disks.rb
CHANGED
@@ -22,7 +22,7 @@ module Rudy
|
|
22
22
|
print_stobject d
|
23
23
|
if @option.backups
|
24
24
|
d.backups.each_with_index do |b, index|
|
25
|
-
|
25
|
+
li ' %s' % b.name
|
26
26
|
##break if @option.all.nil? && index >= 2 # display only 3, unless all
|
27
27
|
end
|
28
28
|
end
|
@@ -32,12 +32,12 @@ module Rudy
|
|
32
32
|
def disks_wash
|
33
33
|
dirt = (get_disks || []).select { |d| !d.volume_exists? }
|
34
34
|
if dirt.empty?
|
35
|
-
|
35
|
+
li "Nothing to wash in #{current_machine_group}"
|
36
36
|
return
|
37
37
|
end
|
38
38
|
|
39
|
-
|
40
|
-
|
39
|
+
li "The following disk metadata will be deleted:"
|
40
|
+
li dirt.collect {|d| d.name }
|
41
41
|
|
42
42
|
execute_check(:medium)
|
43
43
|
|
@@ -63,7 +63,7 @@ module Rudy
|
|
63
63
|
|
64
64
|
def disks_create
|
65
65
|
@mlist.each do |m|
|
66
|
-
|
66
|
+
li machine_separator(m.name, m.instid)
|
67
67
|
rbox = Rudy::Routines::Handlers::RyeTools.create_box m
|
68
68
|
rbox.stash = m
|
69
69
|
disk = Rudy::Disk.new m.position, @argv.first
|
data/lib/rudy/cli/images.rb
CHANGED
@@ -19,7 +19,7 @@ module Rudy
|
|
19
19
|
def bundle
|
20
20
|
|
21
21
|
@machines.each do |m|
|
22
|
-
|
22
|
+
li machine_separator(m.name, m.instid)
|
23
23
|
|
24
24
|
cmd = "ec2-bundle-instance"
|
25
25
|
args = [m.instid, "--region", @@global.region.to_s]
|
@@ -31,21 +31,21 @@ module Rudy
|
|
31
31
|
args += ["--no-bucket-setup"] if @@global.region.to_s == 'eu-west-1'
|
32
32
|
|
33
33
|
if @@global.verbose > 0
|
34
|
-
|
34
|
+
li "Running: " << Rye.prepare_command(cmd, args), $/
|
35
35
|
end
|
36
36
|
|
37
37
|
unless @@global.quiet
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
li "Bundling can take up to 60 minutes."
|
39
|
+
li "Check the status with the following command:"
|
40
|
+
li Rudy::Huxtable.generate_rudy_command('bundle-status').bright
|
41
|
+
li $/, "When complete, register the image with the command:"
|
42
|
+
li Rudy::Huxtable.generate_rudy_command('images', '-R', @argv.name).bright
|
43
43
|
end
|
44
44
|
|
45
45
|
execute_check(:medium)
|
46
46
|
|
47
47
|
ret = Rye.shell cmd, args
|
48
|
-
|
48
|
+
li ret.stderr, ret.stdout
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -55,11 +55,11 @@ module Rudy
|
|
55
55
|
args += ["-K", @@global.pkey, "-C", @@global.cert]
|
56
56
|
|
57
57
|
if @@global.verbose > 0
|
58
|
-
|
58
|
+
li "Running: " << Rye.prepare_command(cmd, args), $/
|
59
59
|
end
|
60
60
|
|
61
61
|
ret = Rye.shell cmd, args
|
62
|
-
|
62
|
+
li ret.stderr, ret.stdout
|
63
63
|
|
64
64
|
end
|
65
65
|
|
@@ -71,7 +71,7 @@ module Rudy
|
|
71
71
|
end
|
72
72
|
def register_images
|
73
73
|
name = "#{@@global.bucket}/#{@argv.name}.manifest.xml"
|
74
|
-
|
74
|
+
li Rudy::AWS::EC2::Images.register(name)
|
75
75
|
end
|
76
76
|
|
77
77
|
def deregister_images_valid?
|
@@ -82,7 +82,7 @@ module Rudy
|
|
82
82
|
end
|
83
83
|
def deregister_images
|
84
84
|
execute_check(:low)
|
85
|
-
|
85
|
+
li Rudy::AWS::EC2::Images.deregister(@argv.ami) ? "Done" : "Unknown error"
|
86
86
|
end
|
87
87
|
|
88
88
|
def images
|
data/lib/rudy/cli/info.rb
CHANGED
@@ -13,34 +13,34 @@ module Rudy
|
|
13
13
|
process_region region
|
14
14
|
end
|
15
15
|
else
|
16
|
-
|
16
|
+
li $/, "Other regions: " << oregions.join(', ')
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
|
21
21
|
private
|
22
22
|
def process_region(region)
|
23
|
-
|
24
|
-
|
23
|
+
li " Region: %s %30s".att(:reverse) % [region, '']
|
24
|
+
li " Machines".bright
|
25
25
|
|
26
26
|
(get_machines(:region => region) rescue []).collect do |m|
|
27
27
|
m.refresh!
|
28
|
-
|
28
|
+
li " " << m.to_s.noatt
|
29
29
|
end
|
30
30
|
|
31
|
-
|
31
|
+
li " Disks".bright
|
32
32
|
(get_disks(:region => region) || []).collect do |d|
|
33
33
|
d.refresh!
|
34
|
-
|
34
|
+
li " " << d.to_s.noatt
|
35
35
|
end
|
36
36
|
|
37
|
-
|
37
|
+
li " Backups".bright
|
38
38
|
(get_backups(:region => region) || []).collect do |b|
|
39
39
|
b.refresh!
|
40
|
-
|
40
|
+
li " " << b.to_s.noatt
|
41
41
|
end
|
42
42
|
|
43
|
-
|
43
|
+
li
|
44
44
|
end
|
45
45
|
|
46
46
|
end
|
data/lib/rudy/cli/keypairs.rb
CHANGED
@@ -10,7 +10,7 @@ module Rudy
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def keypairs_add
|
13
|
-
|
13
|
+
li current_group_name
|
14
14
|
end
|
15
15
|
|
16
16
|
def keypairs_valid?
|
@@ -22,7 +22,7 @@ module Rudy
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def keypairs
|
25
|
-
|
25
|
+
li Rudy::AWS::EC2::Keypairs.get(current_user_keypairname)
|
26
26
|
end
|
27
27
|
|
28
28
|
def keypairs_show_valid?
|
@@ -32,9 +32,9 @@ module Rudy
|
|
32
32
|
def keypairs_show
|
33
33
|
content = File.read(@pkey)
|
34
34
|
rkey = Rye::Key.new content
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
li "# #{@pkey}"
|
36
|
+
li content
|
37
|
+
li rkey.public_key
|
38
38
|
end
|
39
39
|
|
40
40
|
end
|
data/lib/rudy/cli/machines.rb
CHANGED
@@ -12,16 +12,16 @@ module Rudy
|
|
12
12
|
def machines_console
|
13
13
|
mlist = get_machines
|
14
14
|
mlist.each do |machine|
|
15
|
-
|
16
|
-
|
15
|
+
li machine_separator(machine.name, machine.instid)
|
16
|
+
li machine.get_console
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def machines_password
|
21
21
|
mlist = get_machines
|
22
22
|
mlist.each do |machine|
|
23
|
-
|
24
|
-
|
23
|
+
li machine_separator(machine.name, machine.instid)
|
24
|
+
li "Password for %s: %s" % [machine.dns_public, machine.get_password]
|
25
25
|
end
|
26
26
|
Rudy::Routines::Handlers::Group.authorize rescue nil
|
27
27
|
end
|
@@ -31,12 +31,12 @@ module Rudy
|
|
31
31
|
dirt = mlist.select { |m| !m.instance_running? }
|
32
32
|
|
33
33
|
if dirt.empty?
|
34
|
-
|
34
|
+
li "Nothing to wash in #{current_machine_group}"
|
35
35
|
return
|
36
36
|
end
|
37
37
|
|
38
|
-
|
39
|
-
|
38
|
+
li "The following machine metadata will be deleted:".bright
|
39
|
+
li dirt.collect {|m| m.name.bright }
|
40
40
|
execute_check(:medium)
|
41
41
|
|
42
42
|
dirt.each do |m|
|
@@ -92,8 +92,8 @@ module Rudy
|
|
92
92
|
|
93
93
|
def associate_machines
|
94
94
|
|
95
|
-
|
96
|
-
|
95
|
+
li "Assigning static IP addresses for:"
|
96
|
+
li @mlist.collect { |m| m.name }
|
97
97
|
|
98
98
|
execute_check(:medium)
|
99
99
|
|
@@ -101,7 +101,7 @@ module Rudy
|
|
101
101
|
next if @mlist_static.member?(m)
|
102
102
|
address = @alist_unused.shift
|
103
103
|
address ||= Rudy::AWS::EC2::Addresses.create.ipaddress
|
104
|
-
|
104
|
+
li "Associating #{address} to #{m.name} (#{m.instid})"
|
105
105
|
Rudy::AWS::EC2::Addresses.associate(address, m.instid)
|
106
106
|
sleep 2
|
107
107
|
m.refresh!
|
@@ -116,7 +116,7 @@ module Rudy
|
|
116
116
|
|
117
117
|
unless @mlist_static.empty?
|
118
118
|
@mlist_static.each do |m|
|
119
|
-
|
119
|
+
li "%s: %s" % [m.name, m.dns_public]
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|
@@ -137,15 +137,15 @@ module Rudy
|
|
137
137
|
|
138
138
|
def disassociate_machines
|
139
139
|
if @mlist_static.empty?
|
140
|
-
|
140
|
+
li "No machines in #{current_group_name} have static IP addresses"
|
141
141
|
else
|
142
|
-
|
143
|
-
|
144
|
-
|
142
|
+
li "The following machines will be updated:"
|
143
|
+
li @mlist_static.collect { |m| m.name }
|
144
|
+
li "NOTE: Unassigned IP addresses are not removed from your account"
|
145
145
|
execute_check(:medium)
|
146
146
|
@mlist_static.each do |m|
|
147
147
|
address = Resolv.getaddress m.dns_public
|
148
|
-
|
148
|
+
li "Disassociating #{address} from #{m.name} (#{m.instid})"
|
149
149
|
Rudy::AWS::EC2::Addresses.disassociate(address)
|
150
150
|
end
|
151
151
|
end
|
@@ -156,7 +156,7 @@ module Rudy
|
|
156
156
|
rset = Rye::Set.new(current_group_name, :parallel => @@global.parallel, :user => 'root')
|
157
157
|
os = current_machine_os
|
158
158
|
mlist.each do |m|
|
159
|
-
|
159
|
+
li "Updating #{m.name}"
|
160
160
|
m.refresh!
|
161
161
|
rbox = Rye::Box.new(m.dns_public, :user => 'root')
|
162
162
|
rbox.add_key user_keypairpath('root')
|
@@ -164,16 +164,16 @@ module Rudy
|
|
164
164
|
rbox.stash = m
|
165
165
|
rset.add_boxes rbox
|
166
166
|
if m.os.to_s != os.to_s
|
167
|
-
|
167
|
+
li "os: #{os}"
|
168
168
|
m.os = os
|
169
169
|
end
|
170
170
|
m.save :replace
|
171
171
|
end
|
172
172
|
|
173
173
|
unless os.to_s == 'windows'
|
174
|
-
|
174
|
+
li "Updating hostnames for #{current_group_name}"
|
175
175
|
Rudy::Routines::Handlers::Host.set_hostname rset
|
176
|
-
|
176
|
+
li rset.hostname.flatten
|
177
177
|
end
|
178
178
|
|
179
179
|
end
|
@@ -188,7 +188,7 @@ module Rudy
|
|
188
188
|
Rudy::Utils.service_available?(m.dns_public, port)
|
189
189
|
}
|
190
190
|
available = Rudy::Utils.service_available?(m.dns_public, port)
|
191
|
-
|
191
|
+
li available ? 'up' : 'down'
|
192
192
|
end
|
193
193
|
|
194
194
|
end
|
@@ -205,7 +205,7 @@ module Rudy
|
|
205
205
|
# TODO: Give this method a good look over
|
206
206
|
pkey = current_user_keypairpath
|
207
207
|
unless pkey
|
208
|
-
|
208
|
+
li "No private key configured for #{current_machine_user} in #{current_machine_group}"
|
209
209
|
end
|
210
210
|
|
211
211
|
# Options to be sent to Rye::Box
|
@@ -221,7 +221,7 @@ module Rudy
|
|
221
221
|
local_keys = Rye.keys
|
222
222
|
rye_opts[:keys] += local_keys if local_keys.is_a?(Array)
|
223
223
|
|
224
|
-
|
224
|
+
li "# SSH OPTS", rye_opts.to_yaml if @@global.verbose > 3
|
225
225
|
|
226
226
|
# The user specified a command to run. We won't create an interactive
|
227
227
|
# session so we need to prepare the command and its arguments
|
@@ -251,9 +251,9 @@ module Rudy
|
|
251
251
|
if @@global.quiet
|
252
252
|
print "You are #{rye_opts[:user].to_s.bright}. " if !checked # only the 1st
|
253
253
|
else
|
254
|
-
|
255
|
-
|
256
|
-
|
254
|
+
li machine_separator(machine.name, machine.instid)
|
255
|
+
li "Connecting #{rye_opts[:user].to_s.bright}@#{machine.dns_public} "
|
256
|
+
li
|
257
257
|
end
|
258
258
|
else
|
259
259
|
unless @global.parallel
|