cisco_node_utils 1.4.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +8 -7
  4. data/docs/README-maintainers.md +0 -1
  5. data/lib/cisco_node_utils/aaa_authentication_login_service.rb +2 -2
  6. data/lib/cisco_node_utils/bgp.rb +2 -2
  7. data/lib/cisco_node_utils/cisco_cmn_utils.rb +16 -0
  8. data/lib/cisco_node_utils/client/utils.rb +7 -1
  9. data/lib/cisco_node_utils/cmd_ref/DEPRECATED.yaml +12 -12
  10. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +35 -7
  11. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +1 -1
  12. data/lib/cisco_node_utils/cmd_ref/bfd_global.yaml +4 -4
  13. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +1 -1
  14. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +1 -1
  15. data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +1 -1
  16. data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +1 -1
  17. data/lib/cisco_node_utils/cmd_ref/dhcp_relay_global.yaml +5 -5
  18. data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +1 -1
  19. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +5 -5
  20. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +1 -1
  21. data/lib/cisco_node_utils/cmd_ref/feature.yaml +8 -3
  22. data/lib/cisco_node_utils/cmd_ref/hsrp_global.yaml +25 -0
  23. data/lib/cisco_node_utils/cmd_ref/interface.yaml +65 -14
  24. data/lib/cisco_node_utils/cmd_ref/interface_hsrp_group.yaml +117 -0
  25. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +1 -1
  26. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +1 -1
  27. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +4 -8
  28. data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +1 -1
  29. data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +1 -1
  30. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +1 -1
  31. data/lib/cisco_node_utils/cmd_ref/pim.yaml +6 -0
  32. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +9 -9
  33. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +1 -1
  34. data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +8 -8
  35. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +1 -1
  36. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +16 -8
  37. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +11 -11
  38. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +2 -1
  39. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +1 -1
  40. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +1 -1
  41. data/lib/cisco_node_utils/command_reference.rb +8 -1
  42. data/lib/cisco_node_utils/domain_name.rb +17 -2
  43. data/lib/cisco_node_utils/feature.rb +14 -0
  44. data/lib/cisco_node_utils/hsrp_global.rb +97 -0
  45. data/lib/cisco_node_utils/interface.rb +146 -0
  46. data/lib/cisco_node_utils/interface_hsrp_group.rb +544 -0
  47. data/lib/cisco_node_utils/node.rb +93 -4
  48. data/lib/cisco_node_utils/pim.rb +17 -0
  49. data/lib/cisco_node_utils/portchannel_global.rb +2 -2
  50. data/lib/cisco_node_utils/version.rb +1 -1
  51. data/lib/cisco_node_utils/vlan.rb +2 -5
  52. data/lib/cisco_node_utils/yum.rb +11 -6
  53. data/spec/schema.yaml +3 -3
  54. data/tests/ciscotest.rb +25 -4
  55. data/tests/cmd_config.yaml +0 -2
  56. data/tests/test_bgp_af.rb +13 -2
  57. data/tests/test_feature.rb +5 -0
  58. data/tests/test_hsrp_global.rb +79 -0
  59. data/tests/test_interface.rb +23 -0
  60. data/tests/test_interface_hsrp.rb +134 -0
  61. data/tests/test_interface_hsrp_group.rb +582 -0
  62. data/tests/test_node_ext.rb +7 -1
  63. data/tests/test_pim.rb +27 -3
  64. data/tests/test_platform.rb +1 -1
  65. data/tests/test_radius_global.rb +4 -5
  66. data/tests/test_radius_server.rb +16 -11
  67. data/tests/test_router_bgp.rb +11 -6
  68. data/tests/test_router_ospf_area.rb +6 -6
  69. data/tests/test_tacacs_server.rb +2 -2
  70. data/tests/test_tacacs_server_host.rb +2 -2
  71. data/tests/test_vlan.rb +14 -0
  72. data/tests/test_yum.rb +2 -2
  73. data/tests/yum_package.yaml +4 -0
  74. metadata +10 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 564e7f738b94277341aac0cd79f9969311c1e7cd
4
- data.tar.gz: 93ae60e8ff3348f14d1f7ad98125ad06bd535a1a
3
+ metadata.gz: a52015dedc4b7c5bf4c0124dced507351aecfbe1
4
+ data.tar.gz: 68b52a70c7478034e0a8ce9913e181bda17896bf
5
5
  SHA512:
6
- metadata.gz: 8cde277306e924d1f0edce1549b6f3e835fb389098005770258ab3e4dd7c2b0301b22291516b174d44f270dd9d0041fd81356f8aed8c9ed91e88287eb5b89328
7
- data.tar.gz: dcc9931ea33f770f3864a07c3b9e1859df09a7aa52e5003f97a0bd956fa0379e29d8970949732a8ece42eb92b82eb1f1e599cf6e2878e7339b15e502e91ebb6e
6
+ metadata.gz: 408c48ce5a0bf93fbcf5f5c10d24717561e475a03b8d6ca4fad6a49c4d237b6a20be6bfbdd4143deecec8a210a1916a7910efd29442ba13a9e67dde219f9070e
7
+ data.tar.gz: 4a436ce2bba7bdd3ecf5104a812605b0c3c7c557357c903574c48f018fcc938a8623c580732952b088689186ce77e26a8e4301c3399d970b84a00636a7b5fccd
data/CHANGELOG.md CHANGED
@@ -1,6 +1,34 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## [v1.5.0]
5
+
6
+ ### New feature support
7
+ * Drill down capability into structured table output using command reference yaml (@mikewiebe)
8
+
9
+ #### Cisco Resources
10
+ * Hot Standby Router Protocol
11
+ * hsrp_global (@saichint)
12
+ * interface_hsrp_group (@saichint)
13
+
14
+ ### Added
15
+
16
+ * Extend interface with attributes:
17
+ * `hsrp_bfd`
18
+ * `hsrp_delay_minimum`
19
+ * `hsrp_delay_reload`
20
+ * `hsrp_mac_refresh`
21
+ * `hsrp_use_bia`
22
+ * `hsrp_version`
23
+ * `pim_bfd`
24
+ * Extend pim with attributes:
25
+ * `bfd`
26
+ * Added support for Cisco NX-OS software releases `7.3(0)F1(1)` and `8.0(1)`
27
+
28
+ ### Changed
29
+
30
+ ### Removed
31
+
4
32
  ## [v1.4.1]
5
33
 
6
34
  ### Added
@@ -51,6 +79,7 @@ Changelog
51
79
  * `bfd`
52
80
  * Extend bgp_neighbor with attributes:
53
81
  * `bfd`
82
+ * Cisco Nexus 8xxx platform support added to existing classes
54
83
 
55
84
  ### Changed
56
85
  * Deprecated `vlan` private-vlan properties and replaced with new methods. New file `vlan_DEPRECATED.rb` has been created to store the deprecated methods. The old -> new properties are:
@@ -368,6 +397,7 @@ Changelog
368
397
  [git-flow]: https://github.com/petervanderdoes/gitflow-avh
369
398
  [SimpleCov]: https://github.com/colszowka/simplecov
370
399
 
400
+ [v1.5.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.4.1...v1.5.0
371
401
  [v1.4.1]: https://github.com/cisco/cisco-network-node-utils/compare/v1.4.0...v1.4.1
372
402
  [v1.4.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.3.0...v1.4.0
373
403
  [v1.3.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.2.0...v1.3.0
data/README.md CHANGED
@@ -40,13 +40,14 @@ open source management tools.
40
40
 
41
41
  This CiscoNodeUtils gem release supports the following:
42
42
 
43
- Platform | OS | OS Version |
44
- -----------------|--------|----------------------|
45
- Cisco Nexus N9k | NX-OS | 7.0(3)I2(1) and later
46
- Cisco Nexus N3k | NX-OS | 7.0(3)I2(1) and later
47
- Cisco Nexus N5k | NX-OS | 7.3(0)N1(1) and later
48
- Cisco Nexus N6k | NX-OS | 7.3(0)N1(1) and later
49
- Cisco Nexus N7k | NX-OS | 7.3(0)D1(1) and later
43
+ Platform | OS | OS Version |
44
+ ------------------|--------|----------------------|
45
+ Cisco Nexus N9k | NX-OS | 7.0(3)I2(1) and later
46
+ Cisco Nexus N3k | NX-OS | 7.0(3)I2(1) and later
47
+ Cisco Nexus N5k | NX-OS | 7.3(0)N1(1) and later
48
+ Cisco Nexus N6k | NX-OS | 7.3(0)N1(1) and later
49
+ Cisco Nexus N7k | NX-OS | 7.3(0)D1(1) and later
50
+ Cisco Nexus N9K-F | NX-OS | 7.0(3)F1(1) and later
50
51
 
51
52
  Please note: For Cisco Nexus 3k and 9k platforms, a virtual Nexus N9000/N3000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can obtain a copy of a virtual Nexus N9000/N3000 by sending their [cisco.com](http://cisco.com) user ID in an email to <get-n9kv@cisco.com>. If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
52
53
 
@@ -48,7 +48,6 @@ When we are considering publishing a new release, all of the following steps mus
48
48
  - N56xx
49
49
  - N6xxx
50
50
  - N7xxx
51
- - N8xxx
52
51
  - N9xxx
53
52
 
54
53
  3. Triage any minitest failures.
@@ -58,8 +58,8 @@ module Cisco
58
58
  if g_str.empty?
59
59
  # cannot remove default local, so do nothing in this case
60
60
  unless m == :local
61
- unless node.product_id[/N8/]
62
- # TBD: These 'no' commands currently error on N8k
61
+ unless node.product_id[/N9K-F/]
62
+ # TBD: These 'no' commands currently error on N9K-F
63
63
  # no aaa authentication login console local
64
64
  # no aaa authentication login console none
65
65
  config_set('aaa_auth_login_service', 'method',
@@ -513,7 +513,7 @@ module Cisco
513
513
 
514
514
  def default_event_history_events
515
515
  if Utils.image_version?(/7.0.3.I2|I3|I4/) ||
516
- Utils.chassis_pid?(/N(5|6|7|8)/)
516
+ node.product_id[/(N5|N6|N7|N9.*-F)/]
517
517
  config_get_default('bgp', 'event_history_events')
518
518
  else
519
519
  config_get('bgp', 'event_history_events_bytes', @get_args)
@@ -574,7 +574,7 @@ module Cisco
574
574
 
575
575
  def default_event_history_periodic
576
576
  if Utils.image_version?(/7.0.3.I2|I3|I4/) ||
577
- Utils.chassis_pid?(/N(5|6|7|8)/)
577
+ node.product_id[/(N5|N6|N7|N9.*-F)/]
578
578
  config_get_default('bgp', 'event_history_periodic')
579
579
  else
580
580
  config_get('bgp', 'event_history_periodic_bytes', @get_args)
@@ -360,5 +360,21 @@ module Cisco
360
360
  end
361
361
  merged
362
362
  end # merge_range
363
+
364
+ # Add double quotes to string.
365
+ #
366
+ # Helper method to add a double quote to the beginning
367
+ # and end of a string.
368
+ #
369
+ # Nxapi adds an escape character to config lines that
370
+ # nvgen in this way in some but not all nxos releases.
371
+ #
372
+ # Input: String (Example 'foo')
373
+ # Returns: String with double quotes: (Example: '"foo"'
374
+ #
375
+ def self.add_quotes(string)
376
+ string = "\"#{string}\"" if image_version?(/8.0/)
377
+ string
378
+ end
363
379
  end # class Utils
364
380
  end # module Cisco
@@ -144,7 +144,13 @@ class Cisco::Client
144
144
  fail "No match found for #{filter}" if data.length == 0
145
145
  data = data[0]
146
146
  else # data is array or hash
147
- filter = filter.to_i if data.is_a? Array
147
+ if data.is_a? Array
148
+ final = []
149
+ data.each do |row|
150
+ final << row[filter]
151
+ end
152
+ return final
153
+ end
148
154
  fail "No key \"#{filter}\" in #{data}" if data[filter].nil?
149
155
  data = data[filter]
150
156
  end
@@ -17,7 +17,7 @@ private_vlan_any:
17
17
 
18
18
  private_vlan_association:
19
19
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_association'
20
- _exclude: [N8k]
20
+ _exclude: [N9k-F]
21
21
  multiple: true
22
22
  get_command: "show vlan private-vlan"
23
23
  get_context: ~
@@ -28,7 +28,7 @@ private_vlan_association:
28
28
 
29
29
  private_vlan_mapping:
30
30
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_mapping'
31
- _exclude: [ios_xr, N8k]
31
+ _exclude: [ios_xr, N9k-F]
32
32
  multiple: true
33
33
  get_value: '/^private-vlan mapping (.*)$/'
34
34
  set_value: "<state> private-vlan mapping <vlans>"
@@ -36,7 +36,7 @@ private_vlan_mapping:
36
36
 
37
37
  private_vlan_type:
38
38
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_type'
39
- _exclude: [N8k]
39
+ _exclude: [N9k-F]
40
40
  kind: string
41
41
  get_command: 'show vlan private-vlan type'
42
42
  get_context: ~
@@ -47,14 +47,14 @@ private_vlan_type:
47
47
 
48
48
  switchport_mode_private_vlan_host:
49
49
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_host'
50
- _exclude: [ios_xr, N8k]
50
+ _exclude: [ios_xr, N9k-F]
51
51
  get_value: '/^switchport mode private-vlan (.*)$/'
52
52
  set_value: "<state> switchport mode private-vlan <mode>"
53
53
  default_value: :disabled
54
54
 
55
55
  switchport_mode_private_vlan_host_association:
56
56
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_host_association'
57
- _exclude: [ios_xr, N8k]
57
+ _exclude: [ios_xr, N9k-F]
58
58
  multiple: true
59
59
  get_value: '/^switchport private-vlan host-association (.*)$/'
60
60
  set_value: "<state> switchport private-vlan host-association <vlan_pr> <vlan_sec>"
@@ -62,7 +62,7 @@ switchport_mode_private_vlan_host_association:
62
62
 
63
63
  switchport_mode_private_vlan_host_promiscous:
64
64
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_promiscuous'
65
- _exclude: [ios_xr, N8k]
65
+ _exclude: [ios_xr, N9k-F]
66
66
  multiple: true
67
67
  get_value: '/^switchport private-vlan mapping (\d+.*)$/'
68
68
  set_value: "<state> switchport private-vlan mapping <vlan_pr> <vlans>"
@@ -70,7 +70,7 @@ switchport_mode_private_vlan_host_promiscous:
70
70
 
71
71
  switchport_mode_private_vlan_trunk_promiscuous:
72
72
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_promiscuous'
73
- _exclude: [ios_xr, N3k, N8k]
73
+ _exclude: [ios_xr, N3k, N9k-F]
74
74
  kind: boolean
75
75
  get_value: '/^switchport mode private-vlan trunk promiscuous$/'
76
76
  set_value: "<state> switchport mode private-vlan trunk promiscuous"
@@ -78,7 +78,7 @@ switchport_mode_private_vlan_trunk_promiscuous:
78
78
 
79
79
  switchport_mode_private_vlan_trunk_secondary:
80
80
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_secondary'
81
- _exclude: [ios_xr, N3k, N8k]
81
+ _exclude: [ios_xr, N3k, N9k-F]
82
82
  kind: boolean
83
83
  get_value: '/^switchport mode private-vlan trunk secondary$/'
84
84
  set_value: "<state> switchport mode private-vlan trunk secondary"
@@ -86,7 +86,7 @@ switchport_mode_private_vlan_trunk_secondary:
86
86
 
87
87
  switchport_private_vlan_association_trunk:
88
88
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_association'
89
- _exclude: [ios_xr, N3k, N8k]
89
+ _exclude: [ios_xr, N3k, N9k-F]
90
90
  multiple: true
91
91
  #get_value: '/^switchport private-vlan association trunk (.*) (.*)$/'
92
92
  get_value: '/^switchport private-vlan association trunk (.*)$/'
@@ -95,7 +95,7 @@ switchport_private_vlan_association_trunk:
95
95
 
96
96
  switchport_private_vlan_mapping_trunk:
97
97
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_mapping_trunk'
98
- _exclude: [ios_xr, N3k, N8k]
98
+ _exclude: [ios_xr, N3k, N9k-F]
99
99
  multiple: true
100
100
  get_value: '/^switchport private-vlan mapping trunk (.*)$/'
101
101
  set_value: "<state> switchport private-vlan mapping trunk <vlan_pr> <vlans>"
@@ -103,7 +103,7 @@ switchport_private_vlan_mapping_trunk:
103
103
 
104
104
  switchport_private_vlan_trunk_allowed_vlan:
105
105
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_allowed_vlan'
106
- _exclude: [ios_xr, N8k]
106
+ _exclude: [ios_xr, N9k-F]
107
107
  multiple: true
108
108
  get_value: '/^switchport private-vlan trunk allowed vlan (.*)$/'
109
109
  set_value: "<state> switchport private-vlan trunk allowed vlan <oper> <vlans>"
@@ -111,7 +111,7 @@ switchport_private_vlan_trunk_allowed_vlan:
111
111
 
112
112
  switchport_private_vlan_trunk_native_vlan:
113
113
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_native_vlan'
114
- _exclude: [ios_xr, N8k]
114
+ _exclude: [ios_xr, N9k-F]
115
115
  kind: int
116
116
  get_value: '/^switchport private-vlan trunk native vlan (.*)$/'
117
117
  set_value: "<state> switchport private-vlan trunk native vlan <vlan>"
@@ -329,8 +329,8 @@ productid:
329
329
  ios_xr:
330
330
  get_value: '/PID: ([^ ,]+)/'
331
331
  nexus:
332
- get_context: ["TABLE_inv", "ROW_inv", 0]
333
- get_value: "productid"
332
+ get_context: ["TABLE_inv", "ROW_inv"]
333
+ get_value: ["name Chassis", "productid"]
334
334
  ```
335
335
 
336
336
  Using platform variants and product variants together:
@@ -361,7 +361,7 @@ productid:
361
361
  get_command: 'show inventory'
362
362
  nexus:
363
363
  get_data_format: nxapi_structured
364
- get_context: ['TABLE_inv', 'ROW_inv', 0]
364
+ get_context: ['TABLE_inv', 'ROW_inv']
365
365
  ```
366
366
 
367
367
  ### `get_command`
@@ -378,7 +378,7 @@ area:
378
378
 
379
379
  ### `get_context`
380
380
 
381
- `get_context` is an optional sequence of tokens used to filter the output from the `get_command` down to the desired context where the `get_value` can be found. For CLI properties, these tokens are implicitly Regexps used to filter down through the hierarchical CLI output, while for `nxapi_structured` properties, the tokens are used as string keys.
381
+ `get_context` is an optional sequence of tokens used to filter the output from the `get_command` down to the desired context where the `get_value` can be found. For CLI properties, these tokens are implicitly Regexps used to filter down through the hierarchical CLI output, while for `nxapi_structured` properties, the tokens are used as string keys. For `nxapi_structured` properties, both `get_context` and `get_value` can specify a sequence of tokens used to filter the output from the `get_command` down to the desired `get_value`. This feature can be used to retrieve data from `TABLE` data the contains multiple `ROWS`.
382
382
 
383
383
 
384
384
  ```yaml
@@ -387,10 +387,38 @@ productid:
387
387
  get_command: 'show inventory'
388
388
  nexus:
389
389
  get_data_format: nxapi_structured
390
- get_context: ['TABLE_inv', 'ROW_inv', 0]
391
- get_value: 'productid'
390
+ get_context: ['TABLE_inv', 'ROW_inv']
391
+ get_value: ["name Chassis", "productid"]
392
392
  # config_get('inventory', 'productid') returns
393
- # structured_output['TABLE_inv']['ROW_inv'][0]['productid']
393
+ # 'productid' for the row that contains 'name Chassis'
394
+ ```
395
+
396
+ ```yaml
397
+ # vlan.yaml
398
+ name:
399
+ get_command: "show vlan brief"
400
+ nexus:
401
+ kind: string
402
+ get_data_format: nxapi_structured
403
+ get_context: ["TABLE_vlanbriefxbrief", "ROW_vlanbriefxbrief"]
404
+ get_value: ["vlanshowbr-vlanid-utf <vlanid>", "vlanshowbr-vlanname"]
405
+ # config_get('vlan', 'name', @vlan_id) returns
406
+ # 'vlanshowbr-vlanname' for @vlan_id.
407
+ # NOTE: `<vlanid>` in the `get_value` is replaced by `@vlan_id` prior to lookup.
408
+ ```
409
+
410
+ ```yaml
411
+ # vlan.yaml
412
+ shutdown:
413
+ get_command: "show vlan brief"
414
+ nexus:
415
+ kind: boolean
416
+ get_data_format: nxapi_structured
417
+ get_context: ["TABLE_vlanbriefxbrief", "ROW_vlanbriefxbrief"]
418
+ get_value: ["vlanshowbr-vlanid-utf <vlanid>", "vlanshowbr-shutstate", '/^shutdown$/']
419
+ # config_get('vlan', 'shutdown', @vlan_id) returns
420
+ # true if data in 'vlanshowbr-shutstate' matches regex '/^shutdown$/' else false.
421
+ # NOTE: `<vlanid>` in the `get_value` is replaced by `@vlan_id` prior to lookup.
394
422
  ```
395
423
 
396
424
  ```yaml
@@ -28,7 +28,7 @@ remove_local_auth:
28
28
  N3k: &remove_local_allowed
29
29
  default_only: true
30
30
  N9k: *remove_local_allowed
31
- N8k: *remove_local_allowed
31
+ N9k-F: *remove_local_allowed
32
32
  N5k: *remove_local_allowed
33
33
  N6k: *remove_local_allowed
34
34
  N7k: *remove_local_allowed
@@ -23,27 +23,27 @@ echo_rx_interval:
23
23
  default_value: 50
24
24
 
25
25
  fabricpath_interval:
26
- _exclude: [N3k, N8k, N9k]
26
+ _exclude: [N3k, N9k-F, N9k]
27
27
  get_value: '/^bfd fabricpath interval (\d+) min_rx (\d+) multiplier (\d+)$/'
28
28
  set_value: '<state> bfd fabricpath interval <interval> min_rx <min_rx> multiplier <multiplier>'
29
29
  default_value: ['50', '50', '3']
30
30
 
31
31
  fabricpath_slow_timer:
32
- _exclude: [N3k, N8k, N9k]
32
+ _exclude: [N3k, N9k-F, N9k]
33
33
  kind: int
34
34
  get_value: '/^bfd fabricpath slow-timer (\d+)$/'
35
35
  set_value: '<state> bfd fabricpath slow-timer <timer>'
36
36
  default_value: 2000
37
37
 
38
38
  fabricpath_vlan:
39
- _exclude: [N3k, N8k, N9k]
39
+ _exclude: [N3k, N9k-F, N9k]
40
40
  kind: int
41
41
  get_value: '/^bfd fabricpath vlan (\d+)$/'
42
42
  set_value: '<state> bfd fabricpath vlan <vlan>'
43
43
  default_value: 1
44
44
 
45
45
  interval:
46
- _exclude: [N8k, N9k] # TBD: bug on n8k, n9k this is not working now
46
+ _exclude: [N9k-F, N9k] # TBD: bug on n9k-f, n9k this is not working now
47
47
  get_value: '/^bfd interval (\d+) min_rx (\d+) multiplier (\d+)$/'
48
48
  set_value: '<state> bfd interval <interval> min_rx <min_rx> multiplier <multiplier>'
49
49
  N3k:
@@ -11,7 +11,7 @@ _template:
11
11
  get_command: 'show running-config router bgp'
12
12
 
13
13
  additional_paths_install:
14
- _exclude: [ios_xr, N3k, N8k, N9k]
14
+ _exclude: [ios_xr, N3k, N9k-F, N9k]
15
15
  kind: boolean
16
16
  get_value: '/^additional-paths install backup$/'
17
17
  set_value: '<state> additional-paths install backup'
@@ -189,7 +189,7 @@ soft_reconfiguration_in:
189
189
  get_value: '/^soft-reconfiguration inbound(?: always)?/'
190
190
  set_value: '<state> soft-reconfiguration inbound <always>'
191
191
  N3k: *soft_recon_always
192
- N8k: *soft_recon_always
192
+ N9k-F: *soft_recon_always
193
193
  N9k: *soft_recon_always
194
194
  else:
195
195
  get_value: '/^soft-reconfiguration inbound/'
@@ -1,7 +1,7 @@
1
1
  # bridge_domain
2
2
  # bridge_domain feature is available only on n7k
3
3
  ---
4
- _exclude: [N3k, N5k, N6k, N8k, N9k, ios_xr]
4
+ _exclude: [N3k, N5k, N6k, N9k-F, N9k, ios_xr]
5
5
 
6
6
  # For the below name, shutdown commands we are going to use show running-config
7
7
  # bridge-domain cli which displays as below
@@ -1,6 +1,6 @@
1
1
  # bridge_domain
2
2
  ---
3
- _exclude: [N3k, N5k, N6k, N8k, N9k, ios_xr]
3
+ _exclude: [N3k, N5k, N6k, N9k-F, N9k, ios_xr]
4
4
 
5
5
  create:
6
6
  set_value: "bridge-domain <bd>"
@@ -47,7 +47,7 @@ ipv4_relay:
47
47
  default_value: false
48
48
  N6k: *relay_default_false
49
49
  N7k: *relay_default_true
50
- N8k: *relay_default_true
50
+ N9k-F: *relay_default_true
51
51
  N9k: *relay_default_true
52
52
 
53
53
  ipv4_smart_relay:
@@ -57,7 +57,7 @@ ipv4_smart_relay:
57
57
  default_value: false
58
58
 
59
59
  ipv4_src_addr_hsrp:
60
- _exclude: [N3k, N8k, N9k]
60
+ _exclude: [N3k, N9k-F, N9k]
61
61
  kind: boolean
62
62
  get_value: '/^ip dhcp relay source-address hsrp$/'
63
63
  set_value: "<state> ip dhcp relay source-address hsrp"
@@ -69,14 +69,14 @@ ipv4_src_intf:
69
69
  default_value: false
70
70
 
71
71
  ipv4_sub_option_circuit_id_custom:
72
- _exclude: [N7k, N8k]
72
+ _exclude: [N7k, N9k-F]
73
73
  kind: boolean
74
74
  get_value: '/^ip dhcp relay sub-option circuit-id customized$/'
75
75
  set_value: "<state> ip dhcp relay sub-option circuit-id customized"
76
76
  default_value: false
77
77
 
78
78
  ipv4_sub_option_circuit_id_string:
79
- _exclude: [N5k, N6k, N7k, N8k, N9k]
79
+ _exclude: [N5k, N6k, N7k, N9k-F, N9k]
80
80
  get_value: '/^ip dhcp relay sub-option circuit-id format-type string format (.*)$/'
81
81
  set_value: "<state> ip dhcp relay sub-option circuit-id format-type string <format> <word>"
82
82
  default_value: false
@@ -116,7 +116,7 @@ ipv6_relay:
116
116
  default_value: false
117
117
  N6k: *v6_relay_default_false
118
118
  N7k: *v6_relay_default_true
119
- N8k: *v6_relay_default_true
119
+ N9k-F: *v6_relay_default_true
120
120
  N9k: *v6_relay_default_true
121
121
 
122
122
  ipv6_src_intf: