enfcli 3.7.0.pre.alpha → 3.8.0.pre.alpha
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/enfapi.rb +8 -0
- data/lib/enfcli/commands/captive.rb +96 -21
- 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: fef441dacffa981c271943ac40b3e5f51578398af87480e38ce66b3c1e4e1ecb
|
4
|
+
data.tar.gz: a4a9cf8bf7744a3c531acd0b8910486e77d48c1ee20d07d5bdb21eb6640560e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12a28d52907530654463ecb3aa8a836ea5e09fcadb255ca4b1ea39c53e7990d227db5a679baf40fe125d8a7bd1cbc7bf7acd9588a90763bc3f6ac71b3136009e
|
7
|
+
data.tar.gz: ceb7a1bea95832a792842fda3307d5fc9dfe86b73ba39d7b4756fe2f4a6dc41df306ccd3b553c13db92f3b3186443ab077779cb0facab08a1cd94a5eeb7dfbcc
|
data/Gemfile.lock
CHANGED
data/lib/enfapi.rb
CHANGED
@@ -241,6 +241,14 @@ module EnfApi
|
|
241
241
|
EnfApi::API.instance.get "/api/captive/v1/device/#{dev_id}"
|
242
242
|
end
|
243
243
|
|
244
|
+
# Update a device
|
245
|
+
## NO_TEST
|
246
|
+
def update_device(id, dev_updates)
|
247
|
+
json = EnfApi.to_json(dev_updates)
|
248
|
+
EnfApi::API.instance.put "/api/captive/v1/device/#{id}", json
|
249
|
+
end
|
250
|
+
|
251
|
+
|
244
252
|
# Get the status of a device
|
245
253
|
## NO_TEST
|
246
254
|
def get_device_status(dev_id)
|
@@ -158,9 +158,13 @@ module EnfCli
|
|
158
158
|
}
|
159
159
|
}
|
160
160
|
dev_name = options[:'device-name']
|
161
|
-
|
161
|
+
profile_id = options[:profile_id]
|
162
162
|
new_device_hash[:device_name] = dev_name if dev_name
|
163
|
-
|
163
|
+
if profile_id
|
164
|
+
profile_hash = {}
|
165
|
+
profile_hash[:id] = profile_id
|
166
|
+
new_device_hash[:profile] = profile_hash
|
167
|
+
end
|
164
168
|
|
165
169
|
# send the new device request
|
166
170
|
device_data = EnfApi::Captive.instance.create_device new_device_hash
|
@@ -197,6 +201,34 @@ module EnfCli
|
|
197
201
|
end
|
198
202
|
end
|
199
203
|
|
204
|
+
desc 'update-device',
|
205
|
+
'Update an existing device record with the values specified.'
|
206
|
+
method_option :'device-id', type: :string, required: true, banner: 'DEVICE-ID',
|
207
|
+
desc: 'DEVICE-ID is either the device serial number or its ipv6 address.'
|
208
|
+
method_option :'device-name', type: :string, default: nil, banner: 'DEVICE-NAME',
|
209
|
+
desc: 'User-defined name for the device.'
|
210
|
+
method_option :'profile-id', type: :string, default: nil, banner: 'PROFILE_ID',
|
211
|
+
desc: 'UUID of the profile that the device will use. The profile must already exist.'
|
212
|
+
def update_device
|
213
|
+
try_with_rescue_in_session do
|
214
|
+
id = options[:'device-id']
|
215
|
+
name = options[:'device-name']
|
216
|
+
profile_id = options[:'profile-id']
|
217
|
+
|
218
|
+
raise "At least one option needs to change." if name == nil && profile_id == nil
|
219
|
+
|
220
|
+
update_hash = {}
|
221
|
+
update_hash[:device_name] = name if name
|
222
|
+
if profile_id
|
223
|
+
update_hash[:profile] = {}
|
224
|
+
update_hash[:profile][:id] = profile_id
|
225
|
+
end
|
226
|
+
|
227
|
+
data = EnfApi::Captive.instance.update_device id, update_hash
|
228
|
+
display_device data
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
200
232
|
desc 'get-device-status',
|
201
233
|
'Get the latest status of the specified device.'
|
202
234
|
method_option :'device-id', required: true, type: :string,
|
@@ -419,10 +451,8 @@ module EnfCli
|
|
419
451
|
mac_addrs = device_data[:mac_address]
|
420
452
|
firmware = device_data[:firmware_version]
|
421
453
|
firmware = '< not available >' unless firmware
|
422
|
-
|
423
|
-
profile_id = '< not available >' unless profile_id
|
454
|
+
profile = device_data[:profile]
|
424
455
|
status = device_data[:status]
|
425
|
-
status = '< not available >' unless status
|
426
456
|
|
427
457
|
say "Serial Number : #{device_data[:serial_number]}"
|
428
458
|
say "Device Name : #{name}"
|
@@ -436,11 +466,43 @@ module EnfCli
|
|
436
466
|
say " 4 : #{mac_addrs[:'4']}"
|
437
467
|
end
|
438
468
|
say "Firmware Version : #{firmware}"
|
439
|
-
|
440
|
-
|
469
|
+
if profile
|
470
|
+
say "Profile :"
|
471
|
+
display_profile profile, true
|
472
|
+
else
|
473
|
+
say "Profile : < not available >"
|
474
|
+
end
|
475
|
+
display_device_status_summary status
|
441
476
|
say ''
|
442
477
|
end
|
443
478
|
|
479
|
+
#
|
480
|
+
# display the status summary
|
481
|
+
#
|
482
|
+
def display_device_status_summary (device_status)
|
483
|
+
if device_status
|
484
|
+
sn = device_status[:serial_number]
|
485
|
+
mode = device_status[:router_mode]
|
486
|
+
mode = device_status[:mode] unless mode
|
487
|
+
mode = "\n" unless mode
|
488
|
+
wifi = device_status[:wifi]
|
489
|
+
|
490
|
+
say 'Status :'
|
491
|
+
say " Serial Number : #{sn}" if sn
|
492
|
+
say " Router Mode : #{mode}"
|
493
|
+
|
494
|
+
if wifi
|
495
|
+
connected = wifi[:connected]
|
496
|
+
connected = " < unknown >" unless connected
|
497
|
+
ssid = wifi[:SSID]
|
498
|
+
say " wifi connected: #{connected}"
|
499
|
+
say " SSID : #{ssid}" if ssid
|
500
|
+
end
|
501
|
+
else
|
502
|
+
say "Status : < not available >"
|
503
|
+
end
|
504
|
+
end
|
505
|
+
|
444
506
|
#
|
445
507
|
# display the status of the device.
|
446
508
|
# status is a hash matching the json structure
|
@@ -518,26 +580,39 @@ module EnfCli
|
|
518
580
|
#
|
519
581
|
# Display profile detail
|
520
582
|
#
|
521
|
-
def display_profile (profile)
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
583
|
+
def display_profile (profile, summary = false)
|
584
|
+
if summary
|
585
|
+
indent = ' '
|
586
|
+
else
|
587
|
+
indent = ''
|
588
|
+
end
|
589
|
+
|
590
|
+
say indent + "Name : #{profile[:name]}"
|
591
|
+
say indent + "Profile ID : #{profile[:id]}"
|
592
|
+
say indent + "Configuration version : #{profile[:config][:version]}"
|
593
|
+
unless summary
|
594
|
+
say "Mode :#{profile[:config][:mode]}"
|
595
|
+
display_wifi_summary profile[:config][:wifi]
|
596
|
+
end
|
527
597
|
end
|
528
598
|
|
529
599
|
#
|
530
600
|
# Display summary of the WIFI configuration info
|
531
601
|
#
|
532
602
|
def display_wifi_summary (wifi)
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
603
|
+
if wifi
|
604
|
+
say "Wifi config :"
|
605
|
+
say " id :#{wifi[:id]}"
|
606
|
+
# TODO - make accessible only to Xaptum admins
|
607
|
+
say " domain :#{wifi[:domain]}"
|
608
|
+
say " name :#{wifi[:name]}"
|
609
|
+
desc = wifi[:description]
|
610
|
+
say " description :#{desc}" if desc
|
611
|
+
say " config version :#{wifi[:version]}"
|
612
|
+
else
|
613
|
+
say "Wifi config : < not configured >"
|
614
|
+
end
|
615
|
+
|
541
616
|
end
|
542
617
|
|
543
618
|
#
|
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.8.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-08-
|
11
|
+
date: 2019-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|