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
data/CHANGES.txt
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
RUDY, CHANGES
|
2
2
|
|
3
3
|
|
4
|
+
#### 0.9.4 (2009-08-28) ###########################
|
5
|
+
|
6
|
+
* FIXED: NoMachines exception when running various dependency scenarios
|
7
|
+
* CHANGE: All puts to STDOUT and STDERR now go through Rudy::Huxtable.li and Rudy::Huxtable.le. This resolves the issues with the output printing in quiet mode.
|
8
|
+
* CHANGE: Overhaul on output formatting.
|
9
|
+
* ADDED: "rudy networks --create" and "rudy networks --destroy"
|
10
|
+
|
11
|
+
|
4
12
|
#### 0.9.3 (2009-08-26) ###########################
|
5
13
|
|
6
14
|
* FIXED: Updated dependencies in gemspec (Rye)
|
@@ -8,7 +16,6 @@ RUDY, CHANGES
|
|
8
16
|
connections. This resolves the issues with creating and authorizing
|
9
17
|
a remote user then getting an authentication error.
|
10
18
|
|
11
|
-
|
12
19
|
#### 0.9.2 (2009-08-25) ###########################
|
13
20
|
|
14
21
|
* FIXED: Threading error in Net::HTTP by forcing a mutex during AWS::EC2 requests
|
data/bin/rudy
CHANGED
@@ -107,6 +107,8 @@ class RudyCLI < Rudy::CLI::Base
|
|
107
107
|
|
108
108
|
about "View Network configuration"
|
109
109
|
usage "rudy networks"
|
110
|
+
usage "rudy networks -C"
|
111
|
+
usage "rudy networks -D"
|
110
112
|
usage "rudy networks -L"
|
111
113
|
usage "rudy networks -L -i"
|
112
114
|
usage "rudy networks -L -e"
|
@@ -124,6 +126,8 @@ class RudyCLI < Rudy::CLI::Base
|
|
124
126
|
option :o, :owner, String, "Other group owner ID (account number). Use with -g!"
|
125
127
|
action :U, :update, "Update networks based on configuration"
|
126
128
|
action :L, :local, "Show local network configuration"
|
129
|
+
action :C, :create, "Create the network security group"
|
130
|
+
action :D, :destroy, "Create the network security group"
|
127
131
|
action :A, :authorize, "Authorize a rule for a network security group"
|
128
132
|
action :R, :revoke, "Revoke a rule for a network security group"
|
129
133
|
command :networks => Rudy::CLI::Networks
|
data/bin/rudy-ec2
CHANGED
data/lib/rudy.rb
CHANGED
data/lib/rudy/aws/ec2.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module Rudy; module AWS
|
3
3
|
module EC2
|
4
|
-
|
4
|
+
include Rudy::Huxtable
|
5
5
|
|
6
6
|
@@mutex = Mutex.new
|
7
7
|
|
@@ -18,7 +18,6 @@ module Rudy; module AWS
|
|
18
18
|
port ||= DEFAULT_EC2_PORT
|
19
19
|
|
20
20
|
@@ec2 = ::AWS::EC2::Base.new(:port => port, :server=> host, :access_key_id => access_key, :secret_access_key => secret_key)
|
21
|
-
@@logger = logger
|
22
21
|
end
|
23
22
|
|
24
23
|
protected
|
@@ -50,10 +49,10 @@ module Rudy; module AWS
|
|
50
49
|
raise Rudy::AWS::Error, ex.message
|
51
50
|
|
52
51
|
rescue Timeout::Error => ex
|
53
|
-
|
52
|
+
Rudy::Huxtable.le "Timeout (#{timeout}): #{ex.message}!"
|
54
53
|
rescue SocketError => ex
|
55
|
-
#
|
56
|
-
#
|
54
|
+
#Rudy::Huxtable.le ex.message
|
55
|
+
#Rudy::Huxtable.le ex.backtrace
|
57
56
|
raise SocketError, "Check your Internets!" unless @@global.offline
|
58
57
|
ensure
|
59
58
|
response ||= default
|
data/lib/rudy/aws/ec2/group.rb
CHANGED
@@ -244,7 +244,6 @@ module Rudy::AWS
|
|
244
244
|
|
245
245
|
def modify_rules(meth, name, addresses, ports, protocols, &each_group)
|
246
246
|
list(name, &each_group) if each_group
|
247
|
-
|
248
247
|
ports = [[22,22],[80,80],[443,443]] if !ports || ports.empty?
|
249
248
|
protocols = ["tcp"] if !protocols || protocols.empty?
|
250
249
|
addresses = [Rudy::Utils::external_ip_address] if !addresses || addresses.empty?
|
@@ -257,7 +256,6 @@ module Rudy::AWS
|
|
257
256
|
addresses.each do |address|
|
258
257
|
ports.each do |port|
|
259
258
|
port_lo, port_hi = port.is_a?(Array) ? [port[0], port[1]] : [port, port]
|
260
|
-
@logger.puts "#{meth} for ports #{port[0]}:#{port[1]} (#{protocol}) for #{addresses.join(', ')}" if @logger
|
261
259
|
ret = modify_rule(meth, name, port[0].to_i, (port[1] || port[0]).to_i, protocol, address)
|
262
260
|
raise "Unknown error during #{meth}" unless ret
|
263
261
|
end
|
data/lib/rudy/aws/sdb.rb
CHANGED
@@ -190,10 +190,10 @@ module Rudy
|
|
190
190
|
end
|
191
191
|
|
192
192
|
rescue Timeout::Error => ex
|
193
|
-
|
193
|
+
Rudy::Huxtable.le "Timeout (#{timeout}): #{ex.message}!"
|
194
194
|
rescue SocketError => ex
|
195
|
-
#
|
196
|
-
#
|
195
|
+
#Rudy::Huxtable.le ex.message
|
196
|
+
#Rudy::Huxtable.le ex.backtrace
|
197
197
|
raise SocketError, "Check your Internets!" unless Rudy::Huxtable.global.offline
|
198
198
|
ensure
|
199
199
|
response ||= default
|
@@ -20,8 +20,8 @@ module AWS; module EC2;
|
|
20
20
|
address = Rudy::AWS::EC2::Addresses.get(@argv.ipaddress)
|
21
21
|
raise "Could not fetch #{address.ipaddress}" unless address
|
22
22
|
|
23
|
-
|
24
|
-
|
23
|
+
li "Destroying address: #{@argv.ipaddress}"
|
24
|
+
li "NOTE: this IP address will become available to other EC2 customers.".bright
|
25
25
|
execute_check(:medium)
|
26
26
|
execute_action { Rudy::AWS::EC2::Addresses.destroy(@argv.ipaddress) }
|
27
27
|
end
|
@@ -37,7 +37,7 @@ module AWS; module EC2;
|
|
37
37
|
if @option.newaddress
|
38
38
|
print "Creating address... "
|
39
39
|
tmp = Rudy::AWS::EC2::Addresses.create
|
40
|
-
|
40
|
+
li "#{tmp.ipaddress}"
|
41
41
|
address = tmp.ipaddress
|
42
42
|
else
|
43
43
|
address = @argv.ipaddress
|
@@ -53,7 +53,7 @@ module AWS; module EC2;
|
|
53
53
|
instance_name = instance.dns_public
|
54
54
|
instance_name = instance.awsid if !instance_name || instance_name.empty?
|
55
55
|
|
56
|
-
|
56
|
+
li "Associating #{address} to #{instance_name} (#{instance.groups.join(', ')})"
|
57
57
|
execute_check(:low)
|
58
58
|
execute_action { Rudy::AWS::EC2::Addresses.associate(address, instance.awsid) }
|
59
59
|
address = Rudy::AWS::EC2::Addresses.get(address)
|
@@ -71,7 +71,7 @@ module AWS; module EC2;
|
|
71
71
|
address = Rudy::AWS::EC2::Addresses.get(@argv.ipaddress)
|
72
72
|
instance = Rudy::AWS::EC2::Instances.get(address.instid)
|
73
73
|
|
74
|
-
|
74
|
+
li "Disassociating #{address.ipaddress} from #{instance.awsid} (#{instance.groups.join(', ')})"
|
75
75
|
execute_check(:medium)
|
76
76
|
execute_action { Rudy::AWS::EC2::Addresses.disassociate(@argv.ipaddress) }
|
77
77
|
address = Rudy::AWS::EC2::Addresses.get(@argv.ipaddress)
|
@@ -21,20 +21,20 @@ module AWS; module EC2;
|
|
21
21
|
|
22
22
|
# TODO: Create Storable object
|
23
23
|
if @@global.format == 'yaml'
|
24
|
-
|
24
|
+
li ec2.to_yaml
|
25
25
|
elsif @@global.format == 'json'
|
26
26
|
require 'json'
|
27
|
-
|
27
|
+
li ec2.to_json
|
28
28
|
else
|
29
|
-
|
30
|
-
|
29
|
+
li "#{ec2[:title]}"
|
30
|
+
li "Updated: #{ec2[:pubdate]}"
|
31
31
|
(ec2[:items] || []).each do |i|
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
li
|
33
|
+
li '%s' % i[:title]
|
34
|
+
li ' %s: %s' % [i[:pubdate], i[:description]]
|
35
35
|
end
|
36
36
|
if ec2.empty? || ec2[:items].empty?
|
37
|
-
|
37
|
+
li "No announcements"
|
38
38
|
return
|
39
39
|
end
|
40
40
|
end
|
@@ -76,7 +76,7 @@ module AWS; module EC2;
|
|
76
76
|
# session so we need to prepare the command and its arguments
|
77
77
|
if @argv.first
|
78
78
|
command, command_args = @argv.shift, @argv || []
|
79
|
-
|
79
|
+
li "#{command} #{command_args.join(' ')}" if @@global.verbose > 1
|
80
80
|
|
81
81
|
# otherwise, we'll open an ssh session or print command
|
82
82
|
else
|
@@ -91,7 +91,7 @@ module AWS; module EC2;
|
|
91
91
|
print "You are #{rye_opts[:user].bright}. " if !checked # only the 1st
|
92
92
|
else
|
93
93
|
print "Connecting #{rye_opts[:user].bright}@#{inst.dns_public} "
|
94
|
-
|
94
|
+
li "(#{inst.awsid}, groups: #{inst.groups.join(', ')})"
|
95
95
|
end
|
96
96
|
|
97
97
|
# Make sure we want to run this command on all instances
|
@@ -103,7 +103,7 @@ module AWS; module EC2;
|
|
103
103
|
# Open the connection and run the command
|
104
104
|
rbox = Rye::Box.new(inst.dns_public, rye_opts)
|
105
105
|
ret = rbox.send(command, command_args)
|
106
|
-
|
106
|
+
li ret unless command == :interactive_ssh
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
@@ -162,7 +162,7 @@ module AWS; module EC2;
|
|
162
162
|
print "You are #{rye_opts[:user].bright}. " if !checked # only the 1st
|
163
163
|
else
|
164
164
|
print "Connecting #{rye_opts[:user].bright}@#{inst.dns_public} "
|
165
|
-
|
165
|
+
li "(#{inst.awsid}, groups: #{inst.groups.join(', ')})"
|
166
166
|
end
|
167
167
|
|
168
168
|
# Make sure we want to run this command on all instances
|
@@ -190,12 +190,12 @@ module AWS; module EC2;
|
|
190
190
|
paths.each do |path|
|
191
191
|
from_paths << "#{user}@#{host}:#{path} "
|
192
192
|
end
|
193
|
-
#
|
193
|
+
#li "Copying FROM remote TO this machine", $/
|
194
194
|
|
195
195
|
else
|
196
196
|
to_path = "#{user}@#{host}:#{to_path}"
|
197
197
|
from_paths = paths.join(' ')
|
198
|
-
#
|
198
|
+
#li "Copying FROM this machine TO remote", $/
|
199
199
|
end
|
200
200
|
|
201
201
|
|
@@ -203,8 +203,8 @@ module AWS; module EC2;
|
|
203
203
|
cmd << "-i #{keypair}" if keypair
|
204
204
|
cmd << " #{from_paths} #{to_path}"
|
205
205
|
|
206
|
-
|
207
|
-
printonly ? (
|
206
|
+
li cmd if verbose
|
207
|
+
printonly ? (li cmd) : system(cmd)
|
208
208
|
end
|
209
209
|
|
210
210
|
|
@@ -17,7 +17,7 @@ module AWS; module EC2;
|
|
17
17
|
Rudy::AWS::EC2::Groups.create(@argv.name, @option.description, opts[:addresses], opts[:ports], opts[:protocols])
|
18
18
|
}
|
19
19
|
Rudy::AWS::EC2::Groups.list(@argv.name) do |group|
|
20
|
-
|
20
|
+
li @@global.verbose > 0 ? group.inspect : group.dump(@@global.format)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -29,7 +29,7 @@ module AWS; module EC2;
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def destroy_groups
|
32
|
-
|
32
|
+
li "Destroying group: #{@argv.name}"
|
33
33
|
execute_check(:medium)
|
34
34
|
execute_action { Rudy::AWS::EC2::Groups.destroy(@argv.name) }
|
35
35
|
@argv.clear # so groups will print all other groups
|
@@ -45,7 +45,7 @@ module AWS; module EC2;
|
|
45
45
|
opts = {}
|
46
46
|
name = @option.all ? nil : @argv.name
|
47
47
|
Rudy::AWS::EC2::Groups.list(name).each do |group|
|
48
|
-
|
48
|
+
li @@global.verbose > 0 ? group.inspect : group.dump(@@global.format)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -72,12 +72,12 @@ module AWS; module EC2;
|
|
72
72
|
opts = check_options
|
73
73
|
if (@option.group || @option.owner)
|
74
74
|
g = [opts[:owner], opts[:group]].join(':')
|
75
|
-
|
75
|
+
li "#{action.to_s.capitalize} access to #{@argv.name.bright} from #{g.bright}"
|
76
76
|
else
|
77
77
|
print "#{action.to_s.capitalize} access to #{@argv.name.bright}"
|
78
|
-
|
78
|
+
li " from #{opts[:addresses].join(', ').bright}"
|
79
79
|
print "on #{opts[:protocols].join(', ').bright} "
|
80
|
-
|
80
|
+
li "ports: #{opts[:ports].map { |p| "#{p.join(' to ').bright}" }.join(', ')}"
|
81
81
|
end
|
82
82
|
execute_check(:medium)
|
83
83
|
execute_action {
|
@@ -17,7 +17,7 @@ module AWS; module EC2;
|
|
17
17
|
|
18
18
|
unless @option.all
|
19
19
|
@option.owner ||= 'amazon'
|
20
|
-
|
20
|
+
li "Images owned by #{@option.owner.bright}" unless @argv.awsid
|
21
21
|
end
|
22
22
|
|
23
23
|
images = Rudy::AWS::EC2::Images.list(@option.owner, @argv) || []
|
@@ -31,7 +31,7 @@ module AWS; module EC2;
|
|
31
31
|
true
|
32
32
|
end
|
33
33
|
def destroy_images
|
34
|
-
|
34
|
+
li Rudy::AWS::EC2::Images.deregister(@argv.ami) ? "Done" : "Unknown error"
|
35
35
|
end
|
36
36
|
|
37
37
|
def register_images_valid?
|
@@ -41,7 +41,7 @@ module AWS; module EC2;
|
|
41
41
|
true
|
42
42
|
end
|
43
43
|
def register_images
|
44
|
-
|
44
|
+
li Rudy::AWS::EC2::Images.register(@argv.first)
|
45
45
|
end
|
46
46
|
|
47
47
|
|
@@ -14,47 +14,47 @@ module AWS; module EC2;
|
|
14
14
|
process_region region
|
15
15
|
end
|
16
16
|
else
|
17
|
-
|
17
|
+
li $/, "Other regions: " << oregions.join(', ')
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
|
22
22
|
private
|
23
23
|
def process_region(region)
|
24
|
-
|
25
|
-
|
24
|
+
li " Region: %s %30s".att(:reverse) % [region, '']
|
25
|
+
li " Instances".bright
|
26
26
|
istatus = @option.all ? :any : :running
|
27
27
|
(Rudy::AWS::EC2::Instances.list(istatus) || []).collect do |inst|
|
28
|
-
#
|
29
|
-
|
28
|
+
#li " %s (%s): %s; %s; %s" % [inst.awsid, inst.state, inst.dns_public || '[no dns]', inst.size, inst.created]
|
29
|
+
li " #{inst.to_s.noatt}"
|
30
30
|
end
|
31
31
|
|
32
|
-
|
32
|
+
li " Volumes".bright
|
33
33
|
(Rudy::AWS::EC2::Volumes.list || []).collect do |vol|
|
34
|
-
|
34
|
+
li " %s (%s): %sGB; %s" % [vol.awsid, vol.instid || vol.status, vol.size, vol.created]
|
35
35
|
end
|
36
36
|
|
37
|
-
|
37
|
+
li " Snapshots".bright
|
38
38
|
(Rudy::AWS::EC2::Snapshots.list || []).collect do |snap|
|
39
|
-
|
39
|
+
li " %s: %s; %s" % [snap.awsid, snap.volid, snap.created]
|
40
40
|
end
|
41
41
|
|
42
|
-
|
42
|
+
li " Addresses".bright
|
43
43
|
(Rudy::AWS::EC2::Addresses.list || []).collect do |o|
|
44
|
-
|
44
|
+
li " %s (%s)" % [o.ipaddress, o.instid || 'available']
|
45
45
|
end
|
46
46
|
|
47
|
-
|
48
|
-
|
47
|
+
li " Groups".bright
|
48
|
+
li (Rudy::AWS::EC2::Groups.list || []).collect { |o| " #{o.name}" }
|
49
49
|
|
50
|
-
|
51
|
-
|
50
|
+
li " Keypairs".bright
|
51
|
+
li (Rudy::AWS::EC2::Keypairs.list || []).collect { |o| " #{o.name}" }
|
52
52
|
|
53
|
-
|
53
|
+
li " Images".bright
|
54
54
|
(Rudy::AWS::EC2::Images.list('self') || []).collect do |o|
|
55
|
-
|
55
|
+
li " %s: %s; %s; %s" % [o.awsid, o.location, o.arch, o.visibility]
|
56
56
|
end
|
57
|
-
|
57
|
+
li
|
58
58
|
end
|
59
59
|
|
60
60
|
end
|
@@ -47,11 +47,11 @@ module AWS; module EC2;
|
|
47
47
|
opts[n] = @option.send(n) if @option.send(n)
|
48
48
|
end
|
49
49
|
|
50
|
-
|
50
|
+
li "Creating #{opts[:size]} instance in #{@@global.zone}"
|
51
51
|
|
52
52
|
unless opts[:keypair]
|
53
|
-
|
54
|
-
|
53
|
+
li "You did not specify a keypair. Unless you've prepared a user account".bright
|
54
|
+
li "on this image (#{opts[:ami]}) you will not be able to log in to it.".bright
|
55
55
|
exit unless Annoy.proceed?(:low)
|
56
56
|
end
|
57
57
|
|
@@ -59,14 +59,14 @@ module AWS; module EC2;
|
|
59
59
|
|
60
60
|
if instances && instances.size > 0
|
61
61
|
instance_count = (instances.size == 1) ? 'is 1 instance' : "are #{instances.size} instances"
|
62
|
-
|
62
|
+
li "There #{instance_count} running in the #{opts[:group]} group."
|
63
63
|
exit unless Annoy.proceed?(:low)
|
64
64
|
end
|
65
65
|
|
66
66
|
if @option.newaddress
|
67
67
|
print "Creating address... "
|
68
68
|
address = Rudy::AWS::EC2::Addresses.create
|
69
|
-
|
69
|
+
li "#{address.ipaddress}"
|
70
70
|
@option.address = address.ipaddress
|
71
71
|
end
|
72
72
|
|
@@ -76,7 +76,7 @@ module AWS; module EC2;
|
|
76
76
|
|
77
77
|
# Assign IP address to only the first instance
|
78
78
|
if first_instance && @option.address
|
79
|
-
|
79
|
+
li "Associating #{@option.address} to #{inst.awsid}"
|
80
80
|
Rudy::AWS::EC2::Addresses.associate(@option.address, inst.awsid)
|
81
81
|
first_instance = false
|
82
82
|
end
|
@@ -128,7 +128,7 @@ module AWS; module EC2;
|
|
128
128
|
opts[:id] &&= [opts[:id]].flatten
|
129
129
|
|
130
130
|
lt = Rudy::AWS::EC2::Instances.list_group(opts[:group], :any, opts[:id]) do |inst|
|
131
|
-
|
131
|
+
li instance_separator(inst.dns_public || inst.state, inst.awsid)
|
132
132
|
console = Rudy::AWS::EC2::Instances.console(inst.awsid)
|
133
133
|
output = console ? Base64.decode64(console) : "Unavailable"
|
134
134
|
|
@@ -137,20 +137,20 @@ module AWS; module EC2;
|
|
137
137
|
# clear specifically. Otherwise the display is messed!
|
138
138
|
output &&= output.noansi
|
139
139
|
|
140
|
-
|
140
|
+
li output
|
141
141
|
|
142
142
|
if output.match(/<Password>(.+)<\/Password>/m) # /m, match multiple lines
|
143
|
-
|
143
|
+
li
|
144
144
|
if @@global.pkey
|
145
145
|
encrtypted_text = ($1 || '').strip
|
146
146
|
k = Rye::Key.from_file(@@global.pkey)
|
147
147
|
pword = k.decrypt(encrtypted_text)
|
148
148
|
answer = "%s: %s" % ['password', pword]
|
149
149
|
Annoy.timed_display(answer, STDERR, 10)
|
150
|
-
|
150
|
+
li
|
151
151
|
else
|
152
|
-
|
153
|
-
|
152
|
+
li "Please supply a private key path to decode the administrator password"
|
153
|
+
li "rudy-ec2 -k path/2/privatekey console [-g group] [instance ID]"
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
@@ -172,9 +172,9 @@ module AWS; module EC2;
|
|
172
172
|
|
173
173
|
opts[:id] = @argv.instid if @argv.instid
|
174
174
|
opts[:id] &&= [opts[:id]].flatten
|
175
|
-
|
175
|
+
|
176
176
|
ilist = Rudy::AWS::EC2::Instances.list_group(opts[:group], opts[:state], opts[:id])
|
177
|
-
ilist.nil? ?
|
177
|
+
ilist.nil? ? li( "No instances running" ) : print_stobjects(ilist)
|
178
178
|
end
|
179
179
|
alias :instances :status
|
180
180
|
|
@@ -198,7 +198,7 @@ module AWS; module EC2;
|
|
198
198
|
|
199
199
|
print "#{action.to_s.capitalize} #{instance_count} (#{inst_names.join(', ')}) "
|
200
200
|
print "in #{opts[:group]}" if opts[:group]
|
201
|
-
|
201
|
+
li
|
202
202
|
execute_check(:medium)
|
203
203
|
|
204
204
|
execute_action("#{action.to_s.capitalize} Failed") {
|