ec2-blackout 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,7 @@ command "on" do |c|
22
22
 
23
23
  c.option '-r', '--regions STRING', 'Comma separated list of regions to search. Defaults to all regions'
24
24
  c.option '-x', '--exclude-by-tag STRING', 'Exclude instances with the specified tag.'
25
+ c.option '-d', '--dry-run', 'Find instances without stopping them'
25
26
 
26
27
  c.action do |args, options|
27
28
  options.default :regions => DEFAULT_REGIONS
@@ -36,6 +37,7 @@ command "off" do |c|
36
37
 
37
38
  c.option '-r', '--regions STRING', 'Comma separated list of regions to search. Defaults to all regions'
38
39
  c.option '-f', '--force', 'Force start up regardless of who shut them dowm'
40
+ c.option '-d', '--dry-run', 'Find instances without starting them'
39
41
 
40
42
  c.action do |args, options|
41
43
  options.default :regions => DEFAULT_REGIONS
@@ -12,8 +12,10 @@ class Ec2::Blackout::Shutdown
12
12
  @aws.regions[region].instances.each do |instance|
13
13
  if stoppable? instance
14
14
  @ui.say "-> Stopping instance: #{instance.id}, name: #{instance.tags['Name']}"
15
- instance.add_tag('ec2::blackout::on', Date.now.utc)
16
- #instance.stop
15
+ unless dry_run?
16
+ instance.add_tag('ec2:blackout:on', Date.now.utc)
17
+ instance.stop
18
+ end
17
19
  elsif instance.status == :running
18
20
  @ui.say "-> Skipping instance: #{instance.id}, name: #{instance.tags['Name']}, region: #{region}"
19
21
  end
@@ -37,4 +39,8 @@ class Ec2::Blackout::Shutdown
37
39
  def exclude_tag
38
40
  @options[:exclude_by_tag]
39
41
  end
42
+
43
+ def dry_run?
44
+ @options[:dry_run]
45
+ end
40
46
  end
@@ -12,8 +12,10 @@ class Ec2::Blackout::Startup
12
12
  @aws.regions[region].instances.each do |instance|
13
13
  if startable? instance
14
14
  @ui.say "-> Starting instance: #{instance.id}, name: #{instance.tags['Name']}"
15
- instance.tags.delete('ec2::blackout::on')
16
- instance.start
15
+ unless dry_run?
16
+ instance.tags.delete('ec2:blackout:on')
17
+ instance.start
18
+ end
17
19
  elsif instance.status == :stopped
18
20
  @ui.say "-> Skipping instance: #{instance.id}, name: #{instance.tags['Name'] || 'N/A'}"
19
21
  end
@@ -30,8 +32,11 @@ class Ec2::Blackout::Startup
30
32
  end
31
33
 
32
34
  def startable? instance
33
- (instance.status == :stopped && instance.tags['ec2::blackout::on']) ||
35
+ (instance.status == :stopped && instance.tags['ec2:blackout:on']) ||
34
36
  (instance.status == :stopped && @options[:force])
35
37
  end
36
38
 
39
+ def dry_run?
40
+ @options[:dry_run]
41
+ end
37
42
  end
@@ -1,6 +1,6 @@
1
1
  module Ec2
2
2
  module Blackout
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
 
5
5
  def self.name
6
6
  'ec2-blackout'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ec2-blackout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-16 00:00:00.000000000 Z
12
+ date: 2012-10-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: commander