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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df630c1c06a03d41d2153b9b51eaa55dc2edd9cd
4
- data.tar.gz: 95c6de991d5d603246078b76a179163812c65493
3
+ metadata.gz: 69d070b9260f55b55cf94708b25a6feedf85f9ef
4
+ data.tar.gz: a5150c6c87dce4128761dc1b82e57eeb5a5a8fae
5
5
  SHA512:
6
- metadata.gz: 67d4bca71069d9f972592c3a60a6980a0d5934f2a38d6bf6d28e952fff258d7337e8eb4ff3dd29933dc69ec80424eccb01cc14d5a0255a50a64d603c35610d1d
7
- data.tar.gz: 05ddb7e7a43eeba421f68d1014d5dddd6cfd86aee20ac9310c8e2dfa26144cadd717b8e3238f3356be1324b5c76dfb0f97bf6cb6f90fcf7ae083298accf9d48d
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=>9, :title=>"Name"},
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')}-chain-#{@timestamp}.json"
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
@@ -1,3 +1,3 @@
1
1
  module EndlessWaffleCLI
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -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.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-04 00:00:00.000000000 Z
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