enfcli 4.0.0 → 5.0.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.
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2018 Xaptum,Inc
2
+ # Copyright 2018-2020 Xaptum,Inc
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -13,56 +13,51 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- require 'enfthor'
17
- require 'enfapi'
16
+ require "enfthor"
17
+ require "enfapi"
18
18
 
19
19
  module EnfCli
20
-
21
20
  module Cmd
22
-
23
21
  class Xcr < EnfThor
24
22
  no_commands {
25
- def display_endpoints eps
26
- headings = ['IPV6', 'Name', 'State', 'Network', 'Remote IP']
27
- rows = eps.map{ |hash|
28
- [ hash[:ipv6],
29
- hash[:name],
30
- hash[:state],
31
- hash[:state] == 'OFFLINE' ? '' : hash[:ev_asn_org],
32
- hash[:state] == 'OFFLINE' ? '' : hash[:ev_remote_ip]
33
- ]
23
+ def display_endpoints(eps)
24
+ headings = ["IPV6", "Name", "State", "Network", "Remote IP"]
25
+ rows = eps.map { |hash|
26
+ [hash[:ipv6],
27
+ hash[:name],
28
+ hash[:state],
29
+ hash[:state] == "OFFLINE" ? "" : hash[:last_event][:asn_org],
30
+ hash[:state] == "OFFLINE" ? "" : hash[:last_event][:remote_ip]]
34
31
  }
35
32
  render_table(headings, rows, options.file)
36
33
  end
37
34
 
38
- def display_endpoint_events events
39
- headings = ['Time', 'IPV6', 'Source', 'Event', 'Network', 'Remote IP']
40
- rows = events.map{ |hash|
41
- [ hash[:inserted_date], hash[:ipv6_text], hash[:source], hash[:type], hash[:asn_org], hash[:remote_ip]]
35
+ def display_endpoint_events(events)
36
+ headings = ["Time", "IPV6", "Source", "Event", "Network", "Remote IP"]
37
+ rows = events.map { |hash|
38
+ [hash[:inserted_date], hash[:ipv6_text], hash[:source], hash[:type], hash[:asn_org], hash[:remote_ip]]
42
39
  }
43
40
  render_table(headings, rows)
44
41
  end
45
42
 
46
- def display_domains domains
47
- headings = ['Name', 'Network', 'Status']
48
- rows = domains.map{ |hash|
49
- [ hash[:name], hash[:network], hash[:status]
50
- ]
43
+ def display_domains(domains)
44
+ headings = ["Name", "Cidr", "Status"]
45
+ rows = domains.map { |hash|
46
+ [hash[:name], hash[:cidr], hash[:status]]
51
47
  }
52
48
  render_table(headings, rows)
53
49
  end
54
50
 
55
- def display_networks networks
56
- headings = ['Name', 'Network', 'Description', 'Status']
57
- rows = networks.map{ |hash|
58
- [ hash[:name], hash[:network], hash[:description], hash[:status]
59
- ]
51
+ def display_networks(networks)
52
+ headings = ["Name", "Cidr", "Description", "Status"]
53
+ rows = networks.map { |hash|
54
+ [hash[:name], hash[:cidr], hash[:description], hash[:status]]
60
55
  }
61
56
  render_table(headings, rows)
62
57
  end
63
58
 
64
- def display_network network
65
- network_cidr = network[:network]
59
+ def display_network(network)
60
+ network_cidr = network[:cidr]
66
61
  name = network[:name] || ""
67
62
  description = network[:description] || ""
68
63
  status = network[:status] || ""
@@ -79,27 +74,27 @@ module EnfCli
79
74
  say "Modified At: #{modified_at}\n", nil, true
80
75
  end
81
76
 
82
- def display_limits limits
77
+ def display_limits(limits)
83
78
  # Extract default limits
84
79
  default_limits = limits[:default]
85
80
  current_limits = limits[:current]
86
81
  max_limits = limits[:max]
87
82
 
88
83
  # add type to the limits hash
89
- default_limits[:limit] = 'DEFAULT' if default_limits
90
- max_limits[:limit] = 'MAX' if max_limits
91
- current_limits[:limit] = 'CURRENT' if current_limits
84
+ default_limits[:limit] = "DEFAULT" if default_limits
85
+ max_limits[:limit] = "MAX" if max_limits
86
+ current_limits[:limit] = "CURRENT" if current_limits
92
87
 
93
88
  limits_array = []
94
89
  limits_array.push default_limits if default_limits
95
90
  limits_array.push current_limits if current_limits
96
91
  limits_array.push max_limits if max_limits
97
92
 
98
- headings = ['Limit', 'Pkts/Sec', 'Pkts Burst Size', 'Bytes/Sec', 'Bytes Burst Size']
99
- headings << 'Inherited' if limits_array.reduce(false){ |acc, hash| acc or hash.member?(:inherit)}
93
+ headings = ["Limit", "Pkts/Sec", "Pkts Burst Size", "Bytes/Sec", "Bytes Burst Size"]
94
+ headings << "Inherited" if limits_array.reduce(false) { |acc, hash| acc or hash.member?(:inherit) }
100
95
 
101
- rows = limits_array.map{ |hash|
102
- row = [ hash[:limit], hash[:packets_per_second], hash[:packets_burst_size], hash[:bytes_per_second], hash[:bytes_burst_size] ]
96
+ rows = limits_array.map { |hash|
97
+ row = [hash[:limit], hash[:packets_per_second], hash[:packets_burst_size], hash[:bytes_per_second], hash[:bytes_burst_size]]
103
98
  row << hash[:inherit] ? "Y" : "N" if hash.member?(:inherit)
104
99
  row
105
100
  }
@@ -109,12 +104,26 @@ module EnfCli
109
104
  }
110
105
 
111
106
  desc "list-networks", "List all virtual networks in domain"
107
+ method_option :domain, type: :string, default: nil, banner: "/48 CIDR",
108
+ aliases: "-d"
109
+
112
110
  def list_networks
113
111
  try_with_rescue_in_session do
114
- domain_id = EnfCli::CTX.instance.session[:domain_id]
112
+ # get correct domain
113
+ domain = EnfCli::CTX.instance.session[:domain]
114
+ raise EnfCli::ERROR, "User not in a valid domain!" unless domain
115
+
116
+ # check if admin
117
+ if EnfCli::CTX.instance.xaptum_admin?
118
+ raise EnfCli::ERROR, "--domain is required" unless options[:domain]
119
+
120
+ domain = options[:domain]
121
+ elsif options[:domain]
122
+ say "Warning: Ignoring command option --domain #{options[:domain]}", :yellow
123
+ end
115
124
 
116
125
  # Call the api
117
- data = EnfApi::API.instance.list_domain_nws domain_id
126
+ data = EnfApi::API.instance.list_domain_nws domain
118
127
  networks = data[:data]
119
128
 
120
129
  # display table
@@ -124,12 +133,24 @@ module EnfCli
124
133
 
125
134
  desc "provision-network", "Provision a Network"
126
135
  method_option :name, :type => :array, :required => true, :banner => "NAME"
136
+ method_option :domain, type: :string, default: nil, banner: "/48 CIDR",
137
+ aliases: "-d"
127
138
  method_option :description, :type => :array, :banner => "DESCRIPTION"
139
+
128
140
  def provision_network
129
141
  try_with_rescue_in_session do
130
- # verify domain context is set
131
- domain_id = EnfCli::CTX.instance.session[:domain_id]
132
- raise EnfCli::ERROR, "User's domain not available!" if !domain_id || domain_id < 0
142
+ # get correct domain
143
+ domain = EnfCli::CTX.instance.session[:domain]
144
+ raise EnfCli::ERROR, "User not in a valid domain!" unless domain
145
+
146
+ # check if admin
147
+ if EnfCli::CTX.instance.xaptum_admin?
148
+ raise EnfCli::ERROR, "--domain is required" unless options[:domain]
149
+
150
+ domain = options[:domain]
151
+ elsif options[:domain]
152
+ say "Warning: Ignoring command option --domain #{options[:domain]}", :yellow
153
+ end
133
154
 
134
155
  # Get options
135
156
  description = ""
@@ -139,10 +160,9 @@ module EnfCli
139
160
  # Call the api
140
161
  hash = {
141
162
  :name => network_name,
142
- :domain_id => domain_id,
143
- :description => description
163
+ :description => description,
144
164
  }
145
- data = EnfApi::API.instance.create_nw hash
165
+ data = EnfApi::API.instance.create_nw domain, hash
146
166
  networks = data[:data]
147
167
 
148
168
  # display table
@@ -153,6 +173,7 @@ module EnfCli
153
173
 
154
174
  desc "get-network", "Display network details"
155
175
  method_option :network, :type => :string, :required => true
176
+
156
177
  def get_network
157
178
  try_with_rescue_in_session do
158
179
  # call the api
@@ -168,6 +189,7 @@ module EnfCli
168
189
  method_option :network, :type => :string, :required => true
169
190
  method_option :name, :type => :array, :required => false, :banner => "NAME"
170
191
  method_option :description, :type => :array, :required => false, :banner => "DESCRIPTION"
192
+
171
193
  def update_network
172
194
  try_with_rescue_in_session do
173
195
  # Get options
@@ -188,6 +210,7 @@ module EnfCli
188
210
  end
189
211
 
190
212
  desc "list-enf-networks", "List enf /34 networks"
213
+
191
214
  def list_enf_networks
192
215
  try_with_rescue_in_session do
193
216
  # Call the api
@@ -195,27 +218,26 @@ module EnfCli
195
218
  networks = data[:data]
196
219
 
197
220
  # Display the data
198
- headings = ['Id', 'Parent', 'Network', 'Notes', 'Status', 'Type']
199
- rows = networks.map{ |hash|
200
- [ hash[:id], hash[:parent], hash[:network], hash[:notes], hash[:status], hash[:type] ]
221
+ headings = ["Id", "Parent", "Network", "Notes", "Status", "Type"]
222
+ rows = networks.map { |hash|
223
+ [hash[:id], hash[:parent], hash[:network], hash[:notes], hash[:status], hash[:type]]
201
224
  }
202
225
  render_table(headings, rows)
203
-
204
226
  end
205
227
  end
206
228
 
207
229
  desc "list-domains", "List all domains"
230
+
208
231
  def list_domains
209
232
  try_with_rescue_in_session do
210
233
  session = EnfCli::CTX.instance.session
211
234
 
212
235
  # call api
213
- data = {:data => []}
214
- case session[:type]
215
- when 'XAPTUM_ADMIN'
216
- data = EnfApi::API.instance.list_domains
236
+ data = { :data => [] }
217
237
 
218
- when 'DOMAIN_ADMIN'
238
+ if EnfCli::CTX.instance.xaptum_admin?
239
+ data = EnfApi::API.instance.list_domains
240
+ elsif EnfCli::CTX.instance.has_role?("DOMAIN_ADMIN")
219
241
  data = EnfApi::API.instance.get_domain session[:domain_id]
220
242
  end
221
243
 
@@ -229,6 +251,7 @@ module EnfCli
229
251
  method_option :name, :type => :string, :required => true
230
252
  method_option :'admin-name', :type => :array, :required => true, :banner => "ADMIN_NAME"
231
253
  method_option :'admin-email', :type => :string, :required => true, :banner => "EMAIL"
254
+
232
255
  def provision_domain
233
256
  try_with_rescue_in_session do
234
257
  # Get cli params
@@ -241,7 +264,7 @@ module EnfCli
241
264
  :admin_name => admin_name,
242
265
  :admin_email => admin_email,
243
266
  :name => domain_name,
244
- :type => 'CUSTOMER_SOURCE'
267
+ :type => "CUSTOMER_SOURCE",
245
268
  }
246
269
  data = EnfApi::API.instance.create_domain hash
247
270
 
@@ -252,19 +275,20 @@ module EnfCli
252
275
  end
253
276
 
254
277
  desc "list-domain-rate-limits", "List domain rate limits"
255
- method_option :network, :type => :string, :required => true, :banner => '</48 Network>'
256
- method_option :filter, :type => :string, :enum => ['default', 'max']
278
+ method_option :domain, :type => :string, :required => true, :banner => "/48 CIDR"
279
+ method_option :filter, :type => :string, :enum => ["default", "max"]
280
+
257
281
  def list_domain_rate_limits
258
282
  try_with_rescue_in_session do
259
283
  # Call the api
260
- data = EnfApi::API.instance.get_domain_rate_limits options[:network], options[:filter]
284
+ data = EnfApi::API.instance.get_domain_rate_limits options[:domain], options[:filter]
261
285
 
262
286
  # Get the limits
263
287
  limits = data[:data][0]
264
288
 
265
289
  # if the Api returns only the rate limits object, have to add type explicitly to display
266
290
  limits = {
267
- options[:filter].to_sym => limits
291
+ options[:filter].to_sym => limits,
268
292
  } if options[:filter]
269
293
 
270
294
  # Display limits
@@ -273,8 +297,9 @@ module EnfCli
273
297
  end
274
298
 
275
299
  desc "list-network-rate-limits", "List network rate limits"
276
- method_option :network, :type => :string, :required => true
277
- method_option :filter, :type => :string, :enum => ['default', 'max']
300
+ method_option :network, :type => :string, :required => true, :banner => "/64 CIDR"
301
+ method_option :filter, :type => :string, :enum => ["default", "max"]
302
+
278
303
  def list_network_rate_limits
279
304
  try_with_rescue_in_session do
280
305
  # Call the api
@@ -285,7 +310,7 @@ module EnfCli
285
310
 
286
311
  # if the Api returns only the rate limits object, have to add type explicitly to display
287
312
  limits = {
288
- options[:filter].to_sym => limits
313
+ options[:filter].to_sym => limits,
289
314
  } if options[:filter]
290
315
 
291
316
  # Display limits
@@ -295,7 +320,8 @@ module EnfCli
295
320
 
296
321
  desc "list-endpoint-rate-limits", "List endpoints rate limits"
297
322
  method_option :ipv6, :type => :string, :required => true
298
- method_option :filter, :type => :string, :enum => ['current', 'max']
323
+ method_option :filter, :type => :string, :enum => ["current", "max"]
324
+
299
325
  def list_endpoint_rate_limits
300
326
  try_with_rescue_in_session do
301
327
  # Call the api
@@ -306,21 +332,21 @@ module EnfCli
306
332
 
307
333
  # if the Api returns only the rate limits object, have to add type explicitly to display
308
334
  limits = {
309
- options[:filter].to_sym => limits
335
+ options[:filter].to_sym => limits,
310
336
  } if options[:filter]
311
337
 
312
-
313
338
  # Display limits
314
339
  display_limits limits
315
340
  end
316
341
  end
317
342
 
318
343
  desc "activate-domain", "Activate a customer's /48 domain"
319
- method_option :network, :type => :string, :required => true
344
+ method_option :domain, :type => :string, :required => true, banner: "/48 CIDR"
345
+
320
346
  def activate_domain
321
347
  try_with_rescue_in_session do
322
348
  # Call api
323
- data = EnfApi::API.instance.update_domain_status options[:network], {:status => "ACTIVE"}
349
+ data = EnfApi::API.instance.update_domain_status options[:domain], { :status => "ACTIVE" }
324
350
  domains = data[:data]
325
351
 
326
352
  # Display the data
@@ -330,11 +356,12 @@ module EnfCli
330
356
  end
331
357
 
332
358
  desc "deactivate-domain", "Deactivate a customer's /48 domain"
333
- method_option :network, :type => :string, :required => true
359
+ method_option :domain, :type => :string, :required => true, banner: "/48 CIDR"
360
+
334
361
  def deactivate_domain
335
362
  try_with_rescue_in_session do
336
363
  # Call api
337
- data = EnfApi::API.instance.update_domain_status options[:network], {:status => "READY"}
364
+ data = EnfApi::API.instance.update_domain_status options[:domain], { :status => "READY" }
338
365
  domains = data[:data]
339
366
 
340
367
  # Display the data
@@ -344,27 +371,28 @@ module EnfCli
344
371
  end
345
372
 
346
373
  desc "set-domain-rate-limits", "Update a customer /48 domain's endpoint rate limits"
347
- method_option :network, :type => :string, :required => true
348
- method_option :limit, :type => :string, :enum => ['default', 'max'], :required => true
349
- method_option :'packets-per-second', :type => :numeric, :required => true
350
- method_option :'packets-burst-size', :type => :numeric, :required => true
351
- method_option :'bytes-per-second', :type => :numeric, :required => true
352
- method_option :'bytes-burst-size', :type => :numeric, :required => true
374
+ method_option :domain, :type => :string, :required => true, banner: "/48 CIDR"
375
+ method_option :limit, :type => :string, :enum => ["default", "max"], :required => true
376
+ method_option :'packets-per-second', :type => :numeric, :required => true, aliases: "-p"
377
+ method_option :'packets-burst-size', :type => :numeric, :required => true, aliases: "-P"
378
+ method_option :'bytes-per-second', :type => :numeric, :required => true, aliases: "-b"
379
+ method_option :'bytes-burst-size', :type => :numeric, :required => true, aliases: "-B"
380
+
353
381
  def set_domain_rate_limits
354
382
  try_with_rescue_in_session do
355
383
  # Call api
356
384
  hash = {
357
- :packets_per_second => options['packets-per-second'],
358
- :packets_burst_size => options['packets-burst-size'],
359
- :bytes_per_second => options['bytes-per-second'],
360
- :bytes_burst_size => options['bytes-burst-size']
385
+ :packets_per_second => options["packets-per-second"],
386
+ :packets_burst_size => options["packets-burst-size"],
387
+ :bytes_per_second => options["bytes-per-second"],
388
+ :bytes_burst_size => options["bytes-burst-size"],
361
389
  }
362
- data = EnfApi::API.instance.update_domain_rate_limits options[:network], options[:limit], hash
390
+ data = EnfApi::API.instance.update_domain_rate_limits options[:domain], options[:limit], hash
363
391
  limits = data[:data][0]
364
392
 
365
393
  # The Api returns only the rate limits object. Have to add type explicitly to display
366
394
  limits_hash = {
367
- options[:limit].to_sym => limits
395
+ options[:limit].to_sym => limits,
368
396
  }
369
397
  display_limits limits_hash
370
398
  end
@@ -372,26 +400,27 @@ module EnfCli
372
400
 
373
401
  desc "set-network-rate-limits", "Update a customer /64 network's endpoint rate limits"
374
402
  method_option :network, :type => :string, :required => true
375
- method_option :limit, :type => :string, :enum => ['default', 'max'], :required => true
376
- method_option :'packets-per-second', :type => :numeric, :required => true
377
- method_option :'packets-burst-size', :type => :numeric, :required => true
378
- method_option :'bytes-per-second', :type => :numeric, :required => true
379
- method_option :'bytes-burst-size', :type => :numeric, :required => true
403
+ method_option :limit, :type => :string, :enum => ["default", "max"], :required => true
404
+ method_option :'packets-per-second', :type => :numeric, :required => true, aliases: "-p"
405
+ method_option :'packets-burst-size', :type => :numeric, :required => true, aliases: "-P"
406
+ method_option :'bytes-per-second', :type => :numeric, :required => true, aliases: "-b"
407
+ method_option :'bytes-burst-size', :type => :numeric, :required => true, aliases: "-B"
408
+
380
409
  def set_network_rate_limits
381
410
  try_with_rescue_in_session do
382
411
  # Call api
383
412
  hash = {
384
- :packets_per_second => options['packets-per-second'],
385
- :packets_burst_size => options['packets-burst-size'],
386
- :bytes_per_second => options['bytes-per-second'],
387
- :bytes_burst_size => options['bytes-burst-size']
413
+ :packets_per_second => options["packets-per-second"],
414
+ :packets_burst_size => options["packets-burst-size"],
415
+ :bytes_per_second => options["bytes-per-second"],
416
+ :bytes_burst_size => options["bytes-burst-size"],
388
417
  }
389
418
  data = EnfApi::API.instance.update_network_rate_limits options[:network], options[:limit], hash
390
419
  limits = data[:data][0]
391
420
 
392
421
  # The Api returns only the rate limits object. Have to add type explicitly to display
393
422
  limits_hash = {
394
- options[:limit].to_sym => limits
423
+ options[:limit].to_sym => limits,
395
424
  }
396
425
  display_limits limits_hash
397
426
  end
@@ -399,19 +428,20 @@ module EnfCli
399
428
 
400
429
  desc "reset-network-rate-limits", "Reset customer /64 network's endpoint rate limits to domains rate limits"
401
430
  method_option :network, :type => :string, :required => true
402
- method_option :limit, :type => :string, :enum => ['default', 'max'], :required => true
431
+ method_option :limit, :type => :string, :enum => ["default", "max"], :required => true
432
+
403
433
  def reset_network_rate_limits
404
434
  try_with_rescue_in_session do
405
435
  # Call api
406
436
  hash = {
407
- :inherit => true
437
+ :inherit => true,
408
438
  }
409
439
  data = EnfApi::API.instance.update_network_rate_limits options[:network], options[:limit], hash
410
440
  limits = data[:data][0]
411
441
 
412
442
  # The Api returns only the rate limits object. Have to add type explicitly to display
413
443
  limits_hash = {
414
- options[:limit].to_sym => limits
444
+ options[:limit].to_sym => limits,
415
445
  }
416
446
  display_limits limits_hash
417
447
  end
@@ -419,26 +449,27 @@ module EnfCli
419
449
 
420
450
  desc "set-endpoint-rate-limits", "Update an ipv6 endpoint rate limits"
421
451
  method_option :ipv6, :type => :string, :required => true
422
- method_option :limit, :type => :string, :enum => ['current', 'max'], :required => true
423
- method_option :'packets-per-second', :type => :numeric, :required => true
424
- method_option :'packets-burst-size', :type => :numeric, :required => true
425
- method_option :'bytes-per-second', :type => :numeric, :required => true
426
- method_option :'bytes-burst-size', :type => :numeric, :required => true
452
+ method_option :limit, :type => :string, :enum => ["current", "max"], :required => true
453
+ method_option :'packets-per-second', :type => :numeric, :required => true, aliases: "-p"
454
+ method_option :'packets-burst-size', :type => :numeric, :required => true, aliases: "-P"
455
+ method_option :'bytes-per-second', :type => :numeric, :required => true, aliases: "-b"
456
+ method_option :'bytes-burst-size', :type => :numeric, :required => true, aliases: "-B"
457
+
427
458
  def set_endpoint_rate_limits
428
459
  try_with_rescue_in_session do
429
460
  # Call api
430
461
  hash = {
431
- :packets_per_second => options['packets-per-second'],
432
- :packets_burst_size => options['packets-burst-size'],
433
- :bytes_per_second => options['bytes-per-second'],
434
- :bytes_burst_size => options['bytes-burst-size']
462
+ :packets_per_second => options["packets-per-second"],
463
+ :packets_burst_size => options["packets-burst-size"],
464
+ :bytes_per_second => options["bytes-per-second"],
465
+ :bytes_burst_size => options["bytes-burst-size"],
435
466
  }
436
467
  data = EnfApi::API.instance.update_ep_rate_limits options[:ipv6], options[:limit], hash
437
468
  limits = data[:data][0]
438
469
 
439
470
  # The Api returns only the rate limits object. Have to add type explicitly to display
440
471
  limits_hash = {
441
- options[:limit].to_sym => limits
472
+ options[:limit].to_sym => limits,
442
473
  }
443
474
  display_limits limits_hash
444
475
  end
@@ -446,35 +477,33 @@ module EnfCli
446
477
 
447
478
  desc "reset-endpoint-rate-limits", "Reset an ipv6 endpoint rate limits to network's rate limits"
448
479
  method_option :ipv6, :type => :string, :required => true
449
- method_option :limit, :type => :string, :enum => ['current', 'max'], :required => true
480
+ method_option :limit, :type => :string, :enum => ["current", "max"], :required => true
481
+
450
482
  def reset_endpoint_rate_limits
451
483
  try_with_rescue_in_session do
452
484
  # Call api
453
485
  hash = {
454
- :inherit => true
486
+ :inherit => true,
455
487
  }
456
488
  data = EnfApi::API.instance.update_ep_rate_limits options[:ipv6], options[:limit], hash
457
489
  limits = data[:data][0]
458
490
 
459
491
  # The Api returns only the rate limits object. Have to add type explicitly to display
460
492
  limits_hash = {
461
- options[:limit].to_sym => limits
493
+ options[:limit].to_sym => limits,
462
494
  }
463
495
  display_limits limits_hash
464
496
  end
465
497
  end
466
498
 
467
499
  desc "list-endpoints", "List all connections in a network"
468
- method_option :network, :type => :string, :required => true
500
+ method_option :network, :type => :string, :required => true, banner: "/48 CIDR"
469
501
  method_option :file, :type => :string, :aliases => "-f"
502
+
470
503
  def list_endpoints
471
504
  try_with_rescue_in_session do
472
- # verify domain context is set
473
- domain_id = EnfCli::CTX.instance.session[:domain_id]
474
- raise EnfCli::ERROR, "User's domain not available!" if !domain_id || domain_id < 0
475
-
476
505
  # call api
477
- data = EnfApi::API.instance.list_nw_connections domain_id, options.network, options.file
506
+ data = EnfApi::API.instance.list_nw_connections options.network
478
507
  cxns = data[:data]
479
508
 
480
509
  # display table
@@ -484,6 +513,7 @@ module EnfCli
484
513
 
485
514
  desc "list-endpoint-events", "List connect/disconnect events for an ipv6 endpoint"
486
515
  method_option :ipv6, :type => :string, :required => true
516
+
487
517
  def list_endpoint_events
488
518
  try_with_rescue_in_session do
489
519
  # call the api
@@ -492,12 +522,12 @@ module EnfCli
492
522
 
493
523
  # display data
494
524
  display_endpoint_events events
495
-
496
525
  end
497
526
  end
498
527
 
499
528
  desc "list-network-events", "List connect/disconnect events of ipv6 endpoints in a network"
500
529
  method_option :network, :type => :string, :required => true
530
+
501
531
  def list_network_events
502
532
  try_with_rescue_in_session do
503
533
  # call the api
@@ -511,6 +541,7 @@ module EnfCli
511
541
 
512
542
  desc "get-endpoint", "Display an ipv6 endpoint's information"
513
543
  method_option :ipv6, :type => :string, :required => true
544
+
514
545
  def get_endpoint
515
546
  try_with_rescue_in_session do
516
547
  # call the api
@@ -525,6 +556,7 @@ module EnfCli
525
556
  desc "update-endpoint", "Update an ipv6 endpoint's name"
526
557
  method_option :ipv6, :type => :string, :required => true
527
558
  method_option :name, :type => :array, :required => true, :banner => "NAME"
559
+
528
560
  def update_endpoint
529
561
  try_with_rescue_in_session do
530
562
  # Call the api
@@ -537,17 +569,17 @@ module EnfCli
537
569
  end
538
570
 
539
571
  desc "activate-enf-network", "Active a /34 enf network"
540
- method_option :network, :type => :string, :required => true
572
+ method_option :cidr, :type => :string, :required => true
573
+
541
574
  def activate_enfnw
542
575
  try_with_rescue_in_session do
543
576
  # Call the api
544
- EnfApi::API.instance.activate_enfnw options.network
577
+ EnfApi::API.instance.activate_enfnw options.cidr
545
578
 
546
579
  # Print success
547
- say "Activated Enf Network #{options.network}!", :green
580
+ say "Activated Enf Network #{options.cidr}!", :green
548
581
  end
549
582
  end
550
-
551
583
  end # class
552
584
  end # module Cmd
553
585
  end # module EnfCli