stemcell 0.12.0 → 0.13.1

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.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stemcell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Rhoads
@@ -11,22 +11,50 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-07-16 00:00:00.000000000 Z
14
+ date: 2022-01-05 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: aws-sdk-v1
17
+ name: aws-eventstream
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: '1.63'
22
+ version: 1.1.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '1.63'
29
+ version: 1.1.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: aws-sdk-ec2
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '1'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1'
44
+ - !ruby/object:Gem::Dependency
45
+ name: aws-sigv4
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: 1.2.4
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: 1.2.4
30
58
  - !ruby/object:Gem::Dependency
31
59
  name: net-ssh
32
60
  requirement: !ruby/object:Gem::Requirement
@@ -157,7 +185,6 @@ description: A tool for launching and bootstrapping EC2 instances
157
185
  email:
158
186
  - igor.serebryany@airbnb.com
159
187
  executables:
160
- - necrosis
161
188
  - stemcell
162
189
  extensions: []
163
190
  extra_rdoc_files: []
@@ -169,7 +196,6 @@ files:
169
196
  - LICENSE.txt
170
197
  - README.md
171
198
  - Rakefile
172
- - bin/necrosis
173
199
  - bin/stemcell
174
200
  - examples/stemcell.json
175
201
  - examples/stemcellrc
@@ -207,6 +233,7 @@ files:
207
233
  - spec/fixtures/chef_repo/roles/unit-simple-override.rb
208
234
  - spec/fixtures/chef_repo/stemcell-azs-missing.json
209
235
  - spec/fixtures/chef_repo/stemcell-backing-store-empty.json
236
+ - spec/fixtures/chef_repo/stemcell-backing-store-legacy.json
210
237
  - spec/fixtures/chef_repo/stemcell-backing-store-missing.json
211
238
  - spec/fixtures/chef_repo/stemcell-cookbook-attribute.json
212
239
  - spec/fixtures/chef_repo/stemcell-defaults-missing.json
@@ -240,8 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
267
  - !ruby/object:Gem::Version
241
268
  version: '0'
242
269
  requirements: []
243
- rubyforge_project:
244
- rubygems_version: 2.5.2
270
+ rubygems_version: 3.0.3
245
271
  signing_key:
246
272
  specification_version: 4
247
273
  summary: no summary
@@ -268,6 +294,7 @@ test_files:
268
294
  - spec/fixtures/chef_repo/roles/unit-simple-override.rb
269
295
  - spec/fixtures/chef_repo/stemcell-azs-missing.json
270
296
  - spec/fixtures/chef_repo/stemcell-backing-store-empty.json
297
+ - spec/fixtures/chef_repo/stemcell-backing-store-legacy.json
271
298
  - spec/fixtures/chef_repo/stemcell-backing-store-missing.json
272
299
  - spec/fixtures/chef_repo/stemcell-cookbook-attribute.json
273
300
  - spec/fixtures/chef_repo/stemcell-defaults-missing.json
data/bin/necrosis DELETED
@@ -1,114 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # -*- mode: shell -*-
4
-
5
- require 'aws-sdk-v1'
6
- require 'trollop'
7
-
8
- options = Trollop::options do
9
- version "Necrosis 0.1.0 (c) Airbnb, Inc."
10
- banner "Necrosis: the killing script"
11
-
12
- opt('aws_access_key',
13
- "aws access key",
14
- :type => String,
15
- :default => ENV['AWS_ACCESS_KEY']
16
- )
17
-
18
- opt('aws_secret_key',
19
- "aws secret key",
20
- :type => String,
21
- :default => ENV['AWS_SECRET_KEY']
22
- )
23
-
24
- opt('aws_regions',
25
- "comma-separated list of aws regions to search",
26
- :type => String,
27
- :default => ENV['AWS_REGIONS'],
28
- :short => :r
29
- )
30
-
31
- opt :non_interactive, 'Do not ask confirmation', :short => :f
32
- end
33
-
34
- NON_INTERACTIVE = options[:non_interactive]
35
-
36
- required_parameters = %w(aws_access_key aws_secret_key)
37
-
38
- required_parameters.each do |arg|
39
- raise ArgumentError, "--#{arg.gsub('_','-')} needs to be specified on the commandline or set \
40
- by the #{arg.upcase.gsub('-','_')} environment variable" if
41
- options[arg].nil? or ! options[arg]
42
- end
43
-
44
- raise ArgumentError, "you did not provide any instance ids to kill" if ARGV.empty?
45
-
46
- # a hash from instance_id => [ec2 instance objects]
47
- instances = ARGV.inject({}) { |h, n| h[n] = []; h }
48
-
49
- # convert comma-separated list to Array
50
- regions = (options['aws_regions'] || '').split(',')
51
-
52
- def authorized? instance
53
- return true if NON_INTERACTIVE
54
-
55
- puts 'Terminate? (y/N)'
56
- confirm = $stdin.gets
57
- confirmed = confirm && confirm.chomp.downcase == 'y'
58
-
59
- if confirmed
60
- age = Time.now - instance.launch_time
61
- days = age / (24*3600)
62
- if days > 2
63
- puts "Instance is #{days} days old. REALLY terminate? (y/N)"
64
- confirm = $stdin.gets
65
- confirmed = confirm && confirm.chomp.downcase == 'y'
66
- end
67
- end
68
-
69
- return confirmed
70
- end
71
-
72
- def delete_instance id, instance, region
73
- if instance.api_termination_disabled?
74
- puts "Cannot terminate instance #{id} -- termination protection enabled"
75
- return
76
- end
77
-
78
- puts "Instance #{id} (#{instance.status} in #{region.name})"
79
- puts "\tKey name: #{instance.key_name}"
80
- puts "\tLaunched: #{instance.launch_time}"
81
- instance.tags.to_h.each do |k, v|
82
- puts "\t#{k} : #{v}"
83
- end
84
-
85
- if authorized? instance
86
- instance.terminate
87
- puts "Instance #{id} terminated"
88
- end
89
- end
90
-
91
- AWS.memoize do
92
- ec2 = AWS::EC2.new(:access_key_id => options['aws_access_key'], :secret_access_key => options['aws_secret_key'])
93
- ec2.regions.each do |region|
94
- next unless regions.empty? || regions.include?(region.name)
95
- instances.each do |id, objects|
96
- instance = region.instances[id]
97
- objects << [instance, region] if instance.exists?
98
- end
99
- end
100
-
101
- instances.each do |id, objects|
102
- case objects.count
103
- when 0
104
- STDERR.puts "No instance #{id} found"
105
- next
106
- when 1
107
- instance, region = objects.first
108
- delete_instance id, instance, region
109
- else
110
- puts "Found multiple instances named #{id}"
111
- next
112
- end
113
- end
114
- end