awful 0.0.14 → 0.0.15
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.
- checksums.yaml +4 -4
- data/bin/ami +7 -0
- data/lib/awful/ami.rb +77 -0
- data/lib/awful/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f08603e28f31d8ffcca5784bd8a3322f34b9518c
|
4
|
+
data.tar.gz: 8fadd7303be34019c6c362391086877fe27fbea3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab2b585419b4153e55d4d953e49c43c8e7dabaae357ebea1e16d72e1e0e6b020f53132963925ed286f0ee326b381ffa1325fb00d4e089f40eace9e08ed6b1fbf
|
7
|
+
data.tar.gz: 452c315e6b9a805cec044fdcf538af00389ccbb0364836001222ddb82aecd2d11c897d70812c9ca1f7ac91c28351fedf2183605a9997b4eae42b94332edbaf84
|
data/bin/ami
ADDED
data/lib/awful/ami.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
module Awful
|
2
|
+
|
3
|
+
class Ami < Cli
|
4
|
+
class_option :owners, aliases: '-o', default: 'self', desc: 'List images with this owner'
|
5
|
+
|
6
|
+
no_commands do
|
7
|
+
def images(options)
|
8
|
+
ec2.describe_images(owners: options[:owners].split(',')).map(&:images).flatten
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'ls [PATTERN]', 'list AMIs'
|
13
|
+
method_option :long, aliases: '-l', default: false, desc: 'Long listing'
|
14
|
+
def ls(name = /./)
|
15
|
+
fields = options[:long] ?
|
16
|
+
->(i) { [ i.name, i.image_id, i.root_device_type, i.state, i.creation_date, i.tags.map{ |t| "#{t.key}=#{t.value}" }.sort.join(',') ] } :
|
17
|
+
->(i) { [ i.image_id ] }
|
18
|
+
|
19
|
+
images(options).select do |image|
|
20
|
+
image.name.match(name)
|
21
|
+
end.map do |image|
|
22
|
+
fields.call(image)
|
23
|
+
end.tap do |list|
|
24
|
+
print_table list.sort
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
desc 'delete NAME', 'delete AMI'
|
29
|
+
def delete(id)
|
30
|
+
images(options).find do |image|
|
31
|
+
image.image_id.match(id)
|
32
|
+
end.tap do |ami|
|
33
|
+
if yes? "Really deregister image #{ami.name} (#{ami.image_id})?", :yellow
|
34
|
+
ec2.deregister_image(image_id: ami.image_id)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
desc 'tags ID [KEY=VALUE]', 'tag an image, or print tags'
|
40
|
+
def tags(id, tag = nil)
|
41
|
+
ami = images(options).find do |image|
|
42
|
+
image.image_id.match(id)
|
43
|
+
end
|
44
|
+
if tag
|
45
|
+
key, value = tag.split('=')
|
46
|
+
ec2.create_tags(resources: [ami.image_id], tags: [{key: key, value: value}])
|
47
|
+
else
|
48
|
+
puts ami.tags.map { |t| "#{t[:key]}=#{t[:value]}" }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# desc 'copy ID REGION', 'copy image from given REGION to current region'
|
53
|
+
# def copy(id, region)
|
54
|
+
# current_region = ENV['AWS_REGION']
|
55
|
+
# ENV['AWS_REGION'] = region
|
56
|
+
# images(options).find do |image|
|
57
|
+
# image.image_id.match(id)
|
58
|
+
# end.tap do |ami|
|
59
|
+
# ENV['AWS_REGION'] = current_region
|
60
|
+
# ec2.copy_image(source_image_id: ami.image_id, source_region: region, name: ami.name, description: ami.description)
|
61
|
+
# end
|
62
|
+
# end
|
63
|
+
|
64
|
+
desc 'last NAME', 'get last AMI matching NAME'
|
65
|
+
def last(name, n = 1)
|
66
|
+
images(options).select do |image|
|
67
|
+
image.name.match(name)
|
68
|
+
end.sort_by { |i| i.creation_date }.last(n.to_i).map do |image|
|
69
|
+
image.image_id
|
70
|
+
end.tap do |list|
|
71
|
+
puts list
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
data/lib/awful/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awful
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ric Lister
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05
|
11
|
+
date: 2015-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -84,6 +84,7 @@ description: AWS cmdline and yaml loader.
|
|
84
84
|
email:
|
85
85
|
- rlister+gh@gmail.com
|
86
86
|
executables:
|
87
|
+
- ami
|
87
88
|
- asg
|
88
89
|
- ec2
|
89
90
|
- elb
|
@@ -102,6 +103,7 @@ files:
|
|
102
103
|
- README.md
|
103
104
|
- Rakefile
|
104
105
|
- awful.gemspec
|
106
|
+
- bin/ami
|
105
107
|
- bin/asg
|
106
108
|
- bin/ec2
|
107
109
|
- bin/elb
|
@@ -112,6 +114,7 @@ files:
|
|
112
114
|
- bin/subnet
|
113
115
|
- bin/vpc
|
114
116
|
- lib/awful.rb
|
117
|
+
- lib/awful/ami.rb
|
115
118
|
- lib/awful/auto_scaling.rb
|
116
119
|
- lib/awful/ec2.rb
|
117
120
|
- lib/awful/elb.rb
|