cisco_node_utils 1.4.1 → 1.5.0
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/CHANGELOG.md +30 -0
- data/README.md +8 -7
- data/docs/README-maintainers.md +0 -1
- data/lib/cisco_node_utils/aaa_authentication_login_service.rb +2 -2
- data/lib/cisco_node_utils/bgp.rb +2 -2
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +16 -0
- data/lib/cisco_node_utils/client/utils.rb +7 -1
- data/lib/cisco_node_utils/cmd_ref/DEPRECATED.yaml +12 -12
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +35 -7
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/bfd_global.yaml +4 -4
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/dhcp_relay_global.yaml +5 -5
- data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +5 -5
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +8 -3
- data/lib/cisco_node_utils/cmd_ref/hsrp_global.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +65 -14
- data/lib/cisco_node_utils/cmd_ref/interface_hsrp_group.yaml +117 -0
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +4 -8
- data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/pim.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +9 -9
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +8 -8
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +16 -8
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +11 -11
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +2 -1
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +1 -1
- data/lib/cisco_node_utils/command_reference.rb +8 -1
- data/lib/cisco_node_utils/domain_name.rb +17 -2
- data/lib/cisco_node_utils/feature.rb +14 -0
- data/lib/cisco_node_utils/hsrp_global.rb +97 -0
- data/lib/cisco_node_utils/interface.rb +146 -0
- data/lib/cisco_node_utils/interface_hsrp_group.rb +544 -0
- data/lib/cisco_node_utils/node.rb +93 -4
- data/lib/cisco_node_utils/pim.rb +17 -0
- data/lib/cisco_node_utils/portchannel_global.rb +2 -2
- data/lib/cisco_node_utils/version.rb +1 -1
- data/lib/cisco_node_utils/vlan.rb +2 -5
- data/lib/cisco_node_utils/yum.rb +11 -6
- data/spec/schema.yaml +3 -3
- data/tests/ciscotest.rb +25 -4
- data/tests/cmd_config.yaml +0 -2
- data/tests/test_bgp_af.rb +13 -2
- data/tests/test_feature.rb +5 -0
- data/tests/test_hsrp_global.rb +79 -0
- data/tests/test_interface.rb +23 -0
- data/tests/test_interface_hsrp.rb +134 -0
- data/tests/test_interface_hsrp_group.rb +582 -0
- data/tests/test_node_ext.rb +7 -1
- data/tests/test_pim.rb +27 -3
- data/tests/test_platform.rb +1 -1
- data/tests/test_radius_global.rb +4 -5
- data/tests/test_radius_server.rb +16 -11
- data/tests/test_router_bgp.rb +11 -6
- data/tests/test_router_ospf_area.rb +6 -6
- data/tests/test_tacacs_server.rb +2 -2
- data/tests/test_tacacs_server_host.rb +2 -2
- data/tests/test_vlan.rb +14 -0
- data/tests/test_yum.rb +2 -2
- data/tests/yum_package.yaml +4 -0
- metadata +10 -3
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # fabricpath
         | 
| 2 2 | 
             
            ---
         | 
| 3 | 
            -
            _exclude: [N3k,  | 
| 3 | 
            +
            _exclude: [N3k, N9k-F, N9k, ios_xr]
         | 
| 4 4 |  | 
| 5 5 | 
             
            aggregate_multicast_routes:
         | 
| 6 6 | 
             
              _exclude: [N5k, N6k]
         | 
| @@ -82,8 +82,8 @@ loadbalance_multicast_has_vlan: | |
| 82 82 | 
             
              _exclude: [N5k, N6k]
         | 
| 83 83 | 
             
              kind: boolean
         | 
| 84 84 | 
             
              auto_default: false
         | 
| 85 | 
            -
              get_command:  | 
| 86 | 
            -
              get_value: '/^ | 
| 85 | 
            +
              get_command: "show fabricpath load-balance | begin Ftag"
         | 
| 86 | 
            +
              get_value: '/^Use VLAN: TRUE/'
         | 
| 87 87 | 
             
              default_value: true
         | 
| 88 88 |  | 
| 89 89 | 
             
            loadbalance_multicast_reset:
         | 
| @@ -104,8 +104,8 @@ loadbalance_multicast_set: | |
| 104 104 | 
             
            loadbalance_unicast_has_vlan:
         | 
| 105 105 | 
             
              kind: boolean
         | 
| 106 106 | 
             
              auto_default: false
         | 
| 107 | 
            -
              get_command:  | 
| 108 | 
            -
              get_value: '/^ | 
| 107 | 
            +
              get_command: "show fabricpath load-balance | begin ECMP next 4"
         | 
| 108 | 
            +
              get_value: '/^Use VLAN: TRUE/'
         | 
| 109 109 | 
             
              set_value: "<state> fabricpath load-balance unicast include-vlan"
         | 
| 110 110 | 
             
              default_value: true
         | 
| 111 111 |  | 
| @@ -21,7 +21,7 @@ dhcp: | |
| 21 21 | 
             
              set_value: "feature dhcp"
         | 
| 22 22 |  | 
| 23 23 | 
             
            fabric:
         | 
| 24 | 
            -
              _exclude: [N3k,  | 
| 24 | 
            +
              _exclude: [N3k, N9k-F, N9k]
         | 
| 25 25 | 
             
              get_command: "show feature-set"
         | 
| 26 26 | 
             
              get_value: '/^fabric[\s\d]+(\w+)/'
         | 
| 27 27 | 
             
              set_value: "<state> feature-set fabric"
         | 
| @@ -32,11 +32,16 @@ fabric_forwarding: | |
| 32 32 | 
             
              set_value: "feature fabric forwarding"
         | 
| 33 33 |  | 
| 34 34 | 
             
            fex:
         | 
| 35 | 
            -
              _exclude: [C3064, C3132, N5k, N6k,  | 
| 35 | 
            +
              _exclude: [C3064, C3132, N5k, N6k, N9k-F]
         | 
| 36 36 | 
             
              get_command: "show feature-set"
         | 
| 37 37 | 
             
              get_value: '/^fex[\s\d]+(\w+)/'
         | 
| 38 38 | 
             
              set_value: "<state> feature-set fex"
         | 
| 39 39 |  | 
| 40 | 
            +
            hsrp:
         | 
| 41 | 
            +
              kind: boolean
         | 
| 42 | 
            +
              get_value: '/^feature hsrp$/'
         | 
| 43 | 
            +
              set_value: "feature hsrp"
         | 
| 44 | 
            +
             | 
| 40 45 | 
             
            itd:
         | 
| 41 46 | 
             
              _exclude: [N3k, N5k, N6k]
         | 
| 42 47 | 
             
              get_value: '/^feature itd$/'
         | 
| @@ -68,7 +73,7 @@ pim: | |
| 68 73 | 
             
              set_value: 'feature pim'
         | 
| 69 74 |  | 
| 70 75 | 
             
            private_vlan:
         | 
| 71 | 
            -
              _exclude: [ | 
| 76 | 
            +
              _exclude: [N9k-F]
         | 
| 72 77 | 
             
              kind: boolean
         | 
| 73 78 | 
             
              get_value: '/^feature private-vlan$/'
         | 
| 74 79 | 
             
              set_value: "feature private-vlan"
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            # hsrp_global.yaml
         | 
| 2 | 
            +
            ---
         | 
| 3 | 
            +
            _exclude: [ios_xr]
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            _template:
         | 
| 6 | 
            +
              get_command: "show running-config hsrp all | no-more"
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            bfd_all_intf:
         | 
| 9 | 
            +
              _exclude: [N3k]
         | 
| 10 | 
            +
              kind: boolean
         | 
| 11 | 
            +
              get_value: '/^hsrp bfd all-interfaces$/'
         | 
| 12 | 
            +
              set_value: '<state> hsrp bfd all-interfaces'
         | 
| 13 | 
            +
              default_value: false
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            extended_hold:
         | 
| 16 | 
            +
              # the config can be 'hsrp timers extended-hold' or
         | 
| 17 | 
            +
              # 'hsrp timers extended-hold <time>' or
         | 
| 18 | 
            +
              # no config at all so need to grab the
         | 
| 19 | 
            +
              # optional match to get the whole config
         | 
| 20 | 
            +
              get_value: '/^hsrp timers extended-hold(?:\s+\S+)?$/'
         | 
| 21 | 
            +
              set_value: '<state> hsrp timers extended-hold <time>'
         | 
| 22 | 
            +
              default_value: false
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            extended_hold_enable:
         | 
| 25 | 
            +
              default_only: '10'
         | 
| @@ -92,6 +92,50 @@ feature_vlan: | |
| 92 92 | 
             
                get_value: '/^feature interface-vlan$/'
         | 
| 93 93 | 
             
                set_value: "<state> feature interface-vlan"
         | 
| 94 94 |  | 
| 95 | 
            +
            hsrp_bfd:
         | 
| 96 | 
            +
              _exclude: [ios_xr, N5k, N6k]
         | 
| 97 | 
            +
              kind: boolean
         | 
| 98 | 
            +
              get_value: '/^hsrp bfd$/'
         | 
| 99 | 
            +
              set_value: "<state> hsrp bfd"
         | 
| 100 | 
            +
              default_value: false
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            hsrp_delay:
         | 
| 103 | 
            +
              _exclude: [ios_xr, N5k, N6k]
         | 
| 104 | 
            +
              get_value: '/^hsrp delay minimum (\d+) reload (\d+)/'
         | 
| 105 | 
            +
              set_value: "hsrp delay <minimum> <min> <reload> <rel>"
         | 
| 106 | 
            +
             | 
| 107 | 
            +
            hsrp_delay_minimum:
         | 
| 108 | 
            +
              _exclude: [ios_xr, N5k, N6k]
         | 
| 109 | 
            +
              default_value: 0
         | 
| 110 | 
            +
             | 
| 111 | 
            +
            hsrp_delay_reload:
         | 
| 112 | 
            +
              _exclude: [ios_xr, N5k, N6k]
         | 
| 113 | 
            +
              default_value: 0
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            hsrp_mac_refresh:
         | 
| 116 | 
            +
              _exclude: [ios_xr, N5k, N6k]
         | 
| 117 | 
            +
              kind: int
         | 
| 118 | 
            +
              get_value: '/^hsrp mac-refresh (\d+)$/'
         | 
| 119 | 
            +
              set_value: '<state> hsrp mac-refresh <timeout>'
         | 
| 120 | 
            +
              default_value: false
         | 
| 121 | 
            +
             | 
| 122 | 
            +
            hsrp_use_bia:
         | 
| 123 | 
            +
              _exclude: [ios_xr, N5k, N6k]
         | 
| 124 | 
            +
              # the config can be 'hsrp use-bia' or
         | 
| 125 | 
            +
              # 'hsrp use-bia scope interface' or
         | 
| 126 | 
            +
              # no config at all so need to grab the
         | 
| 127 | 
            +
              # optional match to get the whole config
         | 
| 128 | 
            +
              get_value: '/^hsrp use-bia(?:\s+\S+\s+\S+)?$/'
         | 
| 129 | 
            +
              set_value: '<state> hsrp use-bia<scope>'
         | 
| 130 | 
            +
              default_value: false
         | 
| 131 | 
            +
             | 
| 132 | 
            +
            hsrp_version:
         | 
| 133 | 
            +
              _exclude: [ios_xr, N5k, N6k]
         | 
| 134 | 
            +
              kind: int
         | 
| 135 | 
            +
              get_value: '/^hsrp version (\d+)$/'
         | 
| 136 | 
            +
              set_value: "hsrp version <ver>"
         | 
| 137 | 
            +
              default_value: 1
         | 
| 138 | 
            +
             | 
| 95 139 | 
             
            ipv4_acl_in:
         | 
| 96 140 | 
             
              ios_xr:
         | 
| 97 141 | 
             
                get_value: '/^ipv4 access-group (\S+) ingress/'
         | 
| @@ -147,7 +191,7 @@ ipv4_dhcp_relay_info_trust: | |
| 147 191 | 
             
              default_value: false
         | 
| 148 192 |  | 
| 149 193 | 
             
            ipv4_dhcp_relay_src_addr_hsrp:
         | 
| 150 | 
            -
              _exclude: [ios_xr, N3k,  | 
| 194 | 
            +
              _exclude: [ios_xr, N3k, N9k-F, N9k]
         | 
| 151 195 | 
             
              kind: boolean
         | 
| 152 196 | 
             
              get_value: '/^ip dhcp relay source-address hsrp$/'
         | 
| 153 197 | 
             
              set_value: "<state> ip dhcp relay source-address hsrp"
         | 
| @@ -284,6 +328,13 @@ negotiate_auto_portchannel: | |
| 284 328 | 
             
              set_value: "<state> negotiate auto"
         | 
| 285 329 | 
             
              default_value: true
         | 
| 286 330 |  | 
| 331 | 
            +
            pim_bfd:
         | 
| 332 | 
            +
              _exclude: [ios_xr]
         | 
| 333 | 
            +
              kind: boolean
         | 
| 334 | 
            +
              get_value: '/^ip pim bfd-instance$/'
         | 
| 335 | 
            +
              set_value: "<state> ip pim bfd-instance"
         | 
| 336 | 
            +
              default_value: false
         | 
| 337 | 
            +
             | 
| 287 338 | 
             
            pvlan_any:
         | 
| 288 339 | 
             
              multiple:
         | 
| 289 340 | 
             
              get_value: '/switchport private-vlan/'
         | 
| @@ -295,7 +346,7 @@ pvlan_any: | |
| 295 346 | 
             
            # 'switchport_pvlan_mapping_trunk' is the switchport-pvlan-trunk command
         | 
| 296 347 | 
             
            pvlan_mapping:
         | 
| 297 348 | 
             
              # SVI-only property
         | 
| 298 | 
            -
              _exclude: [ios_xr,  | 
| 349 | 
            +
              _exclude: [ios_xr, N9k-F]
         | 
| 299 350 | 
             
              get_value: '/^private-vlan mapping (.*)/'
         | 
| 300 351 | 
             
              set_value: "<state> private-vlan mapping <vlan>"
         | 
| 301 352 | 
             
              default_value: []
         | 
| @@ -493,68 +544,68 @@ switchport_mode_port_channel: | |
| 493 544 | 
             
              default_value: ""
         | 
| 494 545 |  | 
| 495 546 | 
             
            switchport_pvlan_host:
         | 
| 496 | 
            -
              _exclude: [ios_xr,  | 
| 547 | 
            +
              _exclude: [ios_xr, N9k-F]
         | 
| 497 548 | 
             
              kind: boolean
         | 
| 498 549 | 
             
              get_value: '/^switchport mode private-vlan host$/'
         | 
| 499 550 | 
             
              set_value: "<state> switchport mode private-vlan host"
         | 
| 500 551 | 
             
              default_value: false
         | 
| 501 552 |  | 
| 502 553 | 
             
            switchport_pvlan_host_association:
         | 
| 503 | 
            -
              _exclude: [ios_xr,  | 
| 554 | 
            +
              _exclude: [ios_xr, N9k-F]
         | 
| 504 555 | 
             
              # Note this is NOT a multiple, unlike trunk association.
         | 
| 505 556 | 
             
              get_value: '/^switchport private-vlan host-association (\d+) (\d+)$/'
         | 
| 506 557 | 
             
              set_value: "<state> switchport private-vlan host-association <pri> <sec>"
         | 
| 507 558 | 
             
              default_value: []
         | 
| 508 559 |  | 
| 509 560 | 
             
            switchport_pvlan_mapping:
         | 
| 510 | 
            -
              _exclude: [ios_xr,  | 
| 561 | 
            +
              _exclude: [ios_xr, N9k-F]
         | 
| 511 562 | 
             
              get_value: '/^switchport private-vlan mapping (\d+) (.*)$/'
         | 
| 512 563 | 
             
              set_value: "<state> switchport private-vlan mapping <primary> <vlan>"
         | 
| 513 564 | 
             
              default_value: []
         | 
| 514 565 |  | 
| 515 566 | 
             
            switchport_pvlan_mapping_trunk:
         | 
| 516 | 
            -
              _exclude: [ios_xr, N3k,  | 
| 567 | 
            +
              _exclude: [ios_xr, N3k, N9k-F]
         | 
| 517 568 | 
             
              multiple:
         | 
| 518 569 | 
             
              get_value: '/^switchport private-vlan mapping trunk (\d+) (.*)$/'
         | 
| 519 570 | 
             
              set_value: "<state> switchport private-vlan mapping trunk <primary> <range>"
         | 
| 520 571 | 
             
              default_value: []
         | 
| 521 572 |  | 
| 522 573 | 
             
            switchport_pvlan_promiscuous:
         | 
| 523 | 
            -
              _exclude: [ios_xr,  | 
| 574 | 
            +
              _exclude: [ios_xr, N9k-F]
         | 
| 524 575 | 
             
              kind: boolean
         | 
| 525 576 | 
             
              get_value: '/^switchport mode private-vlan promiscuous$/'
         | 
| 526 577 | 
             
              set_value: "<state> switchport mode private-vlan promiscuous"
         | 
| 527 578 | 
             
              default_value: false
         | 
| 528 579 |  | 
| 529 580 | 
             
            switchport_pvlan_trunk_allowed_vlan:
         | 
| 530 | 
            -
              _exclude: [ios_xr,  | 
| 581 | 
            +
              _exclude: [ios_xr, N9k-F]
         | 
| 531 582 | 
             
              multiple: true
         | 
| 532 583 | 
             
              get_value: '/^switchport private-vlan trunk allowed vlan (?:add )?(\S+)$/'
         | 
| 533 584 | 
             
              set_value: "switchport private-vlan trunk allowed vlan <range>"
         | 
| 534 585 | 
             
              default_value: 'none'
         | 
| 535 586 |  | 
| 536 587 | 
             
            switchport_pvlan_trunk_association:
         | 
| 537 | 
            -
              _exclude: [ios_xr, N3k,  | 
| 588 | 
            +
              _exclude: [ios_xr, N3k, N9k-F]
         | 
| 538 589 | 
             
              multiple:
         | 
| 539 590 | 
             
              get_value: '/^switchport private-vlan association trunk (\d+) (\d+)$/'
         | 
| 540 591 | 
             
              set_value: "<state> switchport private-vlan association trunk <pri> <sec>"
         | 
| 541 592 | 
             
              default_value: []
         | 
| 542 593 |  | 
| 543 594 | 
             
            switchport_pvlan_trunk_native_vlan:
         | 
| 544 | 
            -
              _exclude: [ios_xr,  | 
| 595 | 
            +
              _exclude: [ios_xr, N9k-F]
         | 
| 545 596 | 
             
              get_value: '/^switchport private-vlan trunk native vlan (.*)$/'
         | 
| 546 597 | 
             
              set_value: "switchport private-vlan trunk native vlan <vlan>"
         | 
| 547 598 | 
             
              default_value: '1'
         | 
| 548 599 |  | 
| 549 600 | 
             
            switchport_pvlan_trunk_promiscuous:
         | 
| 550 | 
            -
              _exclude: [ios_xr, N3k,  | 
| 601 | 
            +
              _exclude: [ios_xr, N3k, N9k-F]
         | 
| 551 602 | 
             
              kind: boolean
         | 
| 552 603 | 
             
              get_value: '/^switchport mode private-vlan trunk promiscuous$/'
         | 
| 553 604 | 
             
              set_value: "<state> switchport mode private-vlan trunk promiscuous"
         | 
| 554 605 | 
             
              default_value: false
         | 
| 555 606 |  | 
| 556 607 | 
             
            switchport_pvlan_trunk_secondary:
         | 
| 557 | 
            -
              _exclude: [ios_xr, N3k,  | 
| 608 | 
            +
              _exclude: [ios_xr, N3k, N9k-F]
         | 
| 558 609 | 
             
              kind: boolean
         | 
| 559 610 | 
             
              get_value: '/^switchport mode private-vlan trunk secondary$/'
         | 
| 560 611 | 
             
              set_value: "<state> switchport mode private-vlan trunk secondary"
         | 
| @@ -617,14 +668,14 @@ system_default_switchport_shutdown: | |
| 617 668 | 
             
                default_only: true
         | 
| 618 669 |  | 
| 619 670 | 
             
            vlan_mapping:
         | 
| 620 | 
            -
              _exclude: [N3k, N5k, N6k,  | 
| 671 | 
            +
              _exclude: [N3k, N5k, N6k, N9k-F, N9k]
         | 
| 621 672 | 
             
              multiple:
         | 
| 622 673 | 
             
              get_value: '/^switchport vlan mapping (\d+) (\d+)/'
         | 
| 623 674 | 
             
              set_value: '<state> switchport vlan mapping <original> <translated>'
         | 
| 624 675 | 
             
              default_value: []
         | 
| 625 676 |  | 
| 626 677 | 
             
            vlan_mapping_enable:
         | 
| 627 | 
            -
              _exclude: [N3k, N5k, N6k,  | 
| 678 | 
            +
              _exclude: [N3k, N5k, N6k, N9k-F, N9k]
         | 
| 628 679 | 
             
              kind: boolean
         | 
| 629 680 | 
             
              get_value: '/^(no )?switchport vlan mapping enable/'
         | 
| 630 681 | 
             
              set_value: '<state> switchport vlan mapping enable'
         | 
| @@ -0,0 +1,117 @@ | |
| 1 | 
            +
            # interface_hsrp_group
         | 
| 2 | 
            +
            ---
         | 
| 3 | 
            +
            _exclude: [ios_xr, N5k, N6k]
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            _template:
         | 
| 6 | 
            +
              get_command: "show running hsrp | no-more"
         | 
| 7 | 
            +
              context:
         | 
| 8 | 
            +
                - "interface <name>"
         | 
| 9 | 
            +
                - "hsrp <group> <iptype>"
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            authentication:
         | 
| 12 | 
            +
              get_value: '/^authentication (.*)$/'
         | 
| 13 | 
            +
              set_value: '<state> authentication <authtype> <keytype> <enctype> <passwd> <compatible> <timeout> <tval>'
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            authentication_auth_type:
         | 
| 16 | 
            +
              default_value: 'cleartext'
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            authentication_compatibility:
         | 
| 19 | 
            +
              kind: boolean
         | 
| 20 | 
            +
              default_value: false
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            authentication_enc_type:
         | 
| 23 | 
            +
              default_value: '0'
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            authentication_key_type:
         | 
| 26 | 
            +
              default_value: 'key-chain'
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            authentication_string:
         | 
| 29 | 
            +
              default_value: ''
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            authentication_timeout:
         | 
| 32 | 
            +
              kind: int
         | 
| 33 | 
            +
              default_value: 0
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            group_name:
         | 
| 36 | 
            +
              get_value: '/^name (\S+)/'
         | 
| 37 | 
            +
              set_value: '<state> name <word>'
         | 
| 38 | 
            +
              default_value: false
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            groups:
         | 
| 41 | 
            +
              multiple: true
         | 
| 42 | 
            +
              context:
         | 
| 43 | 
            +
                - "interface <name>"
         | 
| 44 | 
            +
              get_value: '/^hsrp (\d+)(?:\s+(ipv6))?/'
         | 
| 45 | 
            +
              set_value: '<state> hsrp <group> <iptype>'
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            ipv4_enable:
         | 
| 48 | 
            +
              default_value: false
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            ipv4_vip:
         | 
| 51 | 
            +
              # the config can be 'ip' or 'ip <vip>' or
         | 
| 52 | 
            +
              # no ipv4 config at all so need to grab the
         | 
| 53 | 
            +
              # optional match to get the whole config
         | 
| 54 | 
            +
              get_value: '/^ip(?:\s+\S+)?$/'
         | 
| 55 | 
            +
              set_value: '<state> ip <vip>'
         | 
| 56 | 
            +
              default_value: ''
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            ipv6_autoconfig:
         | 
| 59 | 
            +
              kind: boolean
         | 
| 60 | 
            +
              get_value: '/^ip autoconfig$/'
         | 
| 61 | 
            +
              set_value: '<state> ip autoconfig'
         | 
| 62 | 
            +
              default_value: false
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            ipv6_vip:
         | 
| 65 | 
            +
              multiple: true
         | 
| 66 | 
            +
              get_value: '/^ip (\S+)$/'
         | 
| 67 | 
            +
              set_value: '<state> ip <vip>'
         | 
| 68 | 
            +
              default_value: []
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            mac_addr:
         | 
| 71 | 
            +
              get_value: '/^mac-address (\S+)$/'
         | 
| 72 | 
            +
              set_value: '<state> mac-address <mac>'
         | 
| 73 | 
            +
              default_value: false
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            preempt:
         | 
| 76 | 
            +
              get_command: "show running hsrp all | no-more"
         | 
| 77 | 
            +
              get_value: '/^preempt delay minimum (\d+) reload (\d+) sync (\d+)/'
         | 
| 78 | 
            +
              set_value: '<state> preempt <delay> <minimum> <minval> <reload> <relval> <sync> <syncval>'
         | 
| 79 | 
            +
              default_value: false
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            preempt_delay_minimum:
         | 
| 82 | 
            +
              default_value: 0
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            preempt_delay_reload:
         | 
| 85 | 
            +
              default_value: 0
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            preempt_delay_sync:
         | 
| 88 | 
            +
              default_value: 0
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            priority:
         | 
| 91 | 
            +
              default_value: 100
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            priority_forward_thresh_lower:
         | 
| 94 | 
            +
              default_value: ''
         | 
| 95 | 
            +
             | 
| 96 | 
            +
            priority_forward_thresh_upper:
         | 
| 97 | 
            +
              default_value: ''
         | 
| 98 | 
            +
             | 
| 99 | 
            +
            priority_level:
         | 
| 100 | 
            +
              get_value: '/^priority (\d+)(?:\s+(?:forwarding-threshold lower)\s+(\d+)\s+(?:upper)\s+(\d+))?$/'
         | 
| 101 | 
            +
              set_value: '<state> priority <pri> <forward> <lval> <upper> <uval>'
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            timers:
         | 
| 104 | 
            +
              get_value: '/^timers (.*)$/'
         | 
| 105 | 
            +
              set_value: '<state> timers <mshello> <hello> <mshold> <hold>'
         | 
| 106 | 
            +
             | 
| 107 | 
            +
            timers_hello:
         | 
| 108 | 
            +
              default_value: 3
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            timers_hello_msec:
         | 
| 111 | 
            +
              default_value: false
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            timers_hold:
         | 
| 114 | 
            +
              default_value: 10
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            timers_hold_msec:
         | 
| 117 | 
            +
              default_value: false
         | 
| @@ -6,11 +6,10 @@ _template: | |
| 6 6 | 
             
                data_format: cli
         | 
| 7 7 | 
             
              nexus:
         | 
| 8 8 | 
             
                data_format: nxapi_structured
         | 
| 9 | 
            +
                get_context: ["TABLE_inv", "ROW_inv"]
         | 
| 9 10 |  | 
| 10 11 | 
             
            all:
         | 
| 11 12 | 
             
              multiple: true
         | 
| 12 | 
            -
              nexus:
         | 
| 13 | 
            -
                get_context: ["TABLE_inv", "ROW_inv"]
         | 
| 14 13 |  | 
| 15 14 | 
             
            chassis:
         | 
| 16 15 | 
             
              nexus:
         | 
| @@ -22,19 +21,16 @@ productid: | |
| 22 21 | 
             
              ios_xr:
         | 
| 23 22 | 
             
                get_value: '/"Rack 0".*\n.*PID: ([^ ,]+)/'
         | 
| 24 23 | 
             
              nexus:
         | 
| 25 | 
            -
                 | 
| 26 | 
            -
                get_value: "productid"
         | 
| 24 | 
            +
                get_value: ["name Chassis", "productid"]
         | 
| 27 25 |  | 
| 28 26 | 
             
            serialnum:
         | 
| 29 27 | 
             
              ios_xr:
         | 
| 30 28 | 
             
                get_value: '/"Rack 0".*\n.*SN: ([^ ,]+)/'
         | 
| 31 29 | 
             
              nexus:
         | 
| 32 | 
            -
                 | 
| 33 | 
            -
                get_value: "serialnum"
         | 
| 30 | 
            +
                get_value: ["name Chassis", "serialnum"]
         | 
| 34 31 |  | 
| 35 32 | 
             
            versionid:
         | 
| 36 33 | 
             
              ios_xr:
         | 
| 37 34 | 
             
                get_value: '/"Rack 0".*\n.*VID: ([^ ,]+)/'
         | 
| 38 35 | 
             
              nexus:
         | 
| 39 | 
            -
                 | 
| 40 | 
            -
                get_value: "vendorid"
         | 
| 36 | 
            +
                get_value: ["name Chassis", "vendorid"]
         |