cisco_node_utils_mgx 2.1.0.1
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 +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.rubocop.yml +96 -0
- data/.travis.yml +17 -0
- data/CHANGELOG.md +676 -0
- data/CONTRIBUTING.md +43 -0
- data/Gemfile +10 -0
- data/LICENSE +201 -0
- data/README.md +246 -0
- data/Rakefile +44 -0
- data/SUPPORT.md +3 -0
- data/bin/.rubocop.yml +18 -0
- data/bin/check_metric_limits.rb +109 -0
- data/bin/git/hooks/commit-msg/enforce_style +89 -0
- data/bin/git/hooks/hook_lib +115 -0
- data/bin/git/hooks/hooks-wrapper +38 -0
- data/bin/git/hooks/post-flow-hotfix-start/update-version +24 -0
- data/bin/git/hooks/post-flow-release-finish/update-version +29 -0
- data/bin/git/hooks/post-flow-release-start/update-version +19 -0
- data/bin/git/hooks/post-merge/update-hooks +6 -0
- data/bin/git/hooks/post-rewrite/update-hooks +6 -0
- data/bin/git/hooks/pre-commit/check_unstaged_changes +18 -0
- data/bin/git/hooks/pre-commit/rubocop +25 -0
- data/bin/git/hooks/pre-commit/validate-diffs +45 -0
- data/bin/git/hooks/pre-commit/validate-yaml +18 -0
- data/bin/git/hooks/pre-push/check-changelog +24 -0
- data/bin/git/hooks/pre-push/rubocop +7 -0
- data/bin/git/update-hooks +123 -0
- data/bin/show_running_yang.rb +233 -0
- data/cisco_node_utils.gemspec +41 -0
- data/docs/README-develop-best-practices.md +521 -0
- data/docs/README-develop-node-utils-APIs.md +570 -0
- data/docs/README-maintainers.md +77 -0
- data/docs/README-test-execution.md +57 -0
- data/docs/README-utilities.md +14 -0
- data/docs/agent_files.png +0 -0
- data/docs/cisco_node_utils.yaml.example +36 -0
- data/docs/template-router.rb +123 -0
- data/docs/template-test_router.rb +104 -0
- data/ext/mkrf_conf.rb +63 -0
- data/lib/.rubocop.yml +18 -0
- data/lib/cisco_node_utils/aaa_authentication_login.rb +95 -0
- data/lib/cisco_node_utils/aaa_authentication_login_service.rb +138 -0
- data/lib/cisco_node_utils/aaa_authorization_service.rb +156 -0
- data/lib/cisco_node_utils/ace.rb +467 -0
- data/lib/cisco_node_utils/acl.rb +101 -0
- data/lib/cisco_node_utils/banner.rb +63 -0
- data/lib/cisco_node_utils/bfd_global.rb +305 -0
- data/lib/cisco_node_utils/bgp.rb +988 -0
- data/lib/cisco_node_utils/bgp_af.rb +545 -0
- data/lib/cisco_node_utils/bgp_af_aggr_addr.rb +207 -0
- data/lib/cisco_node_utils/bgp_neighbor.rb +527 -0
- data/lib/cisco_node_utils/bgp_neighbor_af.rb +780 -0
- data/lib/cisco_node_utils/bridge_domain.rb +178 -0
- data/lib/cisco_node_utils/bridge_domain_vni.rb +206 -0
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +444 -0
- data/lib/cisco_node_utils/client/client.rb +238 -0
- data/lib/cisco_node_utils/client/grpc/client.rb +395 -0
- data/lib/cisco_node_utils/client/grpc/ems.proto +148 -0
- data/lib/cisco_node_utils/client/grpc/ems.rb +111 -0
- data/lib/cisco_node_utils/client/grpc/ems_services.rb +49 -0
- data/lib/cisco_node_utils/client/grpc.rb +33 -0
- data/lib/cisco_node_utils/client/nxapi/client.rb +368 -0
- data/lib/cisco_node_utils/client/nxapi.rb +31 -0
- data/lib/cisco_node_utils/client/utils.rb +180 -0
- data/lib/cisco_node_utils/client.rb +35 -0
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +590 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +40 -0
- data/lib/cisco_node_utils/cmd_ref/acl.yaml +48 -0
- data/lib/cisco_node_utils/cmd_ref/banner.yaml +11 -0
- data/lib/cisco_node_utils/cmd_ref/bfd_global.yaml +117 -0
- data/lib/cisco_node_utils/cmd_ref/bgp.yaml +383 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +223 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_af_aa.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +174 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +236 -0
- data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +49 -0
- data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/dhcp_relay_global.yaml +128 -0
- data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +55 -0
- data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_multicast.yaml +12 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_multisite.yaml +18 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_stormcontrol.yaml +18 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +48 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +183 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +40 -0
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +126 -0
- data/lib/cisco_node_utils/cmd_ref/hostname.yaml +8 -0
- data/lib/cisco_node_utils/cmd_ref/hsrp_global.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/images.yaml +8 -0
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +781 -0
- data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +45 -0
- data/lib/cisco_node_utils/cmd_ref/interface_evpn_multisite.yaml +17 -0
- data/lib/cisco_node_utils/cmd_ref/interface_hsrp_group.yaml +120 -0
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +112 -0
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +87 -0
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +42 -0
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
- data/lib/cisco_node_utils/cmd_ref/ip_multicast.yaml +22 -0
- data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +83 -0
- data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +119 -0
- data/lib/cisco_node_utils/cmd_ref/memory.yaml +24 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_auth_key.yaml +10 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +27 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +34 -0
- data/lib/cisco_node_utils/cmd_ref/object_group.yaml +32 -0
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +91 -0
- data/lib/cisco_node_utils/cmd_ref/ospf_area.yaml +91 -0
- data/lib/cisco_node_utils/cmd_ref/ospf_area_vlink.yaml +88 -0
- data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +37 -0
- data/lib/cisco_node_utils/cmd_ref/pim.yaml +43 -0
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +86 -0
- data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +37 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +100 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +19 -0
- data/lib/cisco_node_utils/cmd_ref/route_map.yaml +601 -0
- data/lib/cisco_node_utils/cmd_ref/show_system.yaml +9 -0
- data/lib/cisco_node_utils/cmd_ref/show_version.yaml +84 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +81 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +9 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +74 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +91 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +57 -0
- data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +23 -0
- data/lib/cisco_node_utils/cmd_ref/span_session.yaml +65 -0
- data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +235 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_facility.yaml +10 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +34 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +45 -0
- data/lib/cisco_node_utils/cmd_ref/system.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_global.yaml +37 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +63 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +45 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +64 -0
- data/lib/cisco_node_utils/cmd_ref/upgrade.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +52 -0
- data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +8 -0
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +106 -0
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +233 -0
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +86 -0
- data/lib/cisco_node_utils/cmd_ref/vrf_af.yaml +139 -0
- data/lib/cisco_node_utils/cmd_ref/vtp.yaml +32 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +114 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +71 -0
- data/lib/cisco_node_utils/cmd_ref/yang.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/yum.yaml +68 -0
- data/lib/cisco_node_utils/command_reference.rb +724 -0
- data/lib/cisco_node_utils/configparser_lib.rb +195 -0
- data/lib/cisco_node_utils/constants.rb +40 -0
- data/lib/cisco_node_utils/dhcp_relay_global.rb +302 -0
- data/lib/cisco_node_utils/dns_domain.rb +93 -0
- data/lib/cisco_node_utils/domain_name.rb +82 -0
- data/lib/cisco_node_utils/encapsulation.rb +112 -0
- data/lib/cisco_node_utils/environment.rb +110 -0
- data/lib/cisco_node_utils/evpn_multicast.rb +66 -0
- data/lib/cisco_node_utils/evpn_multisite.rb +96 -0
- data/lib/cisco_node_utils/evpn_stormcontrol.rb +84 -0
- data/lib/cisco_node_utils/evpn_vni.rb +159 -0
- data/lib/cisco_node_utils/exceptions.rb +140 -0
- data/lib/cisco_node_utils/fabricpath_global.rb +405 -0
- data/lib/cisco_node_utils/fabricpath_topology.rb +137 -0
- data/lib/cisco_node_utils/feature.rb +377 -0
- data/lib/cisco_node_utils/hostname.rb +62 -0
- data/lib/cisco_node_utils/hsrp_global.rb +97 -0
- data/lib/cisco_node_utils/interface.rb +2128 -0
- data/lib/cisco_node_utils/interface_channel_group.rb +142 -0
- data/lib/cisco_node_utils/interface_evpn_multisite.rb +72 -0
- data/lib/cisco_node_utils/interface_hsrp_group.rb +557 -0
- data/lib/cisco_node_utils/interface_ospf.rb +378 -0
- data/lib/cisco_node_utils/interface_portchannel.rb +180 -0
- data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
- data/lib/cisco_node_utils/ip_multicast.rb +90 -0
- data/lib/cisco_node_utils/itd_device_group.rb +228 -0
- data/lib/cisco_node_utils/itd_device_group_node.rb +144 -0
- data/lib/cisco_node_utils/itd_service.rb +511 -0
- data/lib/cisco_node_utils/logger.rb +78 -0
- data/lib/cisco_node_utils/name_server.rb +64 -0
- data/lib/cisco_node_utils/node.rb +443 -0
- data/lib/cisco_node_utils/node_util.rb +111 -0
- data/lib/cisco_node_utils/ntp_auth_key.rb +67 -0
- data/lib/cisco_node_utils/ntp_config.rb +83 -0
- data/lib/cisco_node_utils/ntp_server.rb +86 -0
- data/lib/cisco_node_utils/object_group.rb +75 -0
- data/lib/cisco_node_utils/object_group_entry.rb +143 -0
- data/lib/cisco_node_utils/overlay_global.rb +142 -0
- data/lib/cisco_node_utils/pim.rb +131 -0
- data/lib/cisco_node_utils/pim_group_list.rb +109 -0
- data/lib/cisco_node_utils/pim_rp_address.rb +103 -0
- data/lib/cisco_node_utils/platform.rb +217 -0
- data/lib/cisco_node_utils/portchannel_global.rb +347 -0
- data/lib/cisco_node_utils/radius_global.rb +165 -0
- data/lib/cisco_node_utils/radius_server.rb +421 -0
- data/lib/cisco_node_utils/radius_server_group.rb +117 -0
- data/lib/cisco_node_utils/route_map.rb +2540 -0
- data/lib/cisco_node_utils/router_ospf.rb +77 -0
- data/lib/cisco_node_utils/router_ospf_area.rb +416 -0
- data/lib/cisco_node_utils/router_ospf_area_vlink.rb +313 -0
- data/lib/cisco_node_utils/router_ospf_vrf.rb +342 -0
- data/lib/cisco_node_utils/snmp_notification_receiver.rb +176 -0
- data/lib/cisco_node_utils/snmpcommunity.rb +109 -0
- data/lib/cisco_node_utils/snmpgroup.rb +54 -0
- data/lib/cisco_node_utils/snmpnotification.rb +57 -0
- data/lib/cisco_node_utils/snmpserver.rb +132 -0
- data/lib/cisco_node_utils/snmpuser.rb +403 -0
- data/lib/cisco_node_utils/span_session.rb +149 -0
- data/lib/cisco_node_utils/stp_global.rb +676 -0
- data/lib/cisco_node_utils/syslog_facility.rb +64 -0
- data/lib/cisco_node_utils/syslog_server.rb +146 -0
- data/lib/cisco_node_utils/syslog_settings.rb +174 -0
- data/lib/cisco_node_utils/tacacs_global.rb +137 -0
- data/lib/cisco_node_utils/tacacs_server.rb +173 -0
- data/lib/cisco_node_utils/tacacs_server_group.rb +149 -0
- data/lib/cisco_node_utils/tacacs_server_host.rb +216 -0
- data/lib/cisco_node_utils/upgrade.rb +122 -0
- data/lib/cisco_node_utils/vdc.rb +118 -0
- data/lib/cisco_node_utils/version.rb +21 -0
- data/lib/cisco_node_utils/vlan.rb +301 -0
- data/lib/cisco_node_utils/vpc.rb +466 -0
- data/lib/cisco_node_utils/vrf.rb +192 -0
- data/lib/cisco_node_utils/vrf_af.rb +327 -0
- data/lib/cisco_node_utils/vtp.rb +125 -0
- data/lib/cisco_node_utils/vxlan_vtep.rb +286 -0
- data/lib/cisco_node_utils/vxlan_vtep_vni.rb +331 -0
- data/lib/cisco_node_utils/yang.rb +160 -0
- data/lib/cisco_node_utils/yum.rb +213 -0
- data/lib/cisco_node_utils.rb +21 -0
- data/lib/minitest/environment_plugin.rb +31 -0
- data/lib/minitest/log_level_plugin.rb +41 -0
- data/spec/client_spec.rb +7 -0
- data/spec/environment_spec.rb +384 -0
- data/spec/grpc_client_spec.rb +23 -0
- data/spec/isolate/all_clients_spec.rb +9 -0
- data/spec/isolate/grpc_only_spec.rb +16 -0
- data/spec/isolate/no_clients_spec.rb +26 -0
- data/spec/isolate/nxapi_only_spec.rb +16 -0
- data/spec/nxapi_client_spec.rb +42 -0
- data/spec/schema.yaml +82 -0
- data/spec/shared_examples_for_clients.rb +14 -0
- data/spec/spec_helper.rb +91 -0
- data/spec/whitespace_spec.rb +10 -0
- data/spec/yaml_spec.rb +42 -0
- data/tests/.rubocop.yml +18 -0
- data/tests/CSCuxdublin-1.0.0-7.0.3.I3.1.lib32_n9000.rpm +0 -0
- data/tests/basetest.rb +243 -0
- data/tests/ciscotest.rb +577 -0
- data/tests/cmd_config.yaml +75 -0
- data/tests/cmd_config_invalid.yaml +16 -0
- data/tests/n9000_sample-1.0.0-7.0.3.x86_64.rpm +0 -0
- data/tests/noop.rb +7 -0
- data/tests/platform_info.rb +63 -0
- data/tests/tacacs_server.yaml.example +6 -0
- data/tests/test_aaa_authentication_login.rb +243 -0
- data/tests/test_aaa_authentication_login_service.rb +761 -0
- data/tests/test_aaa_authorization_service.rb +874 -0
- data/tests/test_ace.rb +304 -0
- data/tests/test_acl.rb +185 -0
- data/tests/test_banner.rb +85 -0
- data/tests/test_bfd_global.rb +272 -0
- data/tests/test_bgp_af.rb +875 -0
- data/tests/test_bgp_af_aa.rb +108 -0
- data/tests/test_bgp_neighbor.rb +596 -0
- data/tests/test_bgp_neighbor_af.rb +781 -0
- data/tests/test_bridge_domain.rb +198 -0
- data/tests/test_bridge_domain_vni.rb +109 -0
- data/tests/test_client_utils.rb +111 -0
- data/tests/test_cmn_utils.rb +76 -0
- data/tests/test_command_config.rb +206 -0
- data/tests/test_command_reference.rb +669 -0
- data/tests/test_dhcp_relay_global.rb +286 -0
- data/tests/test_dns_domain.rb +123 -0
- data/tests/test_domain_name.rb +96 -0
- data/tests/test_encapsulation.rb +75 -0
- data/tests/test_evpn_multicast.rb +65 -0
- data/tests/test_evpn_multisite.rb +70 -0
- data/tests/test_evpn_stormcontrol.rb +56 -0
- data/tests/test_evpn_vni.rb +131 -0
- data/tests/test_fabricpath_global.rb +246 -0
- data/tests/test_fabricpath_topology.rb +77 -0
- data/tests/test_feature.rb +272 -0
- data/tests/test_grpc.rb +166 -0
- data/tests/test_hostname.rb +64 -0
- data/tests/test_hsrp_global.rb +79 -0
- data/tests/test_interface.rb +1958 -0
- data/tests/test_interface_bdi.rb +80 -0
- data/tests/test_interface_channel_group.rb +131 -0
- data/tests/test_interface_evpn_multisite.rb +94 -0
- data/tests/test_interface_hsrp.rb +134 -0
- data/tests/test_interface_hsrp_group.rb +570 -0
- data/tests/test_interface_ospf.rb +820 -0
- data/tests/test_interface_portchannel.rb +135 -0
- data/tests/test_interface_private_vlan.rb +365 -0
- data/tests/test_interface_service_vni.rb +203 -0
- data/tests/test_interface_svi.rb +210 -0
- data/tests/test_interface_switchport.rb +468 -0
- data/tests/test_ip_multicast.rb +80 -0
- data/tests/test_itd_device_group.rb +145 -0
- data/tests/test_itd_device_group_node.rb +199 -0
- data/tests/test_itd_service.rb +314 -0
- data/tests/test_logger.rb +43 -0
- data/tests/test_name_server.rb +94 -0
- data/tests/test_node.rb +50 -0
- data/tests/test_node_ext.rb +406 -0
- data/tests/test_node_util.rb +119 -0
- data/tests/test_ntp_auth_key.rb +77 -0
- data/tests/test_ntp_config.rb +100 -0
- data/tests/test_ntp_server.rb +146 -0
- data/tests/test_nxapi.rb +236 -0
- data/tests/test_object_group.rb +122 -0
- data/tests/test_overlay_global.rb +108 -0
- data/tests/test_pim.rb +203 -0
- data/tests/test_pim_group_list.rb +147 -0
- data/tests/test_pim_rp_address.rb +155 -0
- data/tests/test_platform.rb +254 -0
- data/tests/test_portchannel_global.rb +322 -0
- data/tests/test_radius_global.rb +108 -0
- data/tests/test_radius_server.rb +377 -0
- data/tests/test_radius_server_group.rb +151 -0
- data/tests/test_route_map.rb +1479 -0
- data/tests/test_router_bgp.rb +1325 -0
- data/tests/test_router_ospf.rb +56 -0
- data/tests/test_router_ospf_area.rb +433 -0
- data/tests/test_router_ospf_area_vlink.rb +298 -0
- data/tests/test_router_ospf_vrf.rb +690 -0
- data/tests/test_snmp_notification_receiver.rb +169 -0
- data/tests/test_snmpcommunity.rb +422 -0
- data/tests/test_snmpgroup.rb +71 -0
- data/tests/test_snmpnotification.rb +91 -0
- data/tests/test_snmpserver.rb +251 -0
- data/tests/test_snmpuser.rb +666 -0
- data/tests/test_span_session.rb +155 -0
- data/tests/test_stp_global.rb +575 -0
- data/tests/test_syslog_facility.rb +80 -0
- data/tests/test_syslog_server.rb +119 -0
- data/tests/test_syslog_settings.rb +123 -0
- data/tests/test_tacacs_global.rb +109 -0
- data/tests/test_tacacs_server.rb +436 -0
- data/tests/test_tacacs_server_group.rb +434 -0
- data/tests/test_tacacs_server_host.rb +427 -0
- data/tests/test_upgrade.rb +105 -0
- data/tests/test_vdc.rb +64 -0
- data/tests/test_vlan.rb +386 -0
- data/tests/test_vlan_private.rb +656 -0
- data/tests/test_vpc.rb +548 -0
- data/tests/test_vrf.rb +248 -0
- data/tests/test_vrf_af.rb +288 -0
- data/tests/test_vtp.rb +278 -0
- data/tests/test_vxlan_vtep.rb +327 -0
- data/tests/test_vxlan_vtep_vni.rb +326 -0
- data/tests/test_yang.rb +369 -0
- data/tests/test_yum.rb +109 -0
- data/tests/upgrade_info.yaml.example +3 -0
- data/tests/yum_package.yaml +94 -0
- metadata +534 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Copyright (c) 2016 Cisco and/or its affiliates.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
require_relative 'ciscotest'
|
|
16
|
+
require_relative '../lib/cisco_node_utils/interface'
|
|
17
|
+
require_relative '../lib/cisco_node_utils/bridge_domain'
|
|
18
|
+
|
|
19
|
+
include Cisco
|
|
20
|
+
|
|
21
|
+
# TestBdi - Minitest for Interface configuration of BDI interfaces.
|
|
22
|
+
class TestInterfaceBdi < CiscoTestCase
|
|
23
|
+
@@pre_clean_needed = true # rubocop:disable Style/ClassVars
|
|
24
|
+
attr_reader :bdi
|
|
25
|
+
|
|
26
|
+
def self.runnable_methods
|
|
27
|
+
# We don't have a separate YAML file to key off, so we check platform
|
|
28
|
+
return super if node.product_id[/N7/]
|
|
29
|
+
remove_method :setup if instance_methods(false).include?(:setup)
|
|
30
|
+
remove_method :teardown if instance_methods(false).include?(:teardown)
|
|
31
|
+
[:unsupported]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def unsupported
|
|
35
|
+
skip("Skipping #{self.class}; Bdi interfaces are not supported on the \
|
|
36
|
+
platform")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def setup
|
|
40
|
+
super
|
|
41
|
+
remove_all_bdis if @@pre_clean_needed
|
|
42
|
+
@@pre_clean_needed = false # rubocop:disable Style/ClassVars
|
|
43
|
+
BridgeDomain.new('100')
|
|
44
|
+
@bdi = Interface.new('Bdi100')
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def remove_all_bdis
|
|
48
|
+
Interface.interfaces.each do |int, obj|
|
|
49
|
+
next unless int[/bdi/i]
|
|
50
|
+
obj.destroy
|
|
51
|
+
end
|
|
52
|
+
remove_all_bridge_domains
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def teardown
|
|
56
|
+
remove_all_bdis
|
|
57
|
+
super
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_bdi
|
|
61
|
+
# Check all the default values
|
|
62
|
+
assert_equal(@bdi.default_vrf, @bdi.vrf)
|
|
63
|
+
assert_equal(@bdi.default_ipv4_address, @bdi.ipv4_address)
|
|
64
|
+
assert_equal(@bdi.default_ipv4_netmask_length, @bdi.ipv4_netmask_length)
|
|
65
|
+
address = '8.7.1.1'
|
|
66
|
+
length = 15
|
|
67
|
+
|
|
68
|
+
@bdi.ipv4_addr_mask_set(address, length)
|
|
69
|
+
assert_equal(address, @bdi.ipv4_address,
|
|
70
|
+
'Error: ipv4 address get value mismatch')
|
|
71
|
+
assert_equal(length, @bdi.ipv4_netmask_length,
|
|
72
|
+
'Error: ipv4 netmask length get value mismatch')
|
|
73
|
+
|
|
74
|
+
vrf = 'test'
|
|
75
|
+
@bdi.vrf = vrf
|
|
76
|
+
assert_equal(vrf, @bdi.vrf)
|
|
77
|
+
@bdi.vrf = ''
|
|
78
|
+
assert_equal(@bdi.default_vrf, @bdi.vrf)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Copyright (c) 2015-2016 Cisco and/or its affiliates.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
require_relative 'ciscotest'
|
|
16
|
+
require_relative '../lib/cisco_node_utils/interface_channel_group'
|
|
17
|
+
|
|
18
|
+
# TestInterface - Minitest for general functionality of the Interface class.
|
|
19
|
+
class TestInterfaceChanGrp < CiscoTestCase
|
|
20
|
+
@@clean = false # rubocop:disable Style/ClassVars
|
|
21
|
+
def setup
|
|
22
|
+
super
|
|
23
|
+
@intf = InterfaceChannelGroup.new(interfaces[1])
|
|
24
|
+
|
|
25
|
+
# Only pre-clean interface on initial setup
|
|
26
|
+
interface_cleanup(@intf.name) unless @@clean
|
|
27
|
+
@@clean = true # rubocop:disable Style/ClassVars
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def teardown
|
|
31
|
+
interface_cleanup(@intf.name)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Test InterfaceChannelGroup.interfaces class method api
|
|
35
|
+
def test_interface_apis
|
|
36
|
+
intf = interfaces[0]
|
|
37
|
+
intf2 = interfaces[1]
|
|
38
|
+
|
|
39
|
+
# Verify show_name usage
|
|
40
|
+
one = InterfaceChannelGroup.interfaces(intf)
|
|
41
|
+
assert_equal(1, one.length,
|
|
42
|
+
'Invalid number of keys returned, should be 1')
|
|
43
|
+
assert_equal(Utils.normalize_intf_pattern(intf), one[intf].show_name,
|
|
44
|
+
':show_name should be intf name when show_name param specified')
|
|
45
|
+
|
|
46
|
+
# Verify 'all' interfaces
|
|
47
|
+
all = InterfaceChannelGroup.interfaces
|
|
48
|
+
assert_operator(all.length, :>, 1,
|
|
49
|
+
'Invalid number of keys returned, should exceed 1')
|
|
50
|
+
assert_empty(all[intf2].show_name,
|
|
51
|
+
':show_name should be empty string when show_name param is nil')
|
|
52
|
+
|
|
53
|
+
# Test non-existent loopback does NOT raise when calling interfaces
|
|
54
|
+
Interface.new('loopback543', false).destroy if
|
|
55
|
+
Interface.interfaces(nil, 'loopback543').any?
|
|
56
|
+
one = InterfaceChannelGroup.interfaces('loopback543')
|
|
57
|
+
assert_empty(one, 'InterfaceChannelGroup.interfaces hash should be empty')
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_channel_group_mode
|
|
61
|
+
skip if platform == :ios_xr
|
|
62
|
+
i = @intf
|
|
63
|
+
group = 55
|
|
64
|
+
|
|
65
|
+
# Default Case: group = mode = false
|
|
66
|
+
refute(i.channel_group)
|
|
67
|
+
refute(i.channel_group_mode)
|
|
68
|
+
|
|
69
|
+
# group = 55, mode = on
|
|
70
|
+
i.channel_group_mode_set(group)
|
|
71
|
+
assert_equal(group, i.channel_group)
|
|
72
|
+
assert_equal(i.default_channel_group_mode, i.channel_group_mode)
|
|
73
|
+
|
|
74
|
+
# group = 55, mode = active
|
|
75
|
+
i.channel_group_mode_set(group, 'active')
|
|
76
|
+
assert_equal(group, i.channel_group)
|
|
77
|
+
assert_equal('active', i.channel_group_mode)
|
|
78
|
+
|
|
79
|
+
# group = 55, mode = passive
|
|
80
|
+
i.channel_group_mode_set(group, 'passive')
|
|
81
|
+
assert_equal(group, i.channel_group)
|
|
82
|
+
assert_equal('passive', i.channel_group_mode)
|
|
83
|
+
|
|
84
|
+
# group = 55, mode = on
|
|
85
|
+
i.channel_group_mode_set(group, 'on')
|
|
86
|
+
assert_equal(group, i.channel_group)
|
|
87
|
+
assert_equal(i.default_channel_group_mode, i.channel_group_mode)
|
|
88
|
+
|
|
89
|
+
# group = 66, mode = active
|
|
90
|
+
group = 66
|
|
91
|
+
i.channel_group_mode_set(group, 'active')
|
|
92
|
+
assert_equal(group, i.channel_group)
|
|
93
|
+
assert_equal('active', i.channel_group_mode)
|
|
94
|
+
|
|
95
|
+
# group = 66, mode = on
|
|
96
|
+
i.channel_group_mode_set(group)
|
|
97
|
+
assert_equal(group, i.channel_group)
|
|
98
|
+
assert_equal(i.default_channel_group_mode, i.channel_group_mode)
|
|
99
|
+
|
|
100
|
+
# Default Case: group = mode = false
|
|
101
|
+
i.channel_group_mode_set(i.default_channel_group)
|
|
102
|
+
refute(i.channel_group)
|
|
103
|
+
refute(i.channel_group_mode)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_description
|
|
107
|
+
i = @intf
|
|
108
|
+
desc = 'test desc'
|
|
109
|
+
i.description = desc
|
|
110
|
+
assert_equal(desc, i.description)
|
|
111
|
+
|
|
112
|
+
desc = 'test desc changed'
|
|
113
|
+
i.description = desc
|
|
114
|
+
assert_equal(desc, i.description)
|
|
115
|
+
|
|
116
|
+
desc = i.default_description
|
|
117
|
+
i.description = desc
|
|
118
|
+
assert_equal(desc, i.description)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def test_shutdown
|
|
122
|
+
i = @intf
|
|
123
|
+
i.shutdown = true
|
|
124
|
+
assert(i.shutdown)
|
|
125
|
+
i.shutdown = false
|
|
126
|
+
refute(i.shutdown)
|
|
127
|
+
|
|
128
|
+
i.shutdown = i.default_shutdown
|
|
129
|
+
assert_equal(i.default_shutdown, i.shutdown)
|
|
130
|
+
end
|
|
131
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Interface Evpn Multisite Unit Tests
|
|
2
|
+
#
|
|
3
|
+
# Rahul Shenoy, October, 2017
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2017 Cisco and/or its affiliates.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
|
|
19
|
+
require_relative 'ciscotest'
|
|
20
|
+
require_relative '../lib/cisco_node_utils/interface_evpn_multisite'
|
|
21
|
+
require_relative '../lib/cisco_node_utils/evpn_multisite'
|
|
22
|
+
|
|
23
|
+
# TestInterfaceEvpnMultisite - Minitest for InterfaceEvpnMultisite class
|
|
24
|
+
class TestInterfaceEvpnMultisite < CiscoTestCase
|
|
25
|
+
@skip_unless_supported = 'interface_evpn_multisite'
|
|
26
|
+
|
|
27
|
+
def setup
|
|
28
|
+
# ensure we are starting with a clean slate for each test.
|
|
29
|
+
super
|
|
30
|
+
skip("#{node.product_id} doesn't support this feature") unless
|
|
31
|
+
node.product_id[/N9K.*EX/]
|
|
32
|
+
interface_ethernet_default(interfaces[0])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def interface_ethernet_default(intf)
|
|
36
|
+
config("default interface #{intf}")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Test InterfaceEvpnMultisite.interfaces class method api
|
|
40
|
+
def test_interface_apis
|
|
41
|
+
# setup
|
|
42
|
+
ms = EvpnMultisite.new(100)
|
|
43
|
+
intf = interfaces[0]
|
|
44
|
+
intf2 = interfaces[1]
|
|
45
|
+
interface_ethernet_default(intf2)
|
|
46
|
+
[intf, intf2].each do |i|
|
|
47
|
+
InterfaceEvpnMultisite.new(i).enable('dci-tracking')
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Verify show_name usage
|
|
51
|
+
one = InterfaceEvpnMultisite.interfaces(intf)
|
|
52
|
+
assert_equal(1, one.length,
|
|
53
|
+
'Invalid number of keys returned, should be 1')
|
|
54
|
+
assert_equal(Utils.normalize_intf_pattern(intf), one[intf].show_name,
|
|
55
|
+
':show_name should be intf name when show_name param specified')
|
|
56
|
+
|
|
57
|
+
# Verify 'all' interfaces
|
|
58
|
+
all = InterfaceEvpnMultisite.interfaces
|
|
59
|
+
assert_operator(all.length, :>, 1,
|
|
60
|
+
'Invalid number of keys returned, should exceed 1')
|
|
61
|
+
assert_empty(all[intf2].show_name,
|
|
62
|
+
':show_name should be empty string when show_name param is nil')
|
|
63
|
+
|
|
64
|
+
# Test non-existent interface does NOT raise when calling interfaces
|
|
65
|
+
Interface.new('loopback543', false).destroy if
|
|
66
|
+
Interface.interfaces(nil, 'loopback543').any?
|
|
67
|
+
no_intf = InterfaceEvpnMultisite.interfaces('loopback543')
|
|
68
|
+
assert_empty(no_intf,
|
|
69
|
+
'InterfaceEvpnMultisite.interfaces hash should be empty')
|
|
70
|
+
|
|
71
|
+
ms.destroy
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_enable_disable
|
|
75
|
+
interface = interfaces[0]
|
|
76
|
+
intf_ms = InterfaceEvpnMultisite.new(interface)
|
|
77
|
+
ms = EvpnMultisite.new(100)
|
|
78
|
+
intf_ms.enable('dci-tracking')
|
|
79
|
+
assert_equal('dci-tracking', intf_ms.tracking)
|
|
80
|
+
intf_ms.disable('dci-tracking')
|
|
81
|
+
assert_nil(intf_ms.tracking)
|
|
82
|
+
ms.destroy
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_enable_with_no_multisite_bordergateway
|
|
86
|
+
interface = interfaces[0]
|
|
87
|
+
intf_ms = InterfaceEvpnMultisite.new(interface)
|
|
88
|
+
ms = EvpnMultisite.new(100)
|
|
89
|
+
ms.destroy
|
|
90
|
+
assert_raises(CliError, 'Invalid command') do
|
|
91
|
+
intf_ms.enable('dci-tracking')
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Copyright (c) 2016 Cisco and/or its affiliates.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
require_relative 'ciscotest'
|
|
16
|
+
require_relative '../lib/cisco_node_utils/interface'
|
|
17
|
+
|
|
18
|
+
# TestX__CLASS_NAME__X - Minitest for X__CLASS_NAME__X node utility class
|
|
19
|
+
class TestInterfaceHsrp < CiscoTestCase
|
|
20
|
+
@skip_unless_supported = 'interface'
|
|
21
|
+
# TESTS
|
|
22
|
+
|
|
23
|
+
def setup
|
|
24
|
+
super
|
|
25
|
+
config_no_warn('no feature hsrp')
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def teardown
|
|
29
|
+
config_no_warn('no feature hsrp') if first_or_last_teardown
|
|
30
|
+
super
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def create_intf
|
|
34
|
+
interface = Interface.new(interfaces[0])
|
|
35
|
+
interface.switchport_mode = :disabled
|
|
36
|
+
interface
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_hsrp_bfd
|
|
40
|
+
skip_legacy_defect?('7.3.0.D1.1', 'CSCuh90262: hsrp indentation')
|
|
41
|
+
ih = create_intf
|
|
42
|
+
if validate_property_excluded?('interface', 'hsrp_bfd')
|
|
43
|
+
assert_nil(ih.hsrp_bfd)
|
|
44
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
45
|
+
ih.hsrp_bfd = true
|
|
46
|
+
end
|
|
47
|
+
return
|
|
48
|
+
end
|
|
49
|
+
assert_equal(ih.default_hsrp_bfd, ih.hsrp_bfd)
|
|
50
|
+
ih.hsrp_bfd = true
|
|
51
|
+
assert_equal(true, ih.hsrp_bfd)
|
|
52
|
+
ih.hsrp_bfd = ih.default_hsrp_bfd
|
|
53
|
+
assert_equal(ih.default_hsrp_bfd, ih.hsrp_bfd)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_hsrp_delay
|
|
57
|
+
skip_legacy_defect?('7.3.0.D1.1', 'CSCuh90262: hsrp indentation')
|
|
58
|
+
ih = create_intf
|
|
59
|
+
if validate_property_excluded?('interface', 'hsrp_delay')
|
|
60
|
+
assert_nil(ih.hsrp_delay_minimum)
|
|
61
|
+
assert_nil(ih.hsrp_delay_reload)
|
|
62
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
63
|
+
ih.hsrp_delay_minimum = 100
|
|
64
|
+
ih.hsrp_delay_reload = 555
|
|
65
|
+
end
|
|
66
|
+
return
|
|
67
|
+
end
|
|
68
|
+
assert_equal(ih.default_hsrp_delay_minimum, ih.hsrp_delay_minimum)
|
|
69
|
+
assert_equal(ih.default_hsrp_delay_reload, ih.hsrp_delay_reload)
|
|
70
|
+
ih.hsrp_delay_minimum = 100
|
|
71
|
+
ih.hsrp_delay_reload = 555
|
|
72
|
+
assert_equal(100, ih.hsrp_delay_minimum)
|
|
73
|
+
assert_equal(555, ih.hsrp_delay_reload)
|
|
74
|
+
ih.hsrp_delay_minimum = ih.default_hsrp_delay_minimum
|
|
75
|
+
ih.hsrp_delay_reload = ih.default_hsrp_delay_reload
|
|
76
|
+
assert_equal(ih.default_hsrp_delay_minimum, ih.hsrp_delay_minimum)
|
|
77
|
+
assert_equal(ih.default_hsrp_delay_reload, ih.hsrp_delay_reload)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_hsrp_mac_refresh
|
|
81
|
+
skip_legacy_defect?('7.3.0.D1.1', 'CSCuh90262: hsrp indentation')
|
|
82
|
+
ih = create_intf
|
|
83
|
+
if validate_property_excluded?('interface', 'hsrp_mac_refresh')
|
|
84
|
+
assert_nil(ih.hsrp_mac_refresh)
|
|
85
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
86
|
+
ih.hsrp_mac_refresh = 60
|
|
87
|
+
end
|
|
88
|
+
return
|
|
89
|
+
end
|
|
90
|
+
assert_equal(ih.default_hsrp_mac_refresh, ih.hsrp_mac_refresh)
|
|
91
|
+
ih.hsrp_mac_refresh = 60
|
|
92
|
+
assert_equal(60, ih.hsrp_mac_refresh)
|
|
93
|
+
ih.hsrp_mac_refresh = ih.default_hsrp_mac_refresh
|
|
94
|
+
assert_equal(ih.default_hsrp_mac_refresh, ih.hsrp_mac_refresh)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_hsrp_use_bia
|
|
98
|
+
skip_legacy_defect?('7.3.0.D1.1', 'CSCuh90262: hsrp indentation')
|
|
99
|
+
ih = create_intf
|
|
100
|
+
if validate_property_excluded?('interface', 'hsrp_use_bia')
|
|
101
|
+
assert_nil(ih.hsrp_use_bia)
|
|
102
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
103
|
+
ih.hsrp_use_bia = :use_bia
|
|
104
|
+
end
|
|
105
|
+
return
|
|
106
|
+
end
|
|
107
|
+
assert_equal(ih.default_hsrp_use_bia, ih.hsrp_use_bia)
|
|
108
|
+
ih.hsrp_use_bia = :use_bia
|
|
109
|
+
assert_equal(:use_bia, ih.hsrp_use_bia)
|
|
110
|
+
ih.hsrp_use_bia = :use_bia_intf
|
|
111
|
+
assert_equal(:use_bia_intf, ih.hsrp_use_bia)
|
|
112
|
+
ih.hsrp_use_bia = :use_bia
|
|
113
|
+
assert_equal(:use_bia, ih.hsrp_use_bia)
|
|
114
|
+
ih.hsrp_use_bia = ih.default_hsrp_use_bia
|
|
115
|
+
assert_equal(ih.default_hsrp_use_bia, ih.hsrp_use_bia)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def test_hsrp_version
|
|
119
|
+
skip_legacy_defect?('7.3.0.D1.1', 'CSCuh90262: hsrp indentation')
|
|
120
|
+
ih = create_intf
|
|
121
|
+
if validate_property_excluded?('interface', 'hsrp_version')
|
|
122
|
+
assert_nil(ih.hsrp_version)
|
|
123
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
124
|
+
ih.hsrp_version = 2
|
|
125
|
+
end
|
|
126
|
+
return
|
|
127
|
+
end
|
|
128
|
+
assert_equal(ih.default_hsrp_version, ih.hsrp_version)
|
|
129
|
+
ih.hsrp_version = 2
|
|
130
|
+
assert_equal(2, ih.hsrp_version)
|
|
131
|
+
ih.hsrp_version = ih.default_hsrp_version
|
|
132
|
+
assert_equal(ih.default_hsrp_version, ih.hsrp_version)
|
|
133
|
+
end
|
|
134
|
+
end
|