stemcell 0.2.0 → 0.2.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.
- data/bin/necrosis +61 -0
- data/lib/stemcell/version.rb +1 -1
- data/lib/stemcell.rb +9 -0
- metadata +3 -1
data/bin/necrosis
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# -*- mode: shell -*-
|
4
|
+
|
5
|
+
require_relative '../lib/stemcell'
|
6
|
+
|
7
|
+
require 'trollop'
|
8
|
+
|
9
|
+
options = Trollop::options do
|
10
|
+
version "stemcell #{Stemcell::VERSION} (c) 2013 Martin Rhoads"
|
11
|
+
banner <<END_OF_BANNER
|
12
|
+
welcome to stemcell
|
13
|
+
END_OF_BANNER
|
14
|
+
|
15
|
+
opt('aws_access_key',
|
16
|
+
"aws access key",
|
17
|
+
:type => String,
|
18
|
+
:default => ENV['AWS_ACCESS_KEY']
|
19
|
+
)
|
20
|
+
|
21
|
+
opt('aws_secret_key',
|
22
|
+
"aws secret key",
|
23
|
+
:type => String,
|
24
|
+
:default => ENV['AWS_SECRET_KEY']
|
25
|
+
)
|
26
|
+
|
27
|
+
opt('region',
|
28
|
+
'ec2 region to launch in',
|
29
|
+
:type => String,
|
30
|
+
:default => ENV['REGION'] ? ENV['REGION'] : 'us-east-1',
|
31
|
+
)
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
required_parameters = [
|
37
|
+
'aws_access_key',
|
38
|
+
'aws_secret_key',
|
39
|
+
]
|
40
|
+
|
41
|
+
|
42
|
+
required_parameters.each do |arg|
|
43
|
+
raise ArgumentError, "--#{arg.gsub('_','-')} needs to be specified on the commandline or set \
|
44
|
+
by the #{arg.upcase.gsub('-','_')} environment variable" if
|
45
|
+
options[arg].nil? or ! options[arg]
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
raise ArgumentError, "you did not provide any instance ids to kill" if ARGV.size == 0
|
50
|
+
|
51
|
+
|
52
|
+
# create stemcell object
|
53
|
+
stemcell = Stemcell::Stemcell.new({
|
54
|
+
'aws_access_key' => options['aws_access_key'],
|
55
|
+
'aws_secret_key' => options['aws_secret_key'],
|
56
|
+
'region' => options['region'],
|
57
|
+
})
|
58
|
+
|
59
|
+
|
60
|
+
# launch instance(s)
|
61
|
+
stemcell.kill(ARGV)
|
data/lib/stemcell/version.rb
CHANGED
data/lib/stemcell.rb
CHANGED
@@ -86,6 +86,15 @@ module Stemcell
|
|
86
86
|
return instances
|
87
87
|
end
|
88
88
|
|
89
|
+
def kill(instance_list=[])
|
90
|
+
@log.info "killing instances #{instance_list}"
|
91
|
+
instances = instance_list.map {|id| @ec2.instances[id]}
|
92
|
+
instances.each do |instance|
|
93
|
+
instance.terminate
|
94
|
+
@log.info "killed instance #{instance.id}"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
89
98
|
private
|
90
99
|
|
91
100
|
def print_run_info(instances)
|
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.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -47,6 +47,7 @@ description: stemcell launches instances
|
|
47
47
|
email:
|
48
48
|
- martin.rhoads@airbnb.com
|
49
49
|
executables:
|
50
|
+
- necrosis
|
50
51
|
- stemcell
|
51
52
|
extensions: []
|
52
53
|
extra_rdoc_files: []
|
@@ -56,6 +57,7 @@ files:
|
|
56
57
|
- LICENSE.txt
|
57
58
|
- README.md
|
58
59
|
- Rakefile
|
60
|
+
- bin/necrosis
|
59
61
|
- bin/stemcell
|
60
62
|
- examples/stemcellrc
|
61
63
|
- lib/stemcell.rb
|