ec2-list 0.2.2 → 0.3.0
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/ec2list/cli.rb +1 -1
- data/lib/ec2list/version.rb +1 -1
- data/lib/ec2list.rb +56 -25
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5fd967d53d4b91259043495c085b0d364943163
|
4
|
+
data.tar.gz: 586e5a1d8bb9dfdaf5f789d92289eb2d5ba2dcaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67de679649c0b8eb170353bd014a9b35a52e63246ffd9928dfac9b6bc3bd95bcb473a3c026aca4c705ce24c15f616ed64386a09fa73f4c1b2931bf37bbbc0d7f
|
7
|
+
data.tar.gz: 37fa58cdf9c7423799f2f44e02c5892be6b2daecf8d8919cbc5cde8093f10e1ab45ca3fee133dcec58c59c3ef0ce4297576218e630fc33e70aad167b60f0b0a1
|
data/lib/ec2list/cli.rb
CHANGED
data/lib/ec2list/version.rb
CHANGED
data/lib/ec2list.rb
CHANGED
@@ -18,27 +18,19 @@ module Ec2list
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def result
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
instances.map { |instance|
|
22
|
+
display_columns.zip(display_columns.map { |col| instance.send(col) }).to_h
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def display_columns
|
27
|
+
%i(id type tag status fqdn ip_addr since)
|
26
28
|
end
|
27
29
|
|
28
30
|
def instance_list
|
29
|
-
instances.
|
30
|
-
{
|
31
|
-
id: instance.instance_id,
|
32
|
-
type: instance.instance_type,
|
33
|
-
status: instance.state.name,
|
34
|
-
since: since_about(Time.now - instance.launch_time),
|
35
|
-
tag: instance.tags.find { |tag| tag.key == 'Name' }.value.gsub(' ', '_'),
|
36
|
-
fqdn: instance.public_dns_name,
|
37
|
-
ip_addr: instance.public_ip_address
|
38
|
-
}
|
39
|
-
}.sort_by { |x| x[:tag] }
|
31
|
+
instances.sort_by(&:tag)
|
40
32
|
end
|
41
|
-
|
33
|
+
|
42
34
|
def values(keys)
|
43
35
|
result.map { |x| keys.map { |k| x[k] }.join (' ') }.compact.sort
|
44
36
|
end
|
@@ -46,9 +38,17 @@ module Ec2list
|
|
46
38
|
def reservations
|
47
39
|
ec2.describe_instances(filters: [filter]).reservations
|
48
40
|
end
|
49
|
-
|
41
|
+
|
50
42
|
def instances
|
51
|
-
|
43
|
+
if @tag
|
44
|
+
all_instances.select { |instance| instance.cont?(@tag) }
|
45
|
+
else
|
46
|
+
all_instances
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def all_instances
|
51
|
+
reservations.map { |x| x.instances }.flatten.map { |ec2| Instance.new ec2 }
|
52
52
|
end
|
53
53
|
|
54
54
|
def filter
|
@@ -61,16 +61,47 @@ module Ec2list
|
|
61
61
|
{}
|
62
62
|
end
|
63
63
|
end
|
64
|
+
end
|
65
|
+
|
66
|
+
class Instance
|
67
|
+
attr_accessor :id, :type, :status, :since, :tags, :fqdn, :ip_addr
|
68
|
+
|
69
|
+
def initialize(ec2)
|
70
|
+
@id = ec2.instance_id
|
71
|
+
@type = ec2.instance_type
|
72
|
+
@status = ec2.state.name
|
73
|
+
@since = since_about(Time.now - ec2.launch_time)
|
74
|
+
@tags = ec2.tags || []
|
75
|
+
@fqdn = ec2.public_dns_name
|
76
|
+
@ip_addr = ec2.public_ip_address
|
77
|
+
end
|
78
|
+
|
79
|
+
def name
|
80
|
+
name_tag = tags.find { |tag| tag.key == 'Name' }
|
81
|
+
if name_tag
|
82
|
+
name_tag.value.gsub(' ', '_')
|
83
|
+
else
|
84
|
+
nil
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def tag
|
89
|
+
name
|
90
|
+
end
|
91
|
+
|
92
|
+
def cont?(tag)
|
93
|
+
name && name.include?(tag)
|
94
|
+
end
|
64
95
|
|
65
96
|
private
|
66
97
|
|
67
|
-
def since_about(
|
68
|
-
if
|
69
|
-
"#{
|
70
|
-
elsif
|
71
|
-
"#{
|
98
|
+
def since_about(since)
|
99
|
+
if since > 86400
|
100
|
+
"#{since.quo(86400).to_i}d"
|
101
|
+
elsif since > 3600
|
102
|
+
"#{since.quo(3600).to_i}h"
|
72
103
|
else
|
73
|
-
"#{
|
104
|
+
"#{since.quo(60).to_i}m"
|
74
105
|
end
|
75
106
|
end
|
76
107
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ec2-list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jun Yokoyama
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -118,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|
120
120
|
rubyforge_project:
|
121
|
-
rubygems_version: 2.
|
121
|
+
rubygems_version: 2.5.1
|
122
122
|
signing_key:
|
123
123
|
specification_version: 4
|
124
124
|
summary: display list of ec2 instances.
|