solutious-rudy 0.9.1 → 0.9.2

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 (84) hide show
  1. data/CHANGES.txt +40 -16
  2. data/README.rdoc +6 -6
  3. data/bin/rudy +66 -10
  4. data/bin/rudy-ec2 +3 -1
  5. data/examples/authorize.rb +15 -0
  6. data/examples/gem-test.rb +11 -5
  7. data/examples/solaris.rb +35 -0
  8. data/examples/windows.rb +101 -0
  9. data/lib/rudy.rb +7 -1
  10. data/lib/rudy/aws.rb +2 -2
  11. data/lib/rudy/aws/ec2.rb +29 -22
  12. data/lib/rudy/aws/ec2/group.rb +1 -1
  13. data/lib/rudy/aws/ec2/image.rb +1 -29
  14. data/lib/rudy/aws/ec2/instance.rb +4 -32
  15. data/lib/rudy/aws/ec2/keypair.rb +1 -6
  16. data/lib/rudy/aws/ec2/snapshot.rb +2 -20
  17. data/lib/rudy/aws/ec2/volume.rb +11 -19
  18. data/lib/rudy/aws/ec2/zone.rb +1 -6
  19. data/lib/rudy/aws/sdb.rb +1 -1
  20. data/lib/rudy/cli/aws/ec2/addresses.rb +4 -10
  21. data/lib/rudy/cli/aws/ec2/groups.rb +0 -1
  22. data/lib/rudy/cli/aws/ec2/images.rb +1 -4
  23. data/lib/rudy/cli/aws/ec2/info.rb +63 -0
  24. data/lib/rudy/cli/aws/ec2/instances.rb +3 -5
  25. data/lib/rudy/cli/aws/ec2/keypairs.rb +3 -5
  26. data/lib/rudy/cli/aws/ec2/snapshots.rb +2 -6
  27. data/lib/rudy/cli/aws/ec2/zones.rb +2 -4
  28. data/lib/rudy/cli/backups.rb +20 -9
  29. data/lib/rudy/cli/base.rb +60 -3
  30. data/lib/rudy/cli/candy.rb +1 -1
  31. data/lib/rudy/cli/disks.rb +65 -7
  32. data/lib/rudy/cli/execbase.rb +0 -2
  33. data/lib/rudy/cli/images.rb +97 -0
  34. data/lib/rudy/cli/info.rb +48 -0
  35. data/lib/rudy/cli/keypairs.rb +43 -0
  36. data/lib/rudy/cli/machines.rb +48 -38
  37. data/lib/rudy/cli/networks.rb +68 -0
  38. data/lib/rudy/cli/routines.rb +3 -10
  39. data/lib/rudy/config/objects.rb +0 -1
  40. data/lib/rudy/disks.rb +4 -0
  41. data/lib/rudy/global.rb +1 -1
  42. data/lib/rudy/huxtable.rb +9 -3
  43. data/lib/rudy/machines.rb +1 -1
  44. data/lib/rudy/metadata.rb +4 -1
  45. data/lib/rudy/metadata/backup.rb +2 -2
  46. data/lib/rudy/metadata/disk.rb +7 -4
  47. data/lib/rudy/metadata/machine.rb +66 -2
  48. data/lib/rudy/routines.rb +2 -1
  49. data/lib/rudy/routines/base.rb +4 -157
  50. data/lib/rudy/routines/handlers/base.rb +6 -3
  51. data/lib/rudy/routines/handlers/disks.rb +127 -42
  52. data/lib/rudy/routines/handlers/group.rb +45 -10
  53. data/lib/rudy/routines/handlers/host.rb +16 -10
  54. data/lib/rudy/routines/handlers/keypair.rb +26 -10
  55. data/lib/rudy/routines/handlers/rye.rb +173 -0
  56. data/lib/rudy/routines/handlers/script.rb +2 -1
  57. data/lib/rudy/routines/passthrough.rb +2 -2
  58. data/lib/rudy/routines/reboot.rb +2 -2
  59. data/lib/rudy/routines/shutdown.rb +2 -2
  60. data/lib/rudy/routines/startup.rb +4 -2
  61. data/rudy.gemspec +15 -8
  62. data/tryouts/10_require_time/10_rudy_tryouts.rb +1 -1
  63. data/tryouts/12_config/20_defaults_tryouts.rb +1 -1
  64. data/tryouts/12_config/40_machines_tryouts.rb +1 -1
  65. data/tryouts/15_huxtable/20_user_tryouts.rb +1 -1
  66. data/tryouts/25_ec2/10_keypairs_tryouts.rb +1 -0
  67. data/tryouts/30_metadata/10_include_tryouts.rb +1 -1
  68. data/tryouts/30_metadata/13_object_tryouts.rb +4 -0
  69. data/tryouts/30_metadata/50_disk_tryouts.rb +4 -2
  70. data/tryouts/30_metadata/51_disk_digest_tryouts.rb +1 -1
  71. data/tryouts/30_metadata/53_disk_list_tryouts.rb +2 -1
  72. data/tryouts/30_metadata/56_disk_volume_tryouts.rb +1 -1
  73. data/tryouts/30_metadata/60_backup_tryouts.rb +4 -2
  74. data/tryouts/30_metadata/63_backup_list_tryouts.rb +1 -1
  75. data/tryouts/30_metadata/64_backup_disk_tryouts.rb +3 -1
  76. data/tryouts/30_metadata/66_backup_snapshot_tryouts.rb +1 -1
  77. data/tryouts/30_metadata/70_machine_tryouts.rb +5 -2
  78. data/tryouts/30_metadata/73_machine_list_tryouts.rb +1 -1
  79. data/tryouts/30_metadata/76_machine_instance_tryouts.rb +15 -3
  80. data/tryouts/30_metadata/77_machines_tryouts.rb +1 -1
  81. data/tryouts/40_routines/10_keypair_handler_tryouts.rb +6 -5
  82. data/tryouts/40_routines/11_group_handler_tryouts.rb +1 -1
  83. metadata +13 -6
  84. data/lib/rudy/cli/status.rb +0 -60
@@ -18,7 +18,7 @@ tryout "Rudy Initialization" do
18
18
  drill "auto-yes is disabled", Rudy.auto?, false
19
19
 
20
20
  drill "debug can be enabled", true do
21
- Rudy.enable_debug
21
+ #Rudy.enable_debug
22
22
  Rudy.debug?
23
23
  end
24
24
 
@@ -8,7 +8,7 @@ tryout "Defaults" do
8
8
  @@config.look_and_load # looks for and loads config files
9
9
  end
10
10
 
11
- drill "has some defaults", ["environment", "role", "zone"].sort do
11
+ drill "has some defaults", ["color", "environment", "role", "zone"].sort do
12
12
  # Sorted so we can add new keys without breaking the test
13
13
  @@config.defaults.keys.collect { |v| v.to_s }.sort
14
14
  end
@@ -13,7 +13,7 @@ tryout "Machines" do
13
13
  end
14
14
 
15
15
  dream :class, Rudy::Config::Machines
16
- dream :gibbler, "b44ba542bd2aa382cf77fa64ffc610e5e992609a"
16
+ dream :gibbler, "16073d994b669dc51a7109f5165364dce516e707"
17
17
  drill "has instance of Rudy::Config::Machines" do
18
18
  @@config.machines
19
19
  end
@@ -9,7 +9,7 @@ tryout "User related methods" do
9
9
  set :global, Rudy::Huxtable.global
10
10
  set :config, Rudy::Huxtable.config
11
11
  setup do
12
- Rudy.enable_debug
12
+ #Rudy.enable_debug
13
13
  Rudy::Huxtable.update_config # Read config files
14
14
  config.defaults[:keydir] = keydir
15
15
  Rudy::Huxtable.global.zone = 'us-east-1b'
@@ -9,6 +9,7 @@ tryouts "Keypairs" do
9
9
 
10
10
  setup do
11
11
  Rudy::Huxtable.update_config
12
+ #Rudy::Huxtable.global.region = :'eu-west-1'
12
13
  Rudy::AWS::EC2.connect global.accesskey, global.secretkey, global.region
13
14
  end
14
15
 
@@ -32,7 +32,7 @@ tryouts "include Rudy::Metadata" do
32
32
  Rudy::Metadata.create_domain test_domain
33
33
  end
34
34
 
35
- dream [:environment, :region, :role, :zone]
35
+ dream [:environment, :region, :role, :rtype, :zone]
36
36
  drill "can build a default criteria" do
37
37
  Rudy::Metadata.build_criteria(Rudy::Machines::RTYPE).keys.sort
38
38
  end
@@ -1,5 +1,6 @@
1
1
 
2
2
 
3
+
3
4
  group "Metadata"
4
5
  library :rudy, 'lib'
5
6
  tryouts "Rudy::Metadata objects" do
@@ -9,6 +10,9 @@ tryouts "Rudy::Metadata objects" do
9
10
  Rudy::Huxtable.update_config
10
11
  global = Rudy::Huxtable.global
11
12
  akey, skey, region = global.accesskey, global.secretkey, global.region
13
+ class Anything < Storable
14
+ include Rudy::Metadata
15
+ end
12
16
  end
13
17
 
14
18
  dream [:region, :zone, :environment, :role, :position]
@@ -8,7 +8,7 @@ tryout "Disk API" do
8
8
  set :test_env, 'stage' #'env_' << Rudy::Utils.strand(4)
9
9
 
10
10
  setup do
11
- Rudy.enable_debug
11
+ #Rudy.enable_debug
12
12
  Rudy::Huxtable.global.offline = true
13
13
  Rudy::Huxtable.update_config # Read config files
14
14
  global = Rudy::Huxtable.global
@@ -66,7 +66,9 @@ tryout "Disk API" do
66
66
  end
67
67
 
68
68
  drill "save disk metadata", true do
69
- Rudy::Disk.new('/any/path').save
69
+ ret = Rudy::Disk.new('/any/path').save
70
+ sleep 1 # eventual consistency
71
+ ret
70
72
  end
71
73
 
72
74
  drill "knows when an object exists", true do
@@ -7,7 +7,7 @@ Gibbler.enable_debug if Tryouts.verbose > 3
7
7
  tryout "Disk API" do
8
8
 
9
9
  setup do
10
- Rudy.enable_debug
10
+ #Rudy.enable_debug
11
11
  Rudy::Huxtable.update_config # Read config files
12
12
  global = Rudy::Huxtable.global
13
13
  akey, skey, region = global.accesskey, global.secretkey, global.region
@@ -7,7 +7,7 @@ Gibbler.enable_debug if Tryouts.verbose > 3
7
7
  tryout "List Disks" do
8
8
 
9
9
  setup do
10
- Rudy.enable_debug
10
+ #Rudy.enable_debug
11
11
  Rudy::Huxtable.update_config # Read config files
12
12
  global = Rudy::Huxtable.global
13
13
  akey, skey, region = global.accesskey, global.secretkey, global.region
@@ -15,6 +15,7 @@ tryout "List Disks" do
15
15
  Rudy::AWS::EC2.connect akey, skey, region
16
16
  Rudy::Disk.new('/any/path1').save :replace
17
17
  Rudy::Disk.new('/any/path2').save :replace
18
+ sleep 1
18
19
  end
19
20
 
20
21
  clean do
@@ -7,7 +7,7 @@ tryout "Disk Volume API" do
7
7
  set :test_env, 'stage' << Rudy::Utils.strand(4)
8
8
 
9
9
  setup do
10
- Rudy.enable_debug
10
+ #Rudy.enable_debug
11
11
  Rudy::Huxtable.global.offline = true
12
12
  Rudy::Huxtable.update_config # Read config files
13
13
  global = Rudy::Huxtable.global
@@ -9,7 +9,7 @@ tryout "Backup API" do
9
9
  set :test_env, :stage #'env_' << Rudy::Utils.strand(4)
10
10
 
11
11
  setup do
12
- Rudy.enable_debug
12
+ #Rudy.enable_debug
13
13
  Rudy::Huxtable.global.offline = true
14
14
  Rudy::Huxtable.update_config # Read config files
15
15
  global = Rudy::Huxtable.global
@@ -69,7 +69,9 @@ tryout "Backup API" do
69
69
  end
70
70
 
71
71
  drill "save metadata", true do
72
- Rudy::Backup.new(1, '/any/path', :created => sample_time).save
72
+ ret = Rudy::Backup.new(1, '/any/path', :created => sample_time).save
73
+ sleep 1
74
+ ret
73
75
  end
74
76
 
75
77
  drill "knows when an object exists", true do
@@ -9,7 +9,7 @@ tryout "List Backups" do
9
9
  set :sample_time, Time.now.utc
10
10
 
11
11
  setup do
12
- Rudy.enable_debug
12
+ #Rudy.enable_debug
13
13
  Rudy::Huxtable.update_config # Read config files
14
14
  global = Rudy::Huxtable.global
15
15
  akey, skey, region = global.accesskey, global.secretkey, global.region
@@ -7,7 +7,7 @@ Gibbler.enable_debug if Tryouts.verbose > 3
7
7
  tryout "Disk Backups" do
8
8
 
9
9
  setup do
10
- Rudy.enable_debug
10
+ #Rudy.enable_debug
11
11
  Rudy::Huxtable.update_config # Read config files
12
12
  global = Rudy::Huxtable.global
13
13
  akey, skey, region = global.accesskey, global.secretkey, global.region
@@ -51,11 +51,13 @@ tryout "Disk Backups" do
51
51
  success = (prev.created <= back.created)
52
52
  break unless success
53
53
  end
54
+ sleep 1
54
55
  success
55
56
  end
56
57
 
57
58
  drill "destroy all backups", false do
58
59
  Rudy::Backups.list.each { |b| b.destroy }
60
+ sleep 1
59
61
  Rudy::Backups.any?
60
62
  end
61
63
 
@@ -9,7 +9,7 @@ tryout "Backup Snapshot API" do
9
9
  set :test_env, :stage #'env_' << Rudy::Utils.strand(4)
10
10
 
11
11
  setup do
12
- Rudy.enable_debug
12
+ #Rudy.enable_debug
13
13
  Rudy::Huxtable.global.offline = true
14
14
  Rudy::Huxtable.update_config # Read config files
15
15
  global = Rudy::Huxtable.global
@@ -8,7 +8,7 @@ tryout "Rudy::Machine API" do
8
8
  set :test_env, 'stage' #'env_' << Rudy::Utils.strand(4)
9
9
 
10
10
  setup do
11
- Rudy.enable_debug
11
+ #Rudy.enable_debug
12
12
  Rudy::Huxtable.global.offline = true
13
13
  Rudy::Huxtable.update_config # Read config files
14
14
  global = Rudy::Huxtable.global
@@ -53,7 +53,9 @@ tryout "Rudy::Machine API" do
53
53
 
54
54
  dream :exception, Rudy::Metadata::DuplicateRecord
55
55
  drill "won't save over a machine with the same name" do
56
- Rudy::Machine.new.save
56
+ ret = Rudy::Machine.new.save
57
+ sleep 1
58
+ ret
57
59
  end
58
60
 
59
61
  drill "will save over a disk with the same name if forced", true do
@@ -66,6 +68,7 @@ tryout "Rudy::Machine API" do
66
68
  m = Rudy::Machine.new
67
69
  m.save :replace
68
70
  m.size = :nothing
71
+ sleep 1
69
72
  m.refresh!
70
73
  m
71
74
  end
@@ -7,7 +7,7 @@ Gibbler.enable_debug if Tryouts.verbose > 3
7
7
  tryout "List Machines" do
8
8
 
9
9
  setup do
10
- Rudy.enable_debug
10
+ #Rudy.enable_debug
11
11
  Rudy::Huxtable.update_config # Read config files
12
12
  global = Rudy::Huxtable.global
13
13
  akey, skey, region = global.accesskey, global.secretkey, global.region
@@ -8,7 +8,7 @@ tryout "Rudy::Machine Instance API" do
8
8
  set :test_env, 'stage' #'env_' << Rudy::Utils.strand(4)
9
9
 
10
10
  setup do
11
- Rudy.enable_debug
11
+ #Rudy.enable_debug
12
12
  Rudy::Huxtable.global.offline = true
13
13
  Rudy::Huxtable.update_config # Read config files
14
14
  global = Rudy::Huxtable.global
@@ -16,9 +16,14 @@ tryout "Rudy::Machine Instance API" do
16
16
  akey, skey, region = global.accesskey, global.secretkey, global.region
17
17
  Rudy::Metadata.connect akey, skey, region
18
18
  Rudy::AWS::EC2.connect akey, skey, region
19
+ Rudy::Routines::Handlers::Keypair.create
20
+ Rudy::Routines::Handlers::Group.create
19
21
  end
20
22
 
21
23
  clean do
24
+ Rudy::Routines::Handlers::Keypair.unregister
25
+ Rudy::Routines::Handlers::Keypair.delete_pkey
26
+ Rudy::Routines::Handlers::Group.destroy
22
27
  if Rudy.debug?
23
28
  puts $/, "Rudy Debugging:"
24
29
  Rudy::Huxtable.logger.rewind
@@ -36,6 +41,9 @@ tryout "Rudy::Machine Instance API" do
36
41
  drill "create machine with instance" do
37
42
  mach = Rudy::Machine.new '02'
38
43
  mach.create
44
+ Rudy::Utils.waiter {
45
+ mach.instance_running?
46
+ }
39
47
  mach.instid
40
48
  end
41
49
 
@@ -43,7 +51,7 @@ tryout "Rudy::Machine Instance API" do
43
51
  drill "refresh machine" do
44
52
  mach = Rudy::Machine.new '02'
45
53
  mach.refresh!
46
- mach.instid
54
+ mach.dns_public
47
55
  end
48
56
 
49
57
  dream [true, true]
@@ -57,7 +65,11 @@ tryout "Rudy::Machine Instance API" do
57
65
  drill "destroy machine with instance" do
58
66
  mach = Rudy::Machine.new '02'
59
67
  mach.refresh!
60
- mach.destroy
68
+ ret = mach.destroy
69
+ Rudy::Utils.waiter {
70
+ !mach.instance_running?
71
+ }
72
+ ret
61
73
  end
62
74
 
63
75
 
@@ -9,7 +9,7 @@ tryout "Rudy::Machines API" do
9
9
  set :test_env, 'stage' #'env_' << Rudy::Utils.strand(4)
10
10
 
11
11
  setup do
12
- Rudy.enable_debug
12
+ #Rudy.enable_debug
13
13
  Rudy::Huxtable.global.offline = true
14
14
  Rudy::Huxtable.update_config # Read config files
15
15
  global = Rudy::Huxtable.global
@@ -2,14 +2,15 @@ group "Routines"
2
2
  library :rudy, 'lib'
3
3
 
4
4
  tryout "Keypair Handler" do
5
+ Rudy::Huxtable.update_config # Read config files
6
+
5
7
  set :user, Rudy::Utils.strand(4)
6
8
  set :keydir, '/tmp'
7
9
  set :global, Rudy::Huxtable.global
8
10
  set :config, Rudy::Huxtable.config
9
11
  set :test_env, 'env_' << Rudy::Utils.strand
10
12
  setup do
11
- Rudy.enable_debug
12
- Rudy::Huxtable.update_config # Read config files
13
+ #Rudy.enable_debug
13
14
  akey, skey, region = global.accesskey, global.secretkey, global.region
14
15
  Rudy::Metadata.connect akey, skey, region
15
16
  Rudy::AWS::EC2.connect akey, skey, region
@@ -29,12 +30,12 @@ tryout "Keypair Handler" do
29
30
  Rudy::Routines::Handlers::Keypair.pkey? '/path/2/' << user
30
31
  end
31
32
 
32
- dream "#{keydir}/key-us-east-1b-#{test_env}-app-#{user}"
33
+ dream "#{keydir}/key-#{Rudy::Huxtable.global.zone}-#{test_env}-app-#{user}"
33
34
  drill "determine keypair path (#{user})" do
34
- Rudy::Routines::Handlers::Keypair.pkey user
35
+ ret = Rudy::Routines::Handlers::Keypair.pkey user
35
36
  end
36
37
 
37
- dream "#{keydir}/key-us-east-1b-#{test_env}-app"
38
+ dream "#{keydir}/key-#{Rudy::Huxtable.global.zone}-#{test_env}-app"
38
39
  drill "determine root keypair path" do
39
40
  Rudy::Routines::Handlers::Keypair.pkey :root
40
41
  end
@@ -7,7 +7,7 @@ tryout "Group Handler" do
7
7
  set :config, Rudy::Huxtable.config
8
8
  set :test_env, 'env_' << Rudy::Utils.strand
9
9
  setup do
10
- Rudy.enable_debug
10
+ #Rudy.enable_debug
11
11
  Rudy::Huxtable.update_config # Read config files
12
12
  akey, skey, region = global.accesskey, global.secretkey, global.region
13
13
  Rudy::Metadata.connect akey, skey, region
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.9.1
4
+ version: 0.9.2
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.8.6
23
+ version: 0.8.9
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: attic
@@ -70,7 +70,7 @@ dependencies:
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 0.6.3
73
+ version: 0.7.0
74
74
  version:
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: gibbler
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ">="
132
132
  - !ruby/object:Gem::Version
133
- version: 0.3.8
133
+ version: 0.5.0
134
134
  version:
135
135
  description: "Rudy: Not your grandparents' EC2 deployment tool."
136
136
  email: delano@solutious.com
@@ -156,7 +156,10 @@ files:
156
156
  - bin/rudy-ec2
157
157
  - bin/rudy-s3
158
158
  - bin/rudy-sdb
159
+ - examples/authorize.rb
159
160
  - examples/gem-test.rb
161
+ - examples/solaris.rb
162
+ - examples/windows.rb
160
163
  - lib/rudy.rb
161
164
  - lib/rudy/aws.rb
162
165
  - lib/rudy/aws/ec2.rb
@@ -177,6 +180,7 @@ files:
177
180
  - lib/rudy/cli/aws/ec2/candy.rb
178
181
  - lib/rudy/cli/aws/ec2/groups.rb
179
182
  - lib/rudy/cli/aws/ec2/images.rb
183
+ - lib/rudy/cli/aws/ec2/info.rb
180
184
  - lib/rudy/cli/aws/ec2/instances.rb
181
185
  - lib/rudy/cli/aws/ec2/keypairs.rb
182
186
  - lib/rudy/cli/aws/ec2/snapshots.rb
@@ -193,11 +197,13 @@ files:
193
197
  - lib/rudy/cli/config.rb
194
198
  - lib/rudy/cli/disks.rb
195
199
  - lib/rudy/cli/execbase.rb
200
+ - lib/rudy/cli/images.rb
201
+ - lib/rudy/cli/info.rb
202
+ - lib/rudy/cli/keypairs.rb
196
203
  - lib/rudy/cli/machines.rb
197
204
  - lib/rudy/cli/metadata.rb
198
205
  - lib/rudy/cli/networks.rb
199
206
  - lib/rudy/cli/routines.rb
200
- - lib/rudy/cli/status.rb
201
207
  - lib/rudy/config.rb
202
208
  - lib/rudy/config/objects.rb
203
209
  - lib/rudy/disks.rb
@@ -222,6 +228,7 @@ files:
222
228
  - lib/rudy/routines/handlers/host.rb
223
229
  - lib/rudy/routines/handlers/keypair.rb
224
230
  - lib/rudy/routines/handlers/machines.rb
231
+ - lib/rudy/routines/handlers/rye.rb
225
232
  - lib/rudy/routines/handlers/script.rb
226
233
  - lib/rudy/routines/handlers/user.rb
227
234
  - lib/rudy/routines/passthrough.rb
@@ -277,7 +284,7 @@ files:
277
284
  - tryouts/exploration/machine.rb
278
285
  - tryouts/failer
279
286
  has_rdoc: true
280
- homepage: http://github.com/solutious/rudy
287
+ homepage: http://solutious.com/projects/rudy/
281
288
  licenses:
282
289
  post_install_message:
283
290
  rdoc_options:
@@ -1,60 +0,0 @@
1
-
2
-
3
- module Rudy
4
- module CLI
5
- class Status < Rudy::CLI::CommandBase
6
-
7
- def status
8
- process_region @@global.region
9
- oregions = Rudy::AWS::VALID_REGIONS - [@@global.region.to_sym]
10
- if @option.all
11
- oregions.each do |region|
12
- Rudy::AWS::EC2.connect @@global.accesskey, @@global.secretkey, region
13
- process_region region
14
- end
15
- else
16
- puts $/, "Other regions: " << oregions.join(', ')
17
- end
18
- end
19
-
20
-
21
- private
22
- def process_region(region)
23
- puts " Region: %s %30s".att(:reverse) % [region, '']
24
- puts " Instances".bright
25
- istatus = @option.all ? :any : :running
26
- (Rudy::AWS::EC2::Instances.list(istatus) || []).collect do |inst|
27
- puts " %s (%s): %s; %s; %s" % [inst.awsid, inst.state, inst.dns_public || '[no dns]', inst.size, inst.created]
28
- end
29
-
30
- puts " Volumes".bright
31
- (Rudy::AWS::EC2::Volumes.list || []).collect do |vol|
32
- puts " %s (%s): %sGB; %s" % [vol.awsid, vol.instid || vol.status, vol.size, vol.created]
33
- end
34
-
35
- puts " Snapshots".bright
36
- (Rudy::AWS::EC2::Snapshots.list || []).collect do |snap|
37
- puts " %s: %s; %s" % [snap.awsid, snap.volid, snap.created]
38
- end
39
-
40
- puts " Addresses".bright
41
- (Rudy::AWS::EC2::Addresses.list || []).collect do |o|
42
- puts " %s (%s)" % [o.ipaddress, o.instid || 'available']
43
- end
44
-
45
- puts " Groups".bright
46
- puts (Rudy::AWS::EC2::Groups.list || []).collect { |o| " #{o.name}" }
47
-
48
- puts " Keypairs".bright
49
- puts (Rudy::AWS::EC2::Keypairs.list || []).collect { |o| " #{o.name}" }
50
-
51
- puts " Images".bright
52
- (Rudy::AWS::EC2::Images.list('self') || []).collect do |o|
53
- puts " %s: %s; %s; %s" % [o.awsid, o.location, o.arch, o.visibility]
54
- end
55
- puts
56
- end
57
-
58
- end
59
- end
60
- end