ec2launcher 1.3.7 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.3.8
2
+
3
+ * Make terminator code more threadsafe.
4
+
1
5
  ## 1.3.7
2
6
 
3
7
  * Added exponential back off to termination process.
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
31
- terminator.terminate(opt_parser.hostname, opt_parser.options)
31
+ terminator.terminate(opt_parser.hostname, opt_parser.options.access_key, opt_parser.options.secret_key)
32
32
  elsif opt_parser.command == "launch"
33
33
  launcher = EC2Launcher::Launcher.new
34
34
  launcher.launch(opt_parser.options)
@@ -19,9 +19,7 @@ module EC2Launcher
19
19
  log_output = Outputter.stdout
20
20
  log_output.formatter = PatternFormatter.new :pattern => "%m"
21
21
  @log.outputters = log_output
22
- end
23
22
 
24
- def terminate(server_name, options)
25
23
  ##############################
26
24
  # Load configuration data
27
25
  ##############################
@@ -38,25 +36,32 @@ module EC2Launcher
38
36
  exit 2
39
37
  end
40
38
  @environment = @environments[options.environ]
41
-
39
+ end
40
+
41
+ # Terminates a given server instance.
42
+ #
43
+ # @param[String] server_name Name of the server instance
44
+ # @param[String] access_key Amazon IAM access key
45
+ # @param[String] secret Amazon IAM secret key
46
+ def terminate(server_name, access_key, secret)
42
47
  ##############################
43
48
  # Initialize AWS and create EC2 connection
44
49
  ##############################
45
- initialize_aws(options.access_key, options.secret)
46
- @ec2 = AWS::EC2.new
50
+ initialize_aws(access_key, secret)
51
+ ec2 = AWS::EC2.new
47
52
 
48
53
  ##############################
49
54
  # Create Route53 connection
50
55
  ##############################
51
56
  aws_route53 = AWS::Route53.new if @environment.route53_zone_id
52
- @route53 = EC2Launcher::Route53.new(aws_route53, @environment.route53_zone_id, @log)
57
+ route53 = EC2Launcher::Route53.new(aws_route53, @environment.route53_zone_id, @log)
53
58
 
54
59
  ##############################
55
60
  # Find instance
56
61
  ##############################
57
62
  instance = nil
58
63
  AWS.memoize do
59
- instances = @ec2.instances.filter("tag:Name", server_name)
64
+ instances = ec2.instances.filter("tag:Name", server_name)
60
65
  instances.each do |i|
61
66
  unless i.status == :shutting_down || i.status == :terminated
62
67
  instance = i
@@ -72,9 +77,9 @@ module EC2Launcher
72
77
  instance.terminate
73
78
  end
74
79
 
75
- if @route53
80
+ if route53
76
81
  @log.info("Deleting A record from Route53: #{server_name} => #{private_ip_address}")
77
- @route53.delete_record_by_name(server_name, 'A')
82
+ route53.delete_record_by_name(server_name, 'A')
78
83
  end
79
84
 
80
85
  @log.info("Deleting node/client from Chef: #{server_name}")
@@ -2,5 +2,5 @@
2
2
  # Copyright (c) 2012 Sean Laurent
3
3
  #
4
4
  module EC2Launcher
5
- VERSION = "1.3.7"
5
+ VERSION = "1.3.8"
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.3.7
4
+ version: 1.3.8
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-15 00:00:00.000000000 Z
12
+ date: 2012-10-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk
@@ -111,4 +111,3 @@ signing_key:
111
111
  specification_version: 3
112
112
  summary: Tool to launch EC2 instances.
113
113
  test_files: []
114
- has_rdoc: