diplomatic_bag 2.2.1 → 2.2.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/bin/consul-cli +114 -0
- data/lib/diplomat/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 313e9bcc3a63667959e8cf0782357d2dc0a20e98879d20743f90cc470fab7fcb
|
|
4
|
+
data.tar.gz: ea7b73ede3b6d3b08e350b90fa2bf86415273ec25f744762c0ca8c1d6a23390a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 746d01ce05942b34c25d60e6997e980b763764ebb3807692c212e36c104987d98297666f863bc899055ae172717c06777c3408ab3307d586a4614505eb2cead5
|
|
7
|
+
data.tar.gz: 24d806c41db58b9b764881723d14dcafd0b46f066b6359cd53ff2b80f6f48cceec48a14d733e0bb9ff068954283275f04afa16c70c985599b98f900fbcd6f79c
|
data/bin/consul-cli
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# rubocop:disable all
|
|
3
|
+
|
|
4
|
+
require 'diplomatic_bag'
|
|
5
|
+
require 'optparse'
|
|
6
|
+
|
|
7
|
+
def syntax
|
|
8
|
+
printf "USAGE: #{$PROGRAM_NAME} [[action]] [[options]]\n\n" \
|
|
9
|
+
"\t#{$PROGRAM_NAME} services list [options]\n" \
|
|
10
|
+
"\t#{$PROGRAM_NAME} service status <service-name> [options]\n" \
|
|
11
|
+
"\t#{$PROGRAM_NAME} info [options]\n" \
|
|
12
|
+
"\t#{$PROGRAM_NAME} nodes list-duplicate-id [options]\n\n" \
|
|
13
|
+
"Options:\n" \
|
|
14
|
+
"\t-a, --http-addr\t\tThe `address` and port of the Consul HTTP agent\n" \
|
|
15
|
+
"\t-d, --datacenter\tName of the datacenter to query\n" \
|
|
16
|
+
"\t-f, --format\t\tOutput format (json|text)\n" \
|
|
17
|
+
"\t-t, --token\t\tACL token to use in the request\n"
|
|
18
|
+
exit 0
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def launch_query(arguments, options)
|
|
22
|
+
case arguments[0]
|
|
23
|
+
when 'services'
|
|
24
|
+
if arguments[1] == 'list'
|
|
25
|
+
DiplomaticBag.get_all_services_status(options)
|
|
26
|
+
else
|
|
27
|
+
syntax
|
|
28
|
+
exit 0
|
|
29
|
+
end
|
|
30
|
+
when 'service'
|
|
31
|
+
if arguments[1] == 'status'
|
|
32
|
+
DiplomaticBag.get_services_info(arguments[2], options)
|
|
33
|
+
else
|
|
34
|
+
syntax
|
|
35
|
+
exit 0
|
|
36
|
+
end
|
|
37
|
+
when 'info'
|
|
38
|
+
DiplomaticBag.consul_info(options)
|
|
39
|
+
when 'nodes'
|
|
40
|
+
if arguments[1] == 'list-duplicate-id'
|
|
41
|
+
DiplomaticBag.get_duplicate_node_id(options)
|
|
42
|
+
else
|
|
43
|
+
syntax
|
|
44
|
+
exit 0
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
syntax
|
|
48
|
+
exit 0
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def parse_as_text(input, indent)
|
|
53
|
+
case input
|
|
54
|
+
when Array
|
|
55
|
+
input.each do |v|
|
|
56
|
+
parse_as_text(v, indent)
|
|
57
|
+
end
|
|
58
|
+
when Hash
|
|
59
|
+
input.each do |k, v|
|
|
60
|
+
print "#{indent}#{k}:\n"
|
|
61
|
+
parse_as_text(v, indent+' ')
|
|
62
|
+
end
|
|
63
|
+
else
|
|
64
|
+
print "#{indent}#{input}\n"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
options = {http_addr: ENV['CONSUL_HTTP_ADDR'] || 'localhost:8500'}
|
|
69
|
+
params = {}
|
|
70
|
+
output = {}
|
|
71
|
+
|
|
72
|
+
OptionParser.new do |opts|
|
|
73
|
+
opts.banner = "USAGE: #{$PROGRAM_NAME} -a [[action]] [[options]]"
|
|
74
|
+
|
|
75
|
+
opts.on('-h', '--help', 'Show help') do
|
|
76
|
+
syntax
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
opts.on("-a", "--http-addr [CONSUL_URL]", "The `address` and port of the Consul HTTP agent") do |server|
|
|
80
|
+
options[:http_addr] = server
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
opts.on("-d", "--datacenter [DATACENTER]", "Name of the datacenter to query (services option)") do |dc|
|
|
84
|
+
params[:dcs] = dc
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
opts.on("-f", "--format TYPE", [:json, :txt], "Output format") do |format|
|
|
88
|
+
params[:format] = format
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
opts.on("-t", "--token [TOKEN]", "ACL token to use in the request") do |token|
|
|
92
|
+
options[:token] = token
|
|
93
|
+
end
|
|
94
|
+
end.parse!
|
|
95
|
+
|
|
96
|
+
options[:http_addr] = "http://#{options[:http_addr]}" unless options[:http_addr].start_with? 'http'
|
|
97
|
+
|
|
98
|
+
if params[:dcs]
|
|
99
|
+
dcs = DiplomaticBag.get_datacenters_list(params[:dcs].split(','), options)
|
|
100
|
+
dcs.each do |dc|
|
|
101
|
+
options[:dc] = dc
|
|
102
|
+
output[dc] = launch_query(ARGV, options)
|
|
103
|
+
end
|
|
104
|
+
else
|
|
105
|
+
output = launch_query(ARGV, options)
|
|
106
|
+
end
|
|
107
|
+
case params[:format]
|
|
108
|
+
when :json
|
|
109
|
+
puts JSON.pretty_generate(output) unless output == {}
|
|
110
|
+
else
|
|
111
|
+
parse_as_text(output, '') unless output == {}
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# rubocop:enable all
|
data/lib/diplomat/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: diplomatic_bag
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.2.
|
|
4
|
+
version: 2.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nicolas Benoit
|
|
@@ -14,16 +14,16 @@ dependencies:
|
|
|
14
14
|
name: diplomat
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
20
|
-
type: :
|
|
19
|
+
version: 2.2.2
|
|
20
|
+
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- -
|
|
24
|
+
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 2.2.2
|
|
27
27
|
description: Toolbox for Consul
|
|
28
28
|
email:
|
|
29
29
|
- n.benoit@criteo.com
|
|
@@ -33,6 +33,7 @@ extra_rdoc_files: []
|
|
|
33
33
|
files:
|
|
34
34
|
- LICENSE
|
|
35
35
|
- README.md
|
|
36
|
+
- bin/consul-cli
|
|
36
37
|
- features/configuration.feature
|
|
37
38
|
- features/step_definitions/setup_diplomat.rb
|
|
38
39
|
- features/step_definitions/test_key_value.rb
|