EndlessWaffleCLI 0.1.1 → 0.1.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/Gemfile.lock +56 -0
- data/exe/enum +1 -1
- data/exe/ewami +129 -0
- data/exe/ewssl +1 -1
- data/exe/ewsubnets +129 -0
- data/lib/EndlessWaffleCLI/version.rb +1 -1
- data/lib/EndlessWaffleCLI.rb +36 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69d070b9260f55b55cf94708b25a6feedf85f9ef
|
4
|
+
data.tar.gz: a5150c6c87dce4128761dc1b82e57eeb5a5a8fae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d3b01f71adb9be2788b8981dcfe0c007d4b92cb07e29583173dda308e316eb296232bd87b636d68357397e5fbc24adc2e7e273e5cf6db004c840aa86a58467b
|
7
|
+
data.tar.gz: 5a8181fadf1d9fb39e3e22539198a4010e54761137f5acd760eacc5fe11023be3123a7f6bc50d10a1308ae0c62ec3ce13855fcc56ea34bb1bbcb990c979d9102
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
EndlessWaffleCLI (0.1.1)
|
5
|
+
bundler (~> 1.12)
|
6
|
+
colorize (~> 0.8.1)
|
7
|
+
console_table (~> 0.2.4)
|
8
|
+
highline (~> 1.7, >= 1.7.8)
|
9
|
+
mime-types (~> 3.1)
|
10
|
+
net-ssh (~> 3.2)
|
11
|
+
net-ssh-gateway (~> 1.2)
|
12
|
+
net-ssh-multi (~> 1.2, >= 1.2.1)
|
13
|
+
rake (~> 10.0)
|
14
|
+
rest-client (~> 2.0)
|
15
|
+
unf (~> 0.1.4)
|
16
|
+
unf_ext (~> 0.0.7.2)
|
17
|
+
|
18
|
+
GEM
|
19
|
+
remote: https://rubygems.org/
|
20
|
+
specs:
|
21
|
+
colorize (0.8.1)
|
22
|
+
console_table (0.2.4)
|
23
|
+
ruby-terminfo (~> 0.1)
|
24
|
+
domain_name (0.5.20160615)
|
25
|
+
unf (>= 0.0.5, < 1.0.0)
|
26
|
+
highline (1.7.8)
|
27
|
+
http-cookie (1.0.2)
|
28
|
+
domain_name (~> 0.5)
|
29
|
+
mime-types (3.1)
|
30
|
+
mime-types-data (~> 3.2015)
|
31
|
+
mime-types-data (3.2016.0521)
|
32
|
+
net-ssh (3.2.0)
|
33
|
+
net-ssh-gateway (1.2.0)
|
34
|
+
net-ssh (>= 2.6.5)
|
35
|
+
net-ssh-multi (1.2.1)
|
36
|
+
net-ssh (>= 2.6.5)
|
37
|
+
net-ssh-gateway (>= 1.2.0)
|
38
|
+
netrc (0.11.0)
|
39
|
+
rake (10.5.0)
|
40
|
+
rest-client (2.0.0)
|
41
|
+
http-cookie (>= 1.0.2, < 2.0)
|
42
|
+
mime-types (>= 1.16, < 4.0)
|
43
|
+
netrc (~> 0.8)
|
44
|
+
ruby-terminfo (0.1.1)
|
45
|
+
unf (0.1.4)
|
46
|
+
unf_ext
|
47
|
+
unf_ext (0.0.7.2)
|
48
|
+
|
49
|
+
PLATFORMS
|
50
|
+
ruby
|
51
|
+
|
52
|
+
DEPENDENCIES
|
53
|
+
EndlessWaffleCLI!
|
54
|
+
|
55
|
+
BUNDLED WITH
|
56
|
+
1.12.5
|
data/exe/enum
CHANGED
@@ -99,7 +99,7 @@ end while 1
|
|
99
99
|
def showTable(result)
|
100
100
|
table_config = [
|
101
101
|
{:key=>:instanceId, :size=>13, :title=>"Instance Id"},
|
102
|
-
{:key=>:name, :size=>
|
102
|
+
{:key=>:name, :size=>13, :title=>"Name"},
|
103
103
|
{:key=>:role, :size=>8, :title=>"Role"},
|
104
104
|
{:key=>:environment, :size=>8, :title=>"Env"},
|
105
105
|
{:key=>:instanceType, :size=>10, :title=>"Type"},
|
data/exe/ewami
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "EndlessWaffleCLI"
|
5
|
+
require 'json'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'console_table'
|
8
|
+
|
9
|
+
query = {}
|
10
|
+
updateCache = false
|
11
|
+
showJSON = false
|
12
|
+
|
13
|
+
if ENV['EndlessWaffleURL'].nil?
|
14
|
+
puts "EndlessWaffleCLI requires the 'EndlessWaffleURL' environment variable to be set."
|
15
|
+
exit 1
|
16
|
+
else
|
17
|
+
EndlessWaffleCLI.setServer ENV['EndlessWaffleURL']
|
18
|
+
end
|
19
|
+
|
20
|
+
if ENV['EndlessWaffleToken'].nil?
|
21
|
+
puts "EndlessWaffleCLI requires the 'EndlessWaffleToken' environment variable to be set."
|
22
|
+
exit 1
|
23
|
+
else
|
24
|
+
EndlessWaffleCLI.setToken ENV['EndlessWaffleToken']
|
25
|
+
end
|
26
|
+
|
27
|
+
def showHelp
|
28
|
+
puts
|
29
|
+
puts "Endless Waffle AMI"
|
30
|
+
puts "Usage example: #{$0} -a us-east-1c"
|
31
|
+
puts
|
32
|
+
puts "Options:"
|
33
|
+
puts "-a or --availability_zone".ljust(30) +"-> Specifiy Availability Aone"
|
34
|
+
puts "-n or --name".ljust(30) +"-> Specifiy Name"
|
35
|
+
puts "-i or --instance_type".ljust(30) +"-> Specify instance type"
|
36
|
+
puts "-b or --version".ljust(30) +"-> Specify version"
|
37
|
+
puts "-r or --release".ljust(30) +"-> Specify release"
|
38
|
+
puts "-q or --ami_id".ljust(30) +"-> Specify amiid"
|
39
|
+
puts "-j or --json".ljust(30) +"-> Raw JSON output"
|
40
|
+
puts "-c or --cache ".ljust(30) +"-> Update local Cache database with current AWS data"
|
41
|
+
puts "-h or --help".ljust(30) +"-> Show this help message."
|
42
|
+
puts
|
43
|
+
end
|
44
|
+
|
45
|
+
parser = GetoptLong.new
|
46
|
+
parser.set_options(["-a", "--availability_zone", GetoptLong::NO_ARGUMENT],
|
47
|
+
["-n", "--name", GetoptLong::NO_ARGUMENT],
|
48
|
+
["-i", "--instance_type", GetoptLong::NO_ARGUMENT],
|
49
|
+
["-v", "--version", GetoptLong::NO_ARGUMENT],
|
50
|
+
["-r", "--release", GetoptLong::NO_ARGUMENT],
|
51
|
+
["-q", "--ami_id", GetoptLong::NO_ARGUMENT],
|
52
|
+
["-j", "--json", GetoptLong::NO_ARGUMENT],
|
53
|
+
["-c", "--cache", GetoptLong::NO_ARGUMENT],
|
54
|
+
["-h", "--help", GetoptLong::NO_ARGUMENT]
|
55
|
+
)
|
56
|
+
|
57
|
+
begin
|
58
|
+
begin
|
59
|
+
opt,arg = parser.get_option
|
60
|
+
break if not opt
|
61
|
+
case opt
|
62
|
+
when "-h" || "--help"
|
63
|
+
showHelp
|
64
|
+
exit
|
65
|
+
when "-a" || "--availability_zone"
|
66
|
+
query.store(:availability_zone, ARGV[0])
|
67
|
+
when "-n" || "--name"
|
68
|
+
query.store(:name, ARGV[0])
|
69
|
+
when "-i" || "--instance_type"
|
70
|
+
query.store(:instance_type, ARGV[0])
|
71
|
+
when "-v" || "--version"
|
72
|
+
query.store(:version, ARGV[0])
|
73
|
+
when "-q" || "--ami_id"
|
74
|
+
query.store(:ami_id, ARGV[0])
|
75
|
+
when "-j" || "--json"
|
76
|
+
showJSON = true
|
77
|
+
when "-c" || "--cache"
|
78
|
+
updateCache = true
|
79
|
+
end
|
80
|
+
rescue => err
|
81
|
+
puts "#{err.class()}: #{err.message}"
|
82
|
+
exit 1
|
83
|
+
end
|
84
|
+
end while 1
|
85
|
+
|
86
|
+
def showTable(result)
|
87
|
+
table_config = [
|
88
|
+
{:key=>:name, :size=>9, :title=>"Name"},
|
89
|
+
{:key=>:version, :size=>10, :title=>"Version"},
|
90
|
+
{:key=>:release, :size=>10, :title=>"Release"},
|
91
|
+
{:key=>:availability_zone, :size=>17, :title=>"Zone"},
|
92
|
+
{:key=>:arch, :size=>7, :title=>"Arch"},
|
93
|
+
{:key=>:instance_type, :size=>18, :title=>"Instance Type"},
|
94
|
+
{:key=>:ami_id, :size=>10, :title=>"AMI"},
|
95
|
+
{:key=>:aki_id, :size=>10, :title=>"AKI"}
|
96
|
+
|
97
|
+
]
|
98
|
+
ConsoleTable.define(table_config) do |table|
|
99
|
+
result.each do |r|
|
100
|
+
table << [
|
101
|
+
r["name"],
|
102
|
+
r["version"],
|
103
|
+
r["release"],
|
104
|
+
r["availability_zone"],
|
105
|
+
r["arch"],
|
106
|
+
r["instance_type"],
|
107
|
+
r["ami_id"],
|
108
|
+
r["aki_id"]
|
109
|
+
]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def showJSON(result)
|
115
|
+
puts JSON.pretty_generate(result)
|
116
|
+
end
|
117
|
+
|
118
|
+
if updateCache == true
|
119
|
+
puts "Running Cache Update:"
|
120
|
+
puts EndlessWaffleCLI.updateAmi
|
121
|
+
end
|
122
|
+
|
123
|
+
result = EndlessWaffleCLI.queryAmi query
|
124
|
+
|
125
|
+
if showJSON == false
|
126
|
+
showTable result
|
127
|
+
else
|
128
|
+
showJSON result
|
129
|
+
end
|
data/exe/ewssl
CHANGED
@@ -174,7 +174,7 @@ def storeCertificateChain
|
|
174
174
|
end
|
175
175
|
|
176
176
|
def genDataBag
|
177
|
-
@my_databag_path = "#{@my_path}/#{@fqdn.gsub('*','star')}
|
177
|
+
@my_databag_path = "#{@my_path}/#{@fqdn.gsub('*','star')}-#{@timestamp}.json"
|
178
178
|
databag = {}
|
179
179
|
databag.store(:id, "ssl")
|
180
180
|
databag.store(:key, @key.to_pem)
|
data/exe/ewsubnets
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "EndlessWaffleCLI"
|
5
|
+
require 'json'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'console_table'
|
8
|
+
require 'colorize'
|
9
|
+
|
10
|
+
query = {}
|
11
|
+
updateCache = false
|
12
|
+
showJSON = false
|
13
|
+
|
14
|
+
if ENV['EndlessWaffleURL'].nil?
|
15
|
+
puts "EndlessWaffleCLI requires the 'EndlessWaffleURL' environment variable to be set."
|
16
|
+
exit 1
|
17
|
+
else
|
18
|
+
EndlessWaffleCLI.setServer ENV['EndlessWaffleURL']
|
19
|
+
end
|
20
|
+
|
21
|
+
if ENV['EndlessWaffleToken'].nil?
|
22
|
+
puts "EndlessWaffleCLI requires the 'EndlessWaffleToken' environment variable to be set."
|
23
|
+
exit 1
|
24
|
+
else
|
25
|
+
EndlessWaffleCLI.setToken ENV['EndlessWaffleToken']
|
26
|
+
end
|
27
|
+
|
28
|
+
def colorizeState(state)
|
29
|
+
if state > 0
|
30
|
+
state.to_s.colorize(:green)
|
31
|
+
else
|
32
|
+
state.to_s.colorize(:red)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def showHelp
|
37
|
+
puts
|
38
|
+
puts "Endless Waffle Subnets"
|
39
|
+
puts "Usage example: #{$0} -a us-east-1c"
|
40
|
+
puts
|
41
|
+
puts "Options:"
|
42
|
+
puts "-m or --monochrome".ljust(30) +"-> Show results in monochrome"
|
43
|
+
puts "-a or --availability_zone".ljust(30) +"-> Specifiy Availability Aone"
|
44
|
+
puts "-v or --vpc_id".ljust(30) +"-> Specifiy vpc_id"
|
45
|
+
puts "-s or --subnet_id".ljust(30) +"-> Specify subnet_id"
|
46
|
+
puts "-j or --json".ljust(30) +"-> Raw JSON output"
|
47
|
+
puts "-c or --cache ".ljust(30) +"-> Update local Cache database with current AWS data"
|
48
|
+
puts "-h or --help".ljust(30) +"-> Show this help message."
|
49
|
+
puts
|
50
|
+
end
|
51
|
+
|
52
|
+
parser = GetoptLong.new
|
53
|
+
parser.set_options(["-m", "--monochrome", GetoptLong::NO_ARGUMENT],
|
54
|
+
["-a", "--availability_zone", GetoptLong::NO_ARGUMENT],
|
55
|
+
["-v", "--vpc_id", GetoptLong::NO_ARGUMENT],
|
56
|
+
["-s", "--subnet_id", GetoptLong::NO_ARGUMENT],
|
57
|
+
["-j", "--json", GetoptLong::NO_ARGUMENT],
|
58
|
+
["-c", "--cache", GetoptLong::NO_ARGUMENT],
|
59
|
+
["-h", "--help", GetoptLong::NO_ARGUMENT]
|
60
|
+
)
|
61
|
+
|
62
|
+
begin
|
63
|
+
begin
|
64
|
+
opt,arg = parser.get_option
|
65
|
+
break if not opt
|
66
|
+
case opt
|
67
|
+
when "-h" || "--help"
|
68
|
+
showHelp
|
69
|
+
exit
|
70
|
+
when "-m" || "--monochrome"
|
71
|
+
String.disable_colorization = true
|
72
|
+
when "-a" || "--availability_zone"
|
73
|
+
query.store(:availability_zone, ARGV[0])
|
74
|
+
when "-v" || "--vpc_id"
|
75
|
+
query.store(:vpc_id, ARGV[0])
|
76
|
+
when "-s" || "--subnet_id"
|
77
|
+
query.store(:subnet_id, ARGV[0])
|
78
|
+
when "-j" || "--json"
|
79
|
+
showJSON = true
|
80
|
+
when "-c" || "--cache"
|
81
|
+
updateCache = true
|
82
|
+
end
|
83
|
+
rescue => err
|
84
|
+
puts "#{err.class()}: #{err.message}"
|
85
|
+
exit 1
|
86
|
+
end
|
87
|
+
end while 1
|
88
|
+
|
89
|
+
def showTable(result)
|
90
|
+
table_config = [
|
91
|
+
{:key=>:subnet_id, :size=>16, :title=>"Subnet Id"},
|
92
|
+
{:key=>:state, :size=>10, :title=>"State"},
|
93
|
+
{:key=>:vpc_id, :size=>14, :title=>"VPC"},
|
94
|
+
{:key=>:availability_zone, :size=>12, :title=>"Zone"},
|
95
|
+
{:key=>:cidr_block, :size=>16, :title=>"CIDR"},
|
96
|
+
{:key=>:map_public_ip_on_launch, :size=>7, :title=>"Public"},
|
97
|
+
{:key=>:available_ip_address_count, :size=>15, :title=>"Unallocated ips"}
|
98
|
+
]
|
99
|
+
ConsoleTable.define(table_config) do |table|
|
100
|
+
result.each do |r|
|
101
|
+
table << [
|
102
|
+
r["subnet_id"].colorize(:yellow),
|
103
|
+
r["state"],
|
104
|
+
r["vpc_id"],
|
105
|
+
r["availability_zone"],
|
106
|
+
r["cidr_block"],
|
107
|
+
r["map_public_ip_on_launch"],
|
108
|
+
colorizeState(r["available_ip_address_count"])
|
109
|
+
]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def showJSON(result)
|
115
|
+
puts JSON.pretty_generate(result)
|
116
|
+
end
|
117
|
+
|
118
|
+
if updateCache == true
|
119
|
+
puts "Running Cache Update:"
|
120
|
+
puts EndlessWaffleCLI.updateSubnets
|
121
|
+
end
|
122
|
+
|
123
|
+
result = EndlessWaffleCLI.querySubnets query
|
124
|
+
|
125
|
+
if showJSON == false
|
126
|
+
showTable result
|
127
|
+
else
|
128
|
+
showJSON result
|
129
|
+
end
|
data/lib/EndlessWaffleCLI.rb
CHANGED
@@ -49,4 +49,40 @@ module EndlessWaffleCLI
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
+
def self.updateSubnets
|
53
|
+
begin
|
54
|
+
result = RestClient.get "#{@@server}/subnets/update", :accept => :json, :Authorization => "Token token=\"#{@@token}\""
|
55
|
+
JSON.parse(result.body)
|
56
|
+
rescue => e
|
57
|
+
raise e
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.querySubnets(query={})
|
62
|
+
begin
|
63
|
+
result = RestClient.post "#{@@server}/subnets/show", { :query => query }.to_json, :content_type => :json, :accept => :json, :Authorization => "Token token=\"#{@@token}\""
|
64
|
+
JSON.parse(result.body)
|
65
|
+
rescue => e
|
66
|
+
raise e
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.updateAmi
|
71
|
+
begin
|
72
|
+
result = RestClient.get "#{@@server}/ami/update", :accept => :json, :Authorization => "Token token=\"#{@@token}\""
|
73
|
+
JSON.parse(result.body)
|
74
|
+
rescue => e
|
75
|
+
raise e
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def self.queryAmi(query={})
|
80
|
+
begin
|
81
|
+
result = RestClient.post "#{@@server}/ami/show", { :query => query }.to_json, :content_type => :json, :accept => :json, :Authorization => "Token token=\"#{@@token}\""
|
82
|
+
JSON.parse(result.body)
|
83
|
+
rescue => e
|
84
|
+
raise e
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
52
88
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: EndlessWaffleCLI
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dr. Ogg
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -196,8 +196,10 @@ email:
|
|
196
196
|
executables:
|
197
197
|
- enum
|
198
198
|
- enum-ssh
|
199
|
+
- ewami
|
199
200
|
- ewssh
|
200
201
|
- ewssl
|
202
|
+
- ewsubnets
|
201
203
|
- ewtoken
|
202
204
|
extensions: []
|
203
205
|
extra_rdoc_files: []
|
@@ -205,6 +207,7 @@ files:
|
|
205
207
|
- ".gitignore"
|
206
208
|
- EndlessWaffleCLI.gemspec
|
207
209
|
- Gemfile
|
210
|
+
- Gemfile.lock
|
208
211
|
- README.md
|
209
212
|
- Rakefile
|
210
213
|
- bin/console
|
@@ -220,8 +223,10 @@ files:
|
|
220
223
|
- build/lib/build/version.rb
|
221
224
|
- exe/enum
|
222
225
|
- exe/enum-ssh
|
226
|
+
- exe/ewami
|
223
227
|
- exe/ewssh
|
224
228
|
- exe/ewssl
|
229
|
+
- exe/ewsubnets
|
225
230
|
- exe/ewtoken
|
226
231
|
- lib/EndlessWaffleCLI.rb
|
227
232
|
- lib/EndlessWaffleCLI/version.rb
|