awsutils 2.0.1 → 2.0.2
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/lib/awsutils/ec2info.rb +51 -99
- data/lib/awsutils/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85c4d31eee5853d0a2671122c63f9545534a9e91
|
4
|
+
data.tar.gz: 3f1f387a73456e368d762743ca7ba6c6a9548a9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d58121f23d06c6e3f149e4e3694336f3c34317087e3aba2f6793d037e93592f72086b26c95144f43ac17b6bcb606541dc244d8d08d53f66112547caf4040f8bc
|
7
|
+
data.tar.gz: 0a47336c477fe8b97faf165c7d5f06fb1d50a0bce6045a5acbb9895f4f1588b6938822d4536ee317acee1e37344b2c97f35eb72e183d9b4fd55d26f431dc78c9
|
data/lib/awsutils/ec2info.rb
CHANGED
@@ -1,10 +1,27 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'fog/aws'
|
3
|
+
require 'awesome_print'
|
3
4
|
|
4
5
|
class String
|
6
|
+
def underscore
|
7
|
+
gsub(/::/, '/')
|
8
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
9
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
10
|
+
.tr('-', '_')
|
11
|
+
.downcase
|
12
|
+
end
|
13
|
+
|
5
14
|
def title_case
|
6
|
-
|
7
|
-
|
15
|
+
underscore.split('_').map do |word|
|
16
|
+
# Recognize certain special cases (e.g. acronyms)
|
17
|
+
if %w(iam ebs id dns vpc).include? word.downcase
|
18
|
+
word.upcase
|
19
|
+
elsif word.casecmp('ids').zero?
|
20
|
+
'IDs'
|
21
|
+
else
|
22
|
+
word.capitalize
|
23
|
+
end
|
24
|
+
end.join(' ')
|
8
25
|
end
|
9
26
|
end
|
10
27
|
|
@@ -31,14 +48,14 @@ module AwsUtils
|
|
31
48
|
@ec2 ||= Fog::Compute.new(provider: 'AWS')
|
32
49
|
end
|
33
50
|
|
34
|
-
def
|
51
|
+
def instances
|
35
52
|
@instance_ids ||= begin
|
36
53
|
if $DEBUG
|
37
54
|
puts 'Entering instance_ids'
|
38
55
|
puts "Search Term: #{search_terms.inspect}"
|
39
56
|
end
|
40
57
|
|
41
|
-
|
58
|
+
instance_ids = search_terms.each_with_object([]) do |search_term, m|
|
42
59
|
if (/^i-/ =~ search_term) && !(/\./ =~ search_term)
|
43
60
|
m << search_term
|
44
61
|
else
|
@@ -51,14 +68,14 @@ module AwsUtils
|
|
51
68
|
end
|
52
69
|
end
|
53
70
|
|
54
|
-
if
|
71
|
+
if instance_ids.empty?
|
55
72
|
puts 'No instances by that Name/ID in this account'
|
56
73
|
exit 1
|
57
74
|
end
|
58
75
|
|
59
76
|
puts "Found instances: #{results.inspect}" if $DEBUG
|
60
77
|
|
61
|
-
|
78
|
+
ec2.servers.all 'instance-id' => instance_ids
|
62
79
|
end
|
63
80
|
end
|
64
81
|
|
@@ -133,12 +150,28 @@ module AwsUtils
|
|
133
150
|
end
|
134
151
|
end
|
135
152
|
|
136
|
-
def
|
137
|
-
|
138
|
-
|
153
|
+
def printkv(key, value)
|
154
|
+
key_color = "\033[30;1m" # Style: Bold; Color: Default
|
155
|
+
reset_color = "\033[0m"
|
139
156
|
|
140
|
-
|
157
|
+
print "#{key_color}#{key.to_s.title_case}:#{reset_color} "
|
158
|
+
case
|
159
|
+
when value.respond_to?(:to_sym)
|
160
|
+
puts value
|
161
|
+
when value.respond_to?(:key?)
|
162
|
+
puts
|
163
|
+
value.each { |k, v| printkv " #{k}", v }
|
164
|
+
when (
|
165
|
+
value.respond_to?(:join) &&
|
166
|
+
value.reject { |item| item.respond_to?(:to_sym) }.empty? # If value only contains strings, do this
|
167
|
+
)
|
168
|
+
value.join(', ')
|
169
|
+
else
|
170
|
+
puts value.inspect
|
171
|
+
end
|
172
|
+
end
|
141
173
|
|
174
|
+
def describe_instance
|
142
175
|
col_green = "\033[32;1m" # Style: Bold; Color: Green
|
143
176
|
col_red = "\033[31;1m" # Style: Bold; Color: Red
|
144
177
|
# col_blinking_red = "\033[31;5m"
|
@@ -146,22 +179,14 @@ module AwsUtils
|
|
146
179
|
key_color = "\033[30;1m" # Style: Bold; Color: Default
|
147
180
|
reset_color = "\033[0m"
|
148
181
|
|
149
|
-
|
150
|
-
instance = ec2.servers.get instance_id
|
151
|
-
|
182
|
+
instances.each do |instance|
|
152
183
|
puts "#{key_color}NAME:#{reset_color} #{instance.tags['Name']}"
|
153
184
|
puts
|
154
185
|
|
155
|
-
|
186
|
+
instance.attributes.each do |instance_attribute, _value|
|
156
187
|
puts "Instance attribute: #{instance_attribute}" if $DEBUG
|
157
188
|
|
158
189
|
case instance_attribute
|
159
|
-
when :id
|
160
|
-
puts "#{key_color}ID:#{reset_color} #{instance.id}"
|
161
|
-
when :ami_launch_index
|
162
|
-
puts "#{key_color}AMI Launch Index:#{reset_color} #{instance.ami_launch_index}"
|
163
|
-
when :availability_zone
|
164
|
-
puts "#{key_color}Availability Zone:#{reset_color} #{instance.availability_zone}"
|
165
190
|
when :block_device_mapping
|
166
191
|
puts "#{key_color}Block Devices:#{reset_color} "
|
167
192
|
|
@@ -230,8 +255,6 @@ module AwsUtils
|
|
230
255
|
elsif $DEBUG
|
231
256
|
puts "#{key_color}Client Token:#{reset_color} N/A"
|
232
257
|
end
|
233
|
-
when :dns_name
|
234
|
-
puts "#{key_color}DNS Name:#{reset_color} #{instance.dns_name}"
|
235
258
|
when :groups
|
236
259
|
instance.groups.each do |group_id|
|
237
260
|
group = ec2.security_groups.get(group_id)
|
@@ -279,36 +302,12 @@ module AwsUtils
|
|
279
302
|
puts "\t\t#{key_color}#{image_tag}: #{image_tag_value}"
|
280
303
|
end
|
281
304
|
end
|
282
|
-
when :kernel_id
|
283
|
-
puts "#{key_color}Kernel ID:#{reset_color} #{instance.kernel_id}"
|
284
|
-
when :key_name
|
285
|
-
puts "#{key_color}SSH Key:#{reset_color} #{instance.key_name}"
|
286
|
-
when :created_at
|
287
|
-
puts "#{key_color}Created Date:#{reset_color} #{instance.created_at}"
|
288
|
-
when :monitoring
|
289
|
-
puts "#{key_color}Monitoring:#{reset_color} #{instance.monitoring}"
|
290
|
-
when :placement_group
|
291
|
-
if instance.placement_group
|
292
|
-
puts "#{key_color}Placement Group:#{reset_color} #{instance.placement_group}"
|
293
|
-
elsif $DEBUG
|
294
|
-
puts "#{key_color}Placement Group:#{reset_color} N/A"
|
295
|
-
end
|
296
|
-
when :platform
|
297
|
-
if instance.platform
|
298
|
-
puts "#{key_color}Platform:#{reset_color} #{instance.platform}"
|
299
|
-
elsif $DEBUG
|
300
|
-
puts "#{key_color}Platform:#{reset_color} N/A"
|
301
|
-
end
|
302
305
|
when :product_codes
|
303
306
|
if instance.product_codes.any?
|
304
307
|
puts "#{key_color}Product Codes:#{reset_color} #{instance.product_codes.join(',')}"
|
305
308
|
elsif $DEBUG
|
306
309
|
puts "#{key_color}Product Codes:#{reset_color} N/A"
|
307
310
|
end
|
308
|
-
when :private_dns_name
|
309
|
-
puts "#{key_color}Private DNS Name:#{reset_color} #{instance.private_dns_name}"
|
310
|
-
when :private_ip_address
|
311
|
-
puts "#{key_color}Private IP Address:#{reset_color} #{instance.private_ip_address}"
|
312
311
|
when :public_ip_address
|
313
312
|
if ec2.addresses.get(instance.public_ip_address)
|
314
313
|
puts "#{key_color}Public IP Address:#{reset_color} " \
|
@@ -317,36 +316,6 @@ module AwsUtils
|
|
317
316
|
puts "#{key_color}Public IP Address:#{reset_color} " \
|
318
317
|
"#{instance.public_ip_address} (#{col_red}DYNAMIC#{reset_color})"
|
319
318
|
end
|
320
|
-
when :ramdisk_id
|
321
|
-
if instance.ramdisk_id
|
322
|
-
puts "#{key_color}Ramdisk ID:#{reset_color} #{instance.ramdisk_id}"
|
323
|
-
elsif $DEBUG
|
324
|
-
puts "#{key_color}Ramdisk ID:#{reset_color} N/A"
|
325
|
-
end
|
326
|
-
when :reason
|
327
|
-
if instance.reason
|
328
|
-
puts "#{key_color}State Reason:#{reset_color} #{instance.reason}"
|
329
|
-
elsif $DEBUG
|
330
|
-
puts "#{key_color}State Reason:#{reset_color} N/A"
|
331
|
-
end
|
332
|
-
when :root_device_name
|
333
|
-
if instance.root_device_name
|
334
|
-
puts "#{key_color}Root Device Name:#{reset_color} #{instance.root_device_name}"
|
335
|
-
elsif $DEBUG
|
336
|
-
puts "#{key_color}Root Device Name:#{reset_color} N/A"
|
337
|
-
end
|
338
|
-
when :root_device_type
|
339
|
-
if instance.root_device_type
|
340
|
-
puts "#{key_color}Root Device Type:#{reset_color} #{instance.root_device_type}"
|
341
|
-
elsif $DEBUG
|
342
|
-
puts "#{key_color}Root Device Name:#{reset_color} N/A"
|
343
|
-
end
|
344
|
-
when :security_group_ids
|
345
|
-
if instance.security_group_ids
|
346
|
-
puts "#{key_color}Security Group IDs:#{reset_color} #{instance.security_group_ids}"
|
347
|
-
elsif $DEBUG
|
348
|
-
puts "#{key_color}Security Group IDs:#{reset_color} N/A"
|
349
|
-
end
|
350
319
|
when :state
|
351
320
|
state_color = get_state_color(instance.state)
|
352
321
|
puts "#{key_color}State:#{reset_color} #{state_color}#{instance.state}#{reset_color}"
|
@@ -356,14 +325,6 @@ module AwsUtils
|
|
356
325
|
elsif $DEBUG
|
357
326
|
puts "#{key_color}State Reason Code:#{reset_color} N/A"
|
358
327
|
end
|
359
|
-
when :subnet_id
|
360
|
-
if instance.subnet_id
|
361
|
-
puts "#{key_color}Subnet ID:#{reset_color} #{instance.subnet_id}"
|
362
|
-
elsif $DEBUG
|
363
|
-
puts "#{key_color}Subnet ID:#{reset_color} N/A"
|
364
|
-
end
|
365
|
-
when :tenancy
|
366
|
-
puts "#{key_color}Tenancy:#{reset_color} #{instance.tenancy}"
|
367
328
|
when :tags
|
368
329
|
if instance.tags.any?
|
369
330
|
puts "#{key_color}Tags:#{reset_color} "
|
@@ -374,21 +335,12 @@ module AwsUtils
|
|
374
335
|
else
|
375
336
|
puts "#{key_color}Tags:#{reset_color} None"
|
376
337
|
end
|
377
|
-
when :user_data
|
378
|
-
if instance.user_data
|
379
|
-
puts "#{key_color}User Data:#{reset_color} #{instance.user_data}"
|
380
|
-
elsif $DEBUG
|
381
|
-
puts "#{key_color}User Data:#{reset_color} N/A"
|
382
|
-
end
|
383
|
-
when :vpc_id
|
384
|
-
if instance.vpc_id
|
385
|
-
puts "#{key_color}VPC ID:#{reset_color} #{instance.vpc_id}"
|
386
|
-
elsif $DEBUG
|
387
|
-
puts "#{key_color}VPC ID: #{reset_color} N/A"
|
388
|
-
end
|
389
338
|
else
|
390
|
-
|
391
|
-
|
339
|
+
if instance.respond_to?(instance_attribute) && !instance.send(instance_attribute).nil?
|
340
|
+
printkv instance_attribute, instance.send(instance_attribute)
|
341
|
+
else
|
342
|
+
printkv instance_attribute, '<NULL>'
|
343
|
+
end
|
392
344
|
end
|
393
345
|
end
|
394
346
|
|
@@ -399,7 +351,7 @@ module AwsUtils
|
|
399
351
|
puts "#{key_color}Shutdown Behavior:#{reset_color} Do nothing"
|
400
352
|
end
|
401
353
|
|
402
|
-
if
|
354
|
+
if instance.id != instances.last.id
|
403
355
|
puts '------------------------------------------------------------------------------------'
|
404
356
|
end
|
405
357
|
end
|
data/lib/awsutils/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awsutils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Herot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|