ec2launcher 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.6.1
2
+
3
+ * Added option to force termination of an instance, even if the environment tag is missing.
4
+ * Added block device configuration option to set block read-ahead values when setting up an EBS volume.
5
+
1
6
  ## 1.6.0
2
7
 
3
8
  * Added option to set block device read-ahead value.
data/bin/ec2launcher CHANGED
@@ -28,7 +28,7 @@ if opt_parser.command == "init"
28
28
  puts "Successfully created #{opt_parser.location}"
29
29
  elsif opt_parser.command =~ /^term/
30
30
  terminator = EC2Launcher::Terminator.new(opt_parser.options.directory)
31
- terminator.terminate(opt_parser.hostname, opt_parser.options.access_key, opt_parser.options.secret_key, opt_parser.options.snapshot_removal)
31
+ terminator.terminate(opt_parser.hostname, opt_parser.options.access_key, opt_parser.options.secret_key, opt_parser.options.snapshot_removal, opt_parser.options.force)
32
32
  elsif opt_parser.command == "launch"
33
33
  launcher = EC2Launcher::Launcher.new
34
34
  launcher.launch(opt_parser.options)
@@ -154,6 +154,9 @@ EOH
154
154
  opts.on("--[no-]snapshot-removal", "Remove EBS snapshots. Defaults to TRUE.") do |removal|
155
155
  @options.snapshot_removal = removal
156
156
  end
157
+ opts.on("-f", "--[no-]force", "Force termination even if missing environment. Defaults to FALSE.") do |force|
158
+ @options.force = true
159
+ end
157
160
 
158
161
  opts.separator ""
159
162
  opts.separator "Miscellaneous:"
@@ -195,6 +198,7 @@ EOH
195
198
  @options.volume_size = nil
196
199
 
197
200
  @options.snapshot_removal = true
201
+ @options.force = false
198
202
 
199
203
  @options.verbosity = :normal
200
204
 
@@ -35,7 +35,8 @@ module EC2Launcher
35
35
  # @param[String] access_key Amazon IAM access key
36
36
  # @param[String] secret Amazon IAM secret key
37
37
  # @param[Boolean] snapshot_removal Remove EBS snapshots for EBS volumes attached to the instance.
38
- def terminate(server_name, access_key, secret, snapshot_removal = true)
38
+ # @param[Boolean] force Force instance termination even if environment is not found.
39
+ def terminate(server_name, access_key, secret, snapshot_removal = true, force = false)
39
40
  ##############################
40
41
  # Initialize AWS and create EC2 connection
41
42
  ##############################
@@ -59,24 +60,31 @@ module EC2Launcher
59
60
  if instance
60
61
  environment_name = nil
61
62
  AWS.memoize do
62
- environment_name = instance.tags["environment"].strip
63
+ environment_name = instance.tags["environment"].strip if instance.tags["environment"]
63
64
  end
64
65
 
65
66
  ##############################
66
67
  # ENVIRONMENT
67
68
  ##############################
68
- unless @environments.has_key? environment_name
69
+ if environment_name.nil? && ! force
70
+ @log.fatal "No environment tag found for host. Use the --force option to override and terminate."
71
+ exit 3
72
+ end
73
+
74
+ if (! @environments.has_key?(environment_name)) && (! force)
69
75
  @log.fatal "Environment not found: '#{environment_name}'"
70
76
  exit 2
71
77
  end
72
- @environment = @environments[environment_name]
78
+ @environment = @environments[environment_name] if environment_name
73
79
 
74
80
  ##############################
75
81
  # Create Route53 connection
76
82
  ##############################
77
83
  aws_route53 = nil
78
- aws_route53 = AWS::Route53.new if @environment.route53_zone_id
79
- route53 = EC2Launcher::Route53.new(aws_route53, @environment.route53_zone_id, @log)
84
+ if @environment && @environment.route53_zone_id
85
+ aws_route53 = AWS::Route53.new
86
+ route53 = EC2Launcher::Route53.new(aws_route53, @environment.route53_zone_id, @log)
87
+ end
80
88
 
81
89
  ##############################
82
90
  # EBS Volumes
@@ -2,5 +2,5 @@
2
2
  # Copyright (c) 2012 Sean Laurent
3
3
  #
4
4
  module EC2Launcher
5
- VERSION = "1.6.0"
5
+ VERSION = "1.6.1"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ec2launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
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-12-14 00:00:00.000000000 Z
12
+ date: 2013-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk