cisco_node_utils 2.0.2 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +37 -0
- data/lib/cisco_node_utils/bfd_global.rb +4 -0
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +25 -0
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +18 -18
- data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +4 -1
- data/lib/cisco_node_utils/cmd_ref/interface_evpn_multisite.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +17 -15
- data/lib/cisco_node_utils/interface.rb +117 -118
- data/lib/cisco_node_utils/interface_channel_group.rb +17 -8
- data/lib/cisco_node_utils/interface_evpn_multisite.rb +15 -6
- data/lib/cisco_node_utils/interface_ospf.rb +126 -102
- data/lib/cisco_node_utils/itd_service.rb +8 -0
- data/lib/cisco_node_utils/node.rb +0 -1
- data/lib/cisco_node_utils/platform.rb +16 -32
- data/lib/cisco_node_utils/version.rb +1 -1
- data/lib/cisco_node_utils/vlan.rb +1 -2
- data/lib/cisco_node_utils/vxlan_vtep.rb +1 -1
- data/tests/test_interface.rb +74 -13
- data/tests/test_interface_bdi.rb +2 -2
- data/tests/test_interface_channel_group.rb +24 -17
- data/tests/test_interface_evpn_multisite.rb +35 -0
- data/tests/test_interface_ospf.rb +71 -3
- data/tests/test_itd_service.rb +16 -4
- data/tests/test_node_ext.rb +4 -1
- data/tests/test_portchannel_global.rb +3 -0
- data/tests/test_router_ospf_vrf.rb +2 -34
- data/tests/test_stp_global.rb +4 -0
- metadata +3 -6
- data/lib/cisco_node_utils/cmd_ref/DEPRECATED.yaml +0 -118
- data/lib/cisco_node_utils/interface_DEPRECATED.rb +0 -518
- data/lib/cisco_node_utils/vlan_DEPRECATED.rb +0 -108
data/tests/test_itd_service.rb
CHANGED
@@ -51,7 +51,7 @@ class TestItdSvc < CiscoTestCase
|
|
51
51
|
def test_access_list
|
52
52
|
skip_nexus_i2_image?
|
53
53
|
itd = ItdService.new('new_group')
|
54
|
-
config 'ip access-list include'
|
54
|
+
config 'ip access-list include ; permit ip any any'
|
55
55
|
config 'ip access-list exclude'
|
56
56
|
itd.access_list = 'include'
|
57
57
|
itd.exclude_access_list = 'exclude'
|
@@ -98,9 +98,21 @@ class TestItdSvc < CiscoTestCase
|
|
98
98
|
intf = interfaces[0].dup
|
99
99
|
new_intf = Interface.new(interfaces[0])
|
100
100
|
new_intf.switchport_mode = :disabled
|
101
|
-
|
102
|
-
|
103
|
-
|
101
|
+
# The next-hop setting as part of the ingress_interface
|
102
|
+
# is not needed for n9k and in the latest images is not
|
103
|
+
# even supported by the cli.
|
104
|
+
if Platform.image_version[/9\.\d+/]
|
105
|
+
next_hop1 = ''
|
106
|
+
next_hop2 = ''
|
107
|
+
next_hop3 = ''
|
108
|
+
else
|
109
|
+
next_hop1 = '1.1.1.1'
|
110
|
+
next_hop2 = '2.2.2.2'
|
111
|
+
next_hop3 = '3.3.3.3'
|
112
|
+
end
|
113
|
+
ii = [['vlan 2', next_hop1],
|
114
|
+
[intf.insert(8, ' '), next_hop2],
|
115
|
+
['port-channel 100', next_hop3]]
|
104
116
|
itd.ingress_interface = ii
|
105
117
|
assert_equal(itd.ingress_interface, ii)
|
106
118
|
ii = [['vlan 2', ''],
|
data/tests/test_node_ext.rb
CHANGED
@@ -37,7 +37,8 @@ class TestNodeExt < CiscoTestCase
|
|
37
37
|
node.client.set(context: ['interface loopback0'], values: ['shutdown'])
|
38
38
|
node.client.set(values: ['interface loopback1', 'no shutdown'])
|
39
39
|
|
40
|
-
result = node.config_get('interface', 'shutdown',
|
40
|
+
result = node.config_get('interface', 'shutdown',
|
41
|
+
name: 'loopback1', show_name: 'loopback1')
|
41
42
|
refute(result)
|
42
43
|
end
|
43
44
|
|
@@ -143,8 +144,10 @@ class TestNodeExt < CiscoTestCase
|
|
143
144
|
def test_get_product_id
|
144
145
|
# N3|9K Fretta product_id gets a '-F' appended so remove it for this check
|
145
146
|
if product_tag[/n(3|9)k-f/]
|
147
|
+
node.client.cache_flush
|
146
148
|
chassis = node.product_id.sub('-F', '')
|
147
149
|
else
|
150
|
+
node.client.cache_flush
|
148
151
|
chassis = node.product_id
|
149
152
|
end
|
150
153
|
assert_output_check(command: 'show inventory',
|
@@ -192,6 +192,9 @@ class TestPortchannelGlobal < CiscoTestCase
|
|
192
192
|
skip('Test not supported on this platform') if n3k_in_n3k_mode? ||
|
193
193
|
validate_property_excluded?('portchannel_global', 'symmetry')
|
194
194
|
# rubocop:enable Style/MultilineOperationIndentation
|
195
|
+
# TBD: concat not supported; add N9k-EX to allowed platforms list and
|
196
|
+
# use proper _exclude tags
|
197
|
+
skip('TBD: Limited support for N9k-EX') if node.product_id[/N9K.*EX/]
|
195
198
|
|
196
199
|
global = create_portchannel_global
|
197
200
|
global.send(:port_channel_load_balance=,
|
@@ -244,11 +244,10 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
244
244
|
end
|
245
245
|
|
246
246
|
def test_create_name_zero_length
|
247
|
-
|
247
|
+
RouterOspf.new('testOspf')
|
248
248
|
assert_raises(ArgumentError) do
|
249
249
|
RouterOspfVrf.new('testOspf', '')
|
250
250
|
end
|
251
|
-
routerospf.destroy
|
252
251
|
end
|
253
252
|
|
254
253
|
def test_create_valid
|
@@ -259,7 +258,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
259
258
|
assert_match_vrf_line(ospfname, vrfname)
|
260
259
|
assert_equal(vrfname, vrf.name,
|
261
260
|
"Error: #{vrfname} vrf, create failed")
|
262
|
-
vrf.parent.destroy
|
263
261
|
end
|
264
262
|
|
265
263
|
def test_get_parent_name
|
@@ -267,7 +265,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
267
265
|
vrf = create_routerospfvrf(routerospf.name)
|
268
266
|
assert_equal(routerospf.name, vrf.parent.name,
|
269
267
|
'Error: Parent value is not correct')
|
270
|
-
routerospf.destroy
|
271
268
|
end
|
272
269
|
|
273
270
|
def test_get_name
|
@@ -276,7 +273,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
276
273
|
assert_match_vrf_line('green', vrfname)
|
277
274
|
assert_equal(vrfname, vrf.name,
|
278
275
|
"Error: #{vrfname} vrf, name get value mismatch")
|
279
|
-
vrf.parent.destroy
|
280
276
|
end
|
281
277
|
|
282
278
|
def test_destroy
|
@@ -286,7 +282,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
286
282
|
vrf.destroy
|
287
283
|
end
|
288
284
|
assert_match_vrf_line(vrf.parent.name, vrfname)
|
289
|
-
vrf.parent.destroy
|
290
285
|
end
|
291
286
|
|
292
287
|
def test_auto_cost
|
@@ -298,7 +293,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
298
293
|
assert_match_vrf_line(vrf.parent.name, vrf.name, pattern)
|
299
294
|
assert_equal(auto_cost_value, vrf.auto_cost,
|
300
295
|
'Error: auto-cost, get value mismatch')
|
301
|
-
vrf.parent.destroy
|
302
296
|
end
|
303
297
|
|
304
298
|
def test_auto_cost_multiple_vrf
|
@@ -321,7 +315,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
321
315
|
assert_match_vrf_line(routerospf.name, vrf1.name, pattern)
|
322
316
|
assert_equal(auto_cost_value, vrf1.auto_cost,
|
323
317
|
"Error: #{vrf1.name} vrf, auto-cost get value mismatch")
|
324
|
-
routerospf.destroy
|
325
318
|
end
|
326
319
|
|
327
320
|
def test_get_default_auto_cost
|
@@ -332,7 +325,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
332
325
|
'Error: default auto-cost get value mismatch')
|
333
326
|
assert_equal(auto_cost_value, vrf.auto_cost,
|
334
327
|
'Error: auto-cost get value default mismatch')
|
335
|
-
vrf.parent.destroy
|
336
328
|
end
|
337
329
|
|
338
330
|
def test_bfd
|
@@ -349,7 +341,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
349
341
|
vrf1.bfd = vrf1.default_bfd
|
350
342
|
assert_equal(vrf.default_bfd, vrf.bfd)
|
351
343
|
assert_equal(vrf1.default_bfd, vrf1.bfd)
|
352
|
-
routerospf.destroy
|
353
344
|
end
|
354
345
|
|
355
346
|
def test_default_metric
|
@@ -365,7 +356,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
365
356
|
return unless step_unless_legacy_defect(skip_versions, 'CSCvi74876: Cannot remove default metric')
|
366
357
|
vrf.default_metric = vrf.default_default_metric
|
367
358
|
refute_match_vrf_line(vrf.parent.name, vrf.name, pattern)
|
368
|
-
vrf.parent.destroy
|
369
359
|
end
|
370
360
|
|
371
361
|
def test_default_metric_multiple_vrf
|
@@ -387,8 +377,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
387
377
|
assert_match_vrf_line(routerospf.name, vrf1.name, pattern)
|
388
378
|
assert_equal(metric, vrf1.default_metric,
|
389
379
|
"Error: #{vrf1.name} vrf, default-metric get value mismatch")
|
390
|
-
|
391
|
-
routerospf.destroy
|
392
380
|
end
|
393
381
|
|
394
382
|
def test_log_adjacency_changes
|
@@ -413,7 +401,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
413
401
|
vrf.log_adjacency = vrf.default_log_adjacency
|
414
402
|
pattern = /\s+log-adjacency-changes(.*)/
|
415
403
|
refute_match_vrf_line(vrf.parent.name, vrf.name, pattern)
|
416
|
-
vrf.parent.destroy
|
417
404
|
end
|
418
405
|
|
419
406
|
def test_log_adjacency_multiple_vrf
|
@@ -433,8 +420,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
433
420
|
assert_match_vrf_line(routerospf.name, vrf1.name, pattern)
|
434
421
|
assert_equal(:detail, vrf1.log_adjacency,
|
435
422
|
"Error: #{vrf1.name} vrf, log-adjacency get value mismatch")
|
436
|
-
|
437
|
-
routerospf.destroy
|
438
423
|
end
|
439
424
|
|
440
425
|
def test_log_adjacency_multiple_vrf_2
|
@@ -453,8 +438,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
453
438
|
assert_equal(:none, vrf_default.log_adjacency,
|
454
439
|
"Error: #{vrf_default.name} vrf_default, " \
|
455
440
|
'log-adjacency get value mismatch')
|
456
|
-
|
457
|
-
routerospf.destroy
|
458
441
|
end
|
459
442
|
|
460
443
|
def test_router_id
|
@@ -468,7 +451,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
468
451
|
|
469
452
|
vrf.router_id = vrf.default_router_id
|
470
453
|
refute_match_vrf_line(vrf.parent.name, vrf.name, pattern)
|
471
|
-
vrf.parent.destroy
|
472
454
|
end
|
473
455
|
|
474
456
|
def test_router_id_multiple_vrf
|
@@ -491,8 +473,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
491
473
|
assert_match_vrf_line(routerospf.name, vrf1.name, pattern)
|
492
474
|
assert_equal(id, vrf1.router_id,
|
493
475
|
"Error: #{vrf1.name} vrf, router-id get value mismatch")
|
494
|
-
|
495
|
-
routerospf.destroy
|
496
476
|
end
|
497
477
|
|
498
478
|
def test_timer_throttle_lsa
|
@@ -505,7 +485,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
505
485
|
assert_equal(lsa, vrf.timer_throttle_lsa,
|
506
486
|
"Error: #{vrf.name} vrf, timer throttle lsa " \
|
507
487
|
'get values mismatch')
|
508
|
-
vrf.parent.destroy
|
509
488
|
end
|
510
489
|
|
511
490
|
def test_timer_throttle_lsa_multiple_vrf
|
@@ -529,8 +508,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
529
508
|
assert_equal(lsa, vrf1.timer_throttle_lsa,
|
530
509
|
"Error: #{vrf1.name} vrf, timer throttle lsa " \
|
531
510
|
'get values mismatch')
|
532
|
-
|
533
|
-
routerospf.destroy
|
534
511
|
end
|
535
512
|
|
536
513
|
def test_get_default_timer_throttle_lsa
|
@@ -548,7 +525,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
548
525
|
'Error: default timer throttle lsa hold not correct')
|
549
526
|
assert_equal(lsa[2], vrf.default_timer_throttle_lsa_max,
|
550
527
|
'Error: default timer throttle lsa max not correct')
|
551
|
-
vrf.parent.destroy
|
552
528
|
end
|
553
529
|
|
554
530
|
def test_timer_throttle_spf
|
@@ -561,7 +537,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
561
537
|
assert_equal(spf, vrf.timer_throttle_spf,
|
562
538
|
"Error: #{vrf.name} vrf, timer throttle spf " \
|
563
539
|
'get values mismatch')
|
564
|
-
vrf.parent.destroy
|
565
540
|
end
|
566
541
|
|
567
542
|
def test_timer_throttle_spf_multiple_vrf
|
@@ -585,8 +560,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
585
560
|
assert_equal(spf, vrf1.timer_throttle_spf,
|
586
561
|
"Error: #{vrf1.name} vrf, timer throttle spf " \
|
587
562
|
'get values mismatch')
|
588
|
-
|
589
|
-
routerospf.destroy
|
590
563
|
end
|
591
564
|
|
592
565
|
def test_get_default_timer_throttle_spf
|
@@ -607,7 +580,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
607
580
|
assert_equal(spf[2], vrf.timer_throttle_spf_max,
|
608
581
|
"Error: #{vrf.name} vrf, " \
|
609
582
|
'default timer throttle max not correct')
|
610
|
-
vrf.parent.destroy
|
611
583
|
end
|
612
584
|
|
613
585
|
def test_create_valid_destroy_default
|
@@ -621,7 +593,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
621
593
|
assert_raises(RuntimeError) do
|
622
594
|
vrf.destroy
|
623
595
|
end
|
624
|
-
routerospf.destroy
|
625
596
|
end
|
626
597
|
|
627
598
|
# rubocop:disable Style/AlignHash
|
@@ -693,7 +664,6 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
693
664
|
"Error: #{vrf.name} vrf, hold timer throttle lsa not correct")
|
694
665
|
assert_equal(5001, vrf.timer_throttle_lsa_max,
|
695
666
|
"Error: #{vrf.name} vrf, max timer throttle lsa not correct")
|
696
|
-
vrf.parent.destroy
|
697
667
|
end
|
698
668
|
|
699
669
|
def test_timer_throttle_spf_start_hold_max
|
@@ -705,11 +675,10 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
705
675
|
"Error: #{vrf.name} vrf, hold timer throttle spf not correct")
|
706
676
|
assert_equal(5001, vrf.timer_throttle_spf_max,
|
707
677
|
"Error: #{vrf.name} vrf, max timer throttle spf not correct")
|
708
|
-
vrf.parent.destroy
|
709
678
|
end
|
710
679
|
|
711
680
|
def test_noninstantiated
|
712
|
-
|
681
|
+
create_routerospf
|
713
682
|
vrf = RouterOspfVrf.new('absent', 'absent', false)
|
714
683
|
vrf.auto_cost
|
715
684
|
vrf.default_metric
|
@@ -717,6 +686,5 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
717
686
|
vrf.router_id
|
718
687
|
vrf.timer_throttle_lsa
|
719
688
|
vrf.timer_throttle_spf
|
720
|
-
routerospf.destroy
|
721
689
|
end
|
722
690
|
end
|
data/tests/test_stp_global.rb
CHANGED
@@ -233,6 +233,8 @@ class TestStpGlobal < CiscoTestCase
|
|
233
233
|
end
|
234
234
|
|
235
235
|
def test_get_set_mst_priorities
|
236
|
+
# TBD: Add N9k-EX to allowed platforms list and use proper _exclude tags
|
237
|
+
skip('TBD: Limited support for N9k-EX') if node.product_id[/N9K.*EX/]
|
236
238
|
global = StpGlobal.new('default')
|
237
239
|
global.mode = 'mst'
|
238
240
|
global.mst_priority = global.default_mst_priority
|
@@ -392,6 +394,8 @@ class TestStpGlobal < CiscoTestCase
|
|
392
394
|
end
|
393
395
|
|
394
396
|
def test_get_set_vlan_priorities
|
397
|
+
# TBD: Add N9k-EX to allowed platforms list and use proper _exclude tags
|
398
|
+
skip('TBD: Limited support for N9k-EX') if node.product_id[/N9K.*EX/]
|
395
399
|
global = StpGlobal.new('default')
|
396
400
|
global.vlan_priority = global.default_vlan_priority
|
397
401
|
global.vlan_root_priority = global.default_vlan_root_priority
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cisco_node_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Gries
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2019-
|
18
|
+
date: 2019-08-19 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: bundler
|
@@ -206,7 +206,6 @@ files:
|
|
206
206
|
- lib/cisco_node_utils/client/nxapi.rb
|
207
207
|
- lib/cisco_node_utils/client/nxapi/client.rb
|
208
208
|
- lib/cisco_node_utils/client/utils.rb
|
209
|
-
- lib/cisco_node_utils/cmd_ref/DEPRECATED.yaml
|
210
209
|
- lib/cisco_node_utils/cmd_ref/README_YAML.md
|
211
210
|
- lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml
|
212
211
|
- lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml
|
@@ -309,7 +308,6 @@ files:
|
|
309
308
|
- lib/cisco_node_utils/hostname.rb
|
310
309
|
- lib/cisco_node_utils/hsrp_global.rb
|
311
310
|
- lib/cisco_node_utils/interface.rb
|
312
|
-
- lib/cisco_node_utils/interface_DEPRECATED.rb
|
313
311
|
- lib/cisco_node_utils/interface_channel_group.rb
|
314
312
|
- lib/cisco_node_utils/interface_evpn_multisite.rb
|
315
313
|
- lib/cisco_node_utils/interface_hsrp_group.rb
|
@@ -362,7 +360,6 @@ files:
|
|
362
360
|
- lib/cisco_node_utils/vdc.rb
|
363
361
|
- lib/cisco_node_utils/version.rb
|
364
362
|
- lib/cisco_node_utils/vlan.rb
|
365
|
-
- lib/cisco_node_utils/vlan_DEPRECATED.rb
|
366
363
|
- lib/cisco_node_utils/vpc.rb
|
367
364
|
- lib/cisco_node_utils/vrf.rb
|
368
365
|
- lib/cisco_node_utils/vrf_af.rb
|
@@ -517,7 +514,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
517
514
|
version: 2.1.0
|
518
515
|
requirements: []
|
519
516
|
rubyforge_project:
|
520
|
-
rubygems_version: 2.5.2.
|
517
|
+
rubygems_version: 2.5.2.3
|
521
518
|
signing_key:
|
522
519
|
specification_version: 4
|
523
520
|
summary: Utilities for management of Cisco network nodes
|
@@ -1,118 +0,0 @@
|
|
1
|
-
# DEPRECATED
|
2
|
-
#
|
3
|
-
###############################################################################
|
4
|
-
# WARNING. DO NOT USE ANY OF THE YAML TAGS IN THIS FILE.
|
5
|
-
# These yaml tags are deprecated and will be removed in future releases.
|
6
|
-
###############################################################################
|
7
|
-
---
|
8
|
-
_template:
|
9
|
-
context: ["interface <name>"]
|
10
|
-
nexus:
|
11
|
-
get_command: "show running interface all"
|
12
|
-
|
13
|
-
private_vlan_any:
|
14
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_any'
|
15
|
-
multiple:
|
16
|
-
get_value: '/switchport private-vlan/'
|
17
|
-
|
18
|
-
private_vlan_association:
|
19
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_association'
|
20
|
-
_exclude: [N3k-F, N9k-F]
|
21
|
-
multiple: true
|
22
|
-
get_command: "show vlan private-vlan"
|
23
|
-
get_context: ~
|
24
|
-
get_value: '/^<id>\s+(\d+)/'
|
25
|
-
set_context: ['vlan <vlan>']
|
26
|
-
set_value: "<state> private-vlan association <vlans> ; end"
|
27
|
-
default_value: []
|
28
|
-
|
29
|
-
private_vlan_mapping:
|
30
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_mapping'
|
31
|
-
_exclude: [ios_xr, N3k-F, N9k-F]
|
32
|
-
multiple: true
|
33
|
-
get_value: '/^private-vlan mapping (.*)$/'
|
34
|
-
set_value: "<state> private-vlan mapping <vlans>"
|
35
|
-
default_value: []
|
36
|
-
|
37
|
-
private_vlan_type:
|
38
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_type'
|
39
|
-
_exclude: [N3k-F, N9k-F]
|
40
|
-
kind: string
|
41
|
-
get_command: 'show vlan private-vlan type'
|
42
|
-
get_context: ~
|
43
|
-
get_value: '/^<id>\s+(\S+)/'
|
44
|
-
set_context: ['vlan <vlan>']
|
45
|
-
set_value: "<state> private-vlan <type> ; end"
|
46
|
-
default_value: ""
|
47
|
-
|
48
|
-
switchport_mode_private_vlan_host:
|
49
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_host'
|
50
|
-
_exclude: [ios_xr, N3k-F, N9k-F]
|
51
|
-
get_value: '/^switchport mode private-vlan (.*)$/'
|
52
|
-
set_value: "<state> switchport mode private-vlan <mode>"
|
53
|
-
default_value: :disabled
|
54
|
-
|
55
|
-
switchport_mode_private_vlan_host_association:
|
56
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_host_association'
|
57
|
-
_exclude: [ios_xr, N3k-F, N9k-F]
|
58
|
-
multiple: true
|
59
|
-
get_value: '/^switchport private-vlan host-association (.*)$/'
|
60
|
-
set_value: "<state> switchport private-vlan host-association <vlan_pr> <vlan_sec>"
|
61
|
-
default_value: []
|
62
|
-
|
63
|
-
switchport_mode_private_vlan_host_promiscous:
|
64
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_promiscuous'
|
65
|
-
_exclude: [ios_xr, N3k-F, N9k-F]
|
66
|
-
multiple: true
|
67
|
-
get_value: '/^switchport private-vlan mapping (\d+.*)$/'
|
68
|
-
set_value: "<state> switchport private-vlan mapping <vlan_pr> <vlans>"
|
69
|
-
default_value: []
|
70
|
-
|
71
|
-
switchport_mode_private_vlan_trunk_promiscuous:
|
72
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_promiscuous'
|
73
|
-
_exclude: [ios_xr, N3k, N3k-F, N9k-F]
|
74
|
-
kind: boolean
|
75
|
-
get_value: '/^switchport mode private-vlan trunk promiscuous$/'
|
76
|
-
set_value: "<state> switchport mode private-vlan trunk promiscuous"
|
77
|
-
default_value: false
|
78
|
-
|
79
|
-
switchport_mode_private_vlan_trunk_secondary:
|
80
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_secondary'
|
81
|
-
_exclude: [ios_xr, N3k, N3k-F, N9k-F]
|
82
|
-
kind: boolean
|
83
|
-
get_value: '/^switchport mode private-vlan trunk secondary$/'
|
84
|
-
set_value: "<state> switchport mode private-vlan trunk secondary"
|
85
|
-
default_value: false
|
86
|
-
|
87
|
-
switchport_private_vlan_association_trunk:
|
88
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_association'
|
89
|
-
_exclude: [ios_xr, N3k, N3k-F, N9k-F]
|
90
|
-
multiple: true
|
91
|
-
#get_value: '/^switchport private-vlan association trunk (.*) (.*)$/'
|
92
|
-
get_value: '/^switchport private-vlan association trunk (.*)$/'
|
93
|
-
set_value: "<state> switchport private-vlan association trunk <vlan_pr> <vlan>"
|
94
|
-
default_value: []
|
95
|
-
|
96
|
-
switchport_private_vlan_mapping_trunk:
|
97
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_mapping_trunk'
|
98
|
-
_exclude: [ios_xr, N3k, N3k-F, N9k-F]
|
99
|
-
multiple: true
|
100
|
-
get_value: '/^switchport private-vlan mapping trunk (.*)$/'
|
101
|
-
set_value: "<state> switchport private-vlan mapping trunk <vlan_pr> <vlans>"
|
102
|
-
default_value: []
|
103
|
-
|
104
|
-
switchport_private_vlan_trunk_allowed_vlan:
|
105
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_allowed_vlan'
|
106
|
-
_exclude: [ios_xr, N3k-F, N9k-F]
|
107
|
-
multiple: true
|
108
|
-
get_value: '/^switchport private-vlan trunk allowed vlan (.*)$/'
|
109
|
-
set_value: "<state> switchport private-vlan trunk allowed vlan <oper> <vlans>"
|
110
|
-
default_value: []
|
111
|
-
|
112
|
-
switchport_private_vlan_trunk_native_vlan:
|
113
|
-
# DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_native_vlan'
|
114
|
-
_exclude: [ios_xr, N3k-F, N9k-F]
|
115
|
-
kind: int
|
116
|
-
get_value: '/^switchport private-vlan trunk native vlan (.*)$/'
|
117
|
-
set_value: "<state> switchport private-vlan trunk native vlan <vlan>"
|
118
|
-
default_value: 1
|