enfcli 3.8.6.pre.alpha → 3.9.0.pre.alpha
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 +3 -3
- data/lib/enfapi.rb +8 -1
- data/lib/enfcli/commands/xiam.rb +71 -71
- data/lib/enfcli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5a105c81c7f42c28b274f00d6bf3899db3eb4d339bbd9fb013b46b2efbc189e
|
4
|
+
data.tar.gz: 7e3c5c91683c9f414d1b35da725fee523ab9c5497c1f00aa7645cc0609114b6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a6746f422f5f694ca03934c834fc524f51d355b45645e0c01a13b3fa4ef1ccbc5861b5743225d9d0f4c86689956df23ca91f4235daf39c9f3e5843d319b1b79
|
7
|
+
data.tar.gz: f602019955f342a70e5890b1a461eb89233a63986e558b0740680411d6cf84cd26f692c981e45ecd7e5ea815607f9b12e978881ef1d778a1d8fa40cc20ecd0b3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
enfcli (3.
|
4
|
+
enfcli (3.9.0.pre.alpha)
|
5
5
|
rest-client (~> 2.0)
|
6
6
|
terminal-table
|
7
7
|
thor (~> 0.20.0)
|
@@ -24,9 +24,9 @@ GEM
|
|
24
24
|
http-accept (1.7.0)
|
25
25
|
http-cookie (1.0.3)
|
26
26
|
domain_name (~> 0.5)
|
27
|
-
mime-types (3.
|
27
|
+
mime-types (3.3)
|
28
28
|
mime-types-data (~> 3.2015)
|
29
|
-
mime-types-data (3.2019.
|
29
|
+
mime-types-data (3.2019.0904)
|
30
30
|
netrc (0.11.0)
|
31
31
|
public_suffix (3.0.3)
|
32
32
|
rake (10.5.0)
|
data/lib/enfapi.rb
CHANGED
@@ -167,10 +167,17 @@ module EnfApi
|
|
167
167
|
end
|
168
168
|
|
169
169
|
## NO_TEST
|
170
|
-
def
|
170
|
+
def get_group(gid)
|
171
171
|
EnfApi::API.instance.get "/api/xiam/v1/groups/#{gid}"
|
172
172
|
end
|
173
173
|
|
174
|
+
## NO_TEST
|
175
|
+
def list_groups(network = nil)
|
176
|
+
url = "/api/xiam/v1/groups"
|
177
|
+
url = "#{url}?network=#{network}" if network
|
178
|
+
EnfApi::API.instance.get url
|
179
|
+
end
|
180
|
+
|
174
181
|
## NO_TEST
|
175
182
|
def provision_endpoint(new_endpoint)
|
176
183
|
json = EnfApi::to_json(new_endpoint)
|
data/lib/enfcli/commands/xiam.rb
CHANGED
@@ -32,14 +32,14 @@ module EnfCli
|
|
32
32
|
# Write to file
|
33
33
|
if write_to_file keyfile, data
|
34
34
|
say "Created #{keyfile}", :green
|
35
|
-
end
|
35
|
+
end
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
def write_to_file filename, data
|
39
39
|
begin
|
40
40
|
# check if file exists
|
41
|
-
filename = EnfCli::expand_path(filename)
|
42
|
-
if File.exists?( filename )
|
41
|
+
filename = EnfCli::expand_path(filename)
|
42
|
+
if File.exists?( filename )
|
43
43
|
proceed = ask("Overwrite #{filename}(type 'yes' to continue...)?")
|
44
44
|
return nil unless (proceed.downcase == 'yes')
|
45
45
|
end
|
@@ -76,6 +76,18 @@ module EnfCli
|
|
76
76
|
gpk_info
|
77
77
|
end
|
78
78
|
|
79
|
+
def scan_gid()
|
80
|
+
qr_code_info = scan_group_qr_code()
|
81
|
+
|
82
|
+
# Extract gpk and basename
|
83
|
+
gpk_info = qr_code_info.split(",")
|
84
|
+
basename = gpk_info[0]
|
85
|
+
gpk = gpk_info[1]
|
86
|
+
|
87
|
+
# Calculate gid
|
88
|
+
calculate_gid basename, gpk
|
89
|
+
end
|
90
|
+
|
79
91
|
def read_ec_key_file(keyfile)
|
80
92
|
# expand path
|
81
93
|
keyfile = EnfCli::expand_path(keyfile)
|
@@ -157,52 +169,72 @@ module EnfCli
|
|
157
169
|
end
|
158
170
|
}
|
159
171
|
|
160
|
-
|
161
|
-
|
162
|
-
try_with_rescue_in_session do
|
163
|
-
qr_code_info = scan_group_qr_code()
|
172
|
+
option_gid = [:gid, {default: nil, type: :string, banner: 'GID',
|
173
|
+
desc: 'The group to get. If not specified, scan the group QR code'}]
|
164
174
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
175
|
+
desc "get-group", "Get DAA Group Information"
|
176
|
+
method_option *option_gid
|
177
|
+
def get_group
|
178
|
+
try_with_rescue_in_session do
|
179
|
+
# scan if gid not in options
|
180
|
+
if options[:gid]
|
181
|
+
gid = options[:gid]
|
182
|
+
else
|
183
|
+
gid = scan_gid
|
184
|
+
end
|
172
185
|
|
173
186
|
# url safe encode gid
|
174
187
|
enc_gid = Base64.urlsafe_encode64([gid].pack("H*"))
|
175
188
|
|
176
|
-
data = EnfApi::Iam.instance.
|
189
|
+
data = EnfApi::Iam.instance.get_group enc_gid
|
177
190
|
groups = [data]
|
178
|
-
|
191
|
+
|
179
192
|
# display data
|
180
193
|
display_groups groups
|
181
194
|
end
|
182
195
|
end
|
183
196
|
|
197
|
+
desc "list-groups", "List DAA Groups Information"
|
198
|
+
method_option :'network', default: nil, type: :string, banner: 'NETWORK',
|
199
|
+
desc: 'List only groups in this network'
|
200
|
+
def list_groups
|
201
|
+
try_with_rescue_in_session do
|
202
|
+
# The xiam API doesn't properly support the 'network' query
|
203
|
+
# parameter for listing groups. Until that is fixed, use the
|
204
|
+
# /network/N/groups resource instead.
|
205
|
+
#
|
206
|
+
# See https://github.com/xaptum/xiam/issues/54
|
207
|
+
#
|
208
|
+
if options[:network]
|
209
|
+
# validate network
|
210
|
+
network = EnfCli::IPV6Cidr.new options[:network]
|
211
|
+
|
212
|
+
# call the api
|
213
|
+
data = EnfApi::Iam.instance.list_network_groups network.to_s
|
214
|
+
else
|
215
|
+
# call the api
|
216
|
+
data = EnfApi::Iam.instance.list_groups
|
217
|
+
end
|
218
|
+
|
219
|
+
groups = data[:body]
|
220
|
+
display_groups groups
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
184
224
|
desc "set-group-default-network", "Set /64 network as default for the DAA group"
|
185
225
|
method_option :'network', :type => :string, :required => true
|
186
|
-
method_option
|
226
|
+
method_option *option_gid
|
187
227
|
def set_group_default_network
|
188
228
|
try_with_rescue_in_session do
|
189
229
|
network = EnfCli::IPV6Cidr.new options[:network]
|
190
230
|
|
191
231
|
# scan if gid not in options
|
192
|
-
if options[:gid]
|
232
|
+
if options[:gid]
|
193
233
|
gid = options[:gid]
|
194
234
|
else
|
195
|
-
|
196
|
-
|
197
|
-
# Extract gpk and basename
|
198
|
-
gpk_info = qr_code_info.split(",")
|
199
|
-
basename = gpk_info[0]
|
200
|
-
gpk = gpk_info[1]
|
201
|
-
|
202
|
-
# Calculate gid
|
203
|
-
gid = calculate_gid basename, gpk
|
235
|
+
gid = scan_gid
|
204
236
|
end
|
205
|
-
|
237
|
+
|
206
238
|
# create IPV6_NETWORK
|
207
239
|
ipv6_network = {
|
208
240
|
:prefix => Base64.strict_encode64( network.prefix_bytes ),
|
@@ -223,30 +255,22 @@ module EnfCli
|
|
223
255
|
|
224
256
|
say "Set #{network} as default network for group #{gid}", :green
|
225
257
|
end
|
226
|
-
end
|
258
|
+
end
|
227
259
|
|
228
260
|
desc "set-group-domain", "Set /48 domain for the DAA group"
|
229
261
|
method_option :'domain', :type => :string, :required => true
|
230
|
-
method_option
|
262
|
+
method_option *option_gid
|
231
263
|
def set_group_domain
|
232
264
|
try_with_rescue_in_session do
|
233
265
|
domain_network = EnfCli::IPV6Cidr.new options[:domain]
|
234
266
|
|
235
267
|
# scan if gid not in options
|
236
|
-
if options[:gid]
|
268
|
+
if options[:gid]
|
237
269
|
gid = options[:gid]
|
238
270
|
else
|
239
|
-
|
240
|
-
|
241
|
-
# Extract gpk and basename
|
242
|
-
gpk_info = qr_code_info.split(",")
|
243
|
-
basename = gpk_info[0]
|
244
|
-
gpk = gpk_info[1]
|
245
|
-
|
246
|
-
# Calculate gid
|
247
|
-
gid = calculate_gid basename, gpk
|
271
|
+
gid = scan_gid
|
248
272
|
end
|
249
|
-
|
273
|
+
|
250
274
|
# create IPV6_NETWORK
|
251
275
|
ipv6_network = {
|
252
276
|
:prefix => Base64.strict_encode64( domain_network.prefix_bytes ),
|
@@ -271,26 +295,18 @@ module EnfCli
|
|
271
295
|
|
272
296
|
desc "add-group-to-network", "Associate a DAA Group with /64 network"
|
273
297
|
method_option :'network', :type => :string, :required => true
|
274
|
-
method_option
|
298
|
+
method_option *option_gid
|
275
299
|
def add_group_to_network
|
276
300
|
try_with_rescue_in_session do
|
277
301
|
network = EnfCli::IPV6Cidr.new options[:network]
|
278
302
|
|
279
303
|
# scan if gid not in options
|
280
|
-
if options[:gid]
|
304
|
+
if options[:gid]
|
281
305
|
gid = options[:gid]
|
282
306
|
else
|
283
|
-
|
284
|
-
|
285
|
-
# Extract gpk and basename
|
286
|
-
gpk_info = qr_code_info.split(",")
|
287
|
-
basename = gpk_info[0]
|
288
|
-
gpk = gpk_info[1]
|
289
|
-
|
290
|
-
# Calculate gid
|
291
|
-
gid = calculate_gid basename, gpk
|
307
|
+
gid = scan_gid
|
292
308
|
end
|
293
|
-
|
309
|
+
|
294
310
|
# create IPV6_NETWORK
|
295
311
|
ipv6_network = {
|
296
312
|
:prefix => Base64.strict_encode64( network.prefix_bytes ),
|
@@ -329,7 +345,7 @@ module EnfCli
|
|
329
345
|
# base64 encode all binary data: basename, gpk, gid
|
330
346
|
enc_basename = Base64.strict_encode64([basename].pack("H*"))
|
331
347
|
enc_gpk = Base64.strict_encode64([gpk].pack("H*"))
|
332
|
-
enc_gid = Base64.strict_encode64([gid].pack("H*"))
|
348
|
+
enc_gid = Base64.strict_encode64([gid].pack("H*"))
|
333
349
|
|
334
350
|
# create NEW_PROVISIONING
|
335
351
|
new_provisioning = {
|
@@ -353,22 +369,6 @@ module EnfCli
|
|
353
369
|
end
|
354
370
|
end
|
355
371
|
|
356
|
-
desc "list-network-groups", "List all DAA groups associated with a /64 network"
|
357
|
-
method_option :'network', :type => :string, :required => true
|
358
|
-
def list_network_groups
|
359
|
-
try_with_rescue_in_session do
|
360
|
-
# validate network
|
361
|
-
network = EnfCli::IPV6Cidr.new options[:network]
|
362
|
-
|
363
|
-
# call the api
|
364
|
-
data = EnfApi::Iam.instance.list_network_groups network.to_s
|
365
|
-
groups = data[:body]
|
366
|
-
|
367
|
-
# display data
|
368
|
-
display_groups groups
|
369
|
-
end
|
370
|
-
end
|
371
|
-
|
372
372
|
desc "create-endpoint-key", "Generate a pem encoded EC key pair"
|
373
373
|
method_option :'key-out-file', :type => :string, :required => true, :banner => '<file>'
|
374
374
|
method_option :'public-key-out-file', :type => :string, :required => true, :banner => '<file>'
|
data/lib/enfcli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enfcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.9.0.pre.alpha
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Venkatakumar Srinivasan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|