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.
Files changed (46) hide show
  1. data/CHANGES.txt +8 -1
  2. data/bin/rudy +4 -0
  3. data/bin/rudy-ec2 +1 -0
  4. data/lib/rudy.rb +1 -1
  5. data/lib/rudy/aws/ec2.rb +4 -5
  6. data/lib/rudy/aws/ec2/group.rb +0 -2
  7. data/lib/rudy/aws/sdb.rb +3 -3
  8. data/lib/rudy/cli/aws/ec2/addresses.rb +5 -5
  9. data/lib/rudy/cli/aws/ec2/candy.rb +16 -16
  10. data/lib/rudy/cli/aws/ec2/groups.rb +6 -6
  11. data/lib/rudy/cli/aws/ec2/images.rb +3 -3
  12. data/lib/rudy/cli/aws/ec2/info.rb +18 -18
  13. data/lib/rudy/cli/aws/ec2/instances.rb +15 -15
  14. data/lib/rudy/cli/aws/ec2/keypairs.rb +6 -6
  15. data/lib/rudy/cli/aws/ec2/snapshots.rb +1 -1
  16. data/lib/rudy/cli/aws/ec2/volumes.rb +10 -10
  17. data/lib/rudy/cli/backups.rb +5 -5
  18. data/lib/rudy/cli/base.rb +9 -9
  19. data/lib/rudy/cli/candy.rb +1 -1
  20. data/lib/rudy/cli/config.rb +6 -6
  21. data/lib/rudy/cli/disks.rb +5 -5
  22. data/lib/rudy/cli/images.rb +12 -12
  23. data/lib/rudy/cli/info.rb +9 -9
  24. data/lib/rudy/cli/keypairs.rb +5 -5
  25. data/lib/rudy/cli/machines.rb +26 -26
  26. data/lib/rudy/cli/metadata.rb +2 -2
  27. data/lib/rudy/cli/networks.rb +17 -8
  28. data/lib/rudy/cli/routines.rb +10 -10
  29. data/lib/rudy/config.rb +2 -2
  30. data/lib/rudy/config/objects.rb +1 -1
  31. data/lib/rudy/huxtable.rb +11 -5
  32. data/lib/rudy/machines.rb +4 -1
  33. data/lib/rudy/metadata/machine.rb +18 -9
  34. data/lib/rudy/routines.rb +4 -4
  35. data/lib/rudy/routines/handlers/base.rb +6 -6
  36. data/lib/rudy/routines/handlers/disks.rb +9 -9
  37. data/lib/rudy/routines/handlers/group.rb +1 -1
  38. data/lib/rudy/routines/handlers/rye.rb +7 -5
  39. data/lib/rudy/routines/handlers/script.rb +2 -2
  40. data/lib/rudy/routines/passthrough.rb +11 -4
  41. data/lib/rudy/routines/reboot.rb +16 -5
  42. data/lib/rudy/routines/shutdown.rb +14 -5
  43. data/lib/rudy/routines/startup.rb +5 -6
  44. data/lib/rudy/utils.rb +2 -2
  45. data/rudy.gemspec +1 -1
  46. metadata +2 -3
@@ -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
@@ -20,6 +20,7 @@ require 'rudy/cli'
20
20
  module RudyCLI_EC2
21
21
  extend Drydock
22
22
 
23
+ debug :off
23
24
  default :instances
24
25
 
25
26
  # ----------------------------------- AMAZON EC2 COMMANDS --------
@@ -42,7 +42,7 @@ module Rudy
42
42
  unless defined?(MAJOR)
43
43
  MAJOR = 0.freeze
44
44
  MINOR = 9.freeze
45
- TINY = 3.freeze
45
+ TINY = 4.freeze
46
46
  end
47
47
  def self.to_s; [MAJOR, MINOR, TINY].join('.'); end
48
48
  def self.to_f; self.to_s.to_f; end
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Rudy; module AWS
3
3
  module EC2
4
- # include Rudy::Huxtable
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
- STDERR.puts "Timeout (#{timeout}): #{ex.message}!"
52
+ Rudy::Huxtable.le "Timeout (#{timeout}): #{ex.message}!"
54
53
  rescue SocketError => ex
55
- #STDERR.puts ex.message
56
- #STDERR.puts ex.backtrace
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
@@ -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
@@ -190,10 +190,10 @@ module Rudy
190
190
  end
191
191
 
192
192
  rescue Timeout::Error => ex
193
- STDERR.puts "Timeout (#{timeout}): #{ex.message}!"
193
+ Rudy::Huxtable.le "Timeout (#{timeout}): #{ex.message}!"
194
194
  rescue SocketError => ex
195
- #STDERR.puts ex.message
196
- #STDERR.puts ex.backtrace
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
- puts "Destroying address: #{@argv.ipaddress}"
24
- puts "NOTE: this IP address will become available to other EC2 customers.".bright
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
- puts "#{tmp.ipaddress}"
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
- puts "Associating #{address} to #{instance_name} (#{instance.groups.join(', ')})"
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
- puts "Disassociating #{address.ipaddress} from #{instance.awsid} (#{instance.groups.join(', ')})"
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
- puts ec2.to_yaml
24
+ li ec2.to_yaml
25
25
  elsif @@global.format == 'json'
26
26
  require 'json'
27
- puts ec2.to_json
27
+ li ec2.to_json
28
28
  else
29
- puts "#{ec2[:title]}"
30
- puts "Updated: #{ec2[:pubdate]}"
29
+ li "#{ec2[:title]}"
30
+ li "Updated: #{ec2[:pubdate]}"
31
31
  (ec2[:items] || []).each do |i|
32
- puts
33
- puts '%s' % i[:title]
34
- puts ' %s: %s' % [i[:pubdate], i[:description]]
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
- puts "No announcements"
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
- puts "#{command} #{command_args.join(' ')}" if @@global.verbose > 1
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
- puts "(#{inst.awsid}, groups: #{inst.groups.join(', ')})"
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
- puts ret unless command == :interactive_ssh
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
- puts "(#{inst.awsid}, groups: #{inst.groups.join(', ')})"
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
- #puts "Copying FROM remote TO this machine", $/
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
- #puts "Copying FROM this machine TO remote", $/
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
- puts cmd if verbose
207
- printonly ? (puts cmd) : system(cmd)
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
- puts @@global.verbose > 0 ? group.inspect : group.dump(@@global.format)
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
- puts "Destroying group: #{@argv.name}"
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
- puts @@global.verbose > 0 ? group.inspect : group.dump(@@global.format)
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
- puts "#{action.to_s.capitalize} access to #{@argv.name.bright} from #{g.bright}"
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
- puts " from #{opts[:addresses].join(', ').bright}"
78
+ li " from #{opts[:addresses].join(', ').bright}"
79
79
  print "on #{opts[:protocols].join(', ').bright} "
80
- puts "ports: #{opts[:ports].map { |p| "#{p.join(' to ').bright}" }.join(', ')}"
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
- puts "Images owned by #{@option.owner.bright}" unless @argv.awsid
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
- puts Rudy::AWS::EC2::Images.deregister(@argv.ami) ? "Done" : "Unknown error"
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
- puts Rudy::AWS::EC2::Images.register(@argv.first)
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
- puts $/, "Other regions: " << oregions.join(', ')
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
- puts " Region: %s %30s".att(:reverse) % [region, '']
25
- puts " Instances".bright
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
- #puts " %s (%s): %s; %s; %s" % [inst.awsid, inst.state, inst.dns_public || '[no dns]', inst.size, inst.created]
29
- puts " #{inst.to_s.noatt}"
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
- puts " Volumes".bright
32
+ li " Volumes".bright
33
33
  (Rudy::AWS::EC2::Volumes.list || []).collect do |vol|
34
- puts " %s (%s): %sGB; %s" % [vol.awsid, vol.instid || vol.status, vol.size, vol.created]
34
+ li " %s (%s): %sGB; %s" % [vol.awsid, vol.instid || vol.status, vol.size, vol.created]
35
35
  end
36
36
 
37
- puts " Snapshots".bright
37
+ li " Snapshots".bright
38
38
  (Rudy::AWS::EC2::Snapshots.list || []).collect do |snap|
39
- puts " %s: %s; %s" % [snap.awsid, snap.volid, snap.created]
39
+ li " %s: %s; %s" % [snap.awsid, snap.volid, snap.created]
40
40
  end
41
41
 
42
- puts " Addresses".bright
42
+ li " Addresses".bright
43
43
  (Rudy::AWS::EC2::Addresses.list || []).collect do |o|
44
- puts " %s (%s)" % [o.ipaddress, o.instid || 'available']
44
+ li " %s (%s)" % [o.ipaddress, o.instid || 'available']
45
45
  end
46
46
 
47
- puts " Groups".bright
48
- puts (Rudy::AWS::EC2::Groups.list || []).collect { |o| " #{o.name}" }
47
+ li " Groups".bright
48
+ li (Rudy::AWS::EC2::Groups.list || []).collect { |o| " #{o.name}" }
49
49
 
50
- puts " Keypairs".bright
51
- puts (Rudy::AWS::EC2::Keypairs.list || []).collect { |o| " #{o.name}" }
50
+ li " Keypairs".bright
51
+ li (Rudy::AWS::EC2::Keypairs.list || []).collect { |o| " #{o.name}" }
52
52
 
53
- puts " Images".bright
53
+ li " Images".bright
54
54
  (Rudy::AWS::EC2::Images.list('self') || []).collect do |o|
55
- puts " %s: %s; %s; %s" % [o.awsid, o.location, o.arch, o.visibility]
55
+ li " %s: %s; %s; %s" % [o.awsid, o.location, o.arch, o.visibility]
56
56
  end
57
- puts
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
- puts "Creating #{opts[:size]} instance in #{@@global.zone}"
50
+ li "Creating #{opts[:size]} instance in #{@@global.zone}"
51
51
 
52
52
  unless opts[:keypair]
53
- puts "You did not specify a keypair. Unless you've prepared a user account".bright
54
- puts "on this image (#{opts[:ami]}) you will not be able to log in to it.".bright
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
- puts "There #{instance_count} running in the #{opts[:group]} group."
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
- puts "#{address.ipaddress}"
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
- puts "Associating #{@option.address} to #{inst.awsid}"
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
- puts instance_separator(inst.dns_public || inst.state, inst.awsid)
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
- puts output
140
+ li output
141
141
 
142
142
  if output.match(/<Password>(.+)<\/Password>/m) # /m, match multiple lines
143
- puts
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
- puts
150
+ li
151
151
  else
152
- puts "Please supply a private key path to decode the administrator password"
153
- puts "rudy-ec2 -k path/2/privatekey console [-g group] [instance ID]"
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? ? puts( "No instances running" ) : print_stobjects(ilist)
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
- puts
201
+ li
202
202
  execute_check(:medium)
203
203
 
204
204
  execute_action("#{action.to_s.capitalize} Failed") {