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,63 @@
|
|
|
1
|
+
# Copyright (c) 2013-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 'yaml'
|
|
16
|
+
|
|
17
|
+
# Class: PlatformInfo
|
|
18
|
+
# This class reads device specific details from platform_info.yaml
|
|
19
|
+
# These details can be used to customize unit tests for a device
|
|
20
|
+
class PlatformInfo
|
|
21
|
+
# Default constructor for the PlatformInfo class. This class
|
|
22
|
+
# requires the hostname of the device on which UTs are to run
|
|
23
|
+
# to be passed in. The constructor reads platform_info.yaml
|
|
24
|
+
# and stores info for this device in the instance variable
|
|
25
|
+
# @platform_info_hash
|
|
26
|
+
#
|
|
27
|
+
# @param[in] device_name hostname of device on which
|
|
28
|
+
# UTs are to be run
|
|
29
|
+
#
|
|
30
|
+
def initialize(device_name, platform)
|
|
31
|
+
if device_name.nil? || device_name.empty?
|
|
32
|
+
fail 'device name must be specified in PlatformInfo constructor.'
|
|
33
|
+
end
|
|
34
|
+
@platform_info_hash = {}
|
|
35
|
+
|
|
36
|
+
begin
|
|
37
|
+
project_info_hash = YAML.load_file(File.join(File.dirname(__FILE__),
|
|
38
|
+
'platform_info.yaml'))
|
|
39
|
+
rescue RuntimeError
|
|
40
|
+
raise 'Error - could not open platform file - platform_info.yaml'
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
@platform_info_hash = project_info_hash[device_name]
|
|
44
|
+
@platform_info_hash ||= project_info_hash['default'][platform.to_s]
|
|
45
|
+
fail "Error - could not find #{device_name} device specific information " \
|
|
46
|
+
'in platform_info.yaml' if @platform_info_hash.nil?
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# The following instance method will return the value associated with
|
|
50
|
+
# the specified key from the instance variable @platform_info_hash.
|
|
51
|
+
#
|
|
52
|
+
# @param[in] key String value indicating the key to be searched for
|
|
53
|
+
# in @platform_info_hash
|
|
54
|
+
#
|
|
55
|
+
def get_value_from_key(key)
|
|
56
|
+
fail 'key must be specified in the method get_value_from_key' if key.nil?
|
|
57
|
+
|
|
58
|
+
value = @platform_info_hash[key]
|
|
59
|
+
fail "no value exists for the key #{key}" if value.nil?
|
|
60
|
+
|
|
61
|
+
value
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# Copyright (c) 2013-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/aaa_authentication_login'
|
|
17
|
+
|
|
18
|
+
# Test class for AAA Authentication Login
|
|
19
|
+
class TestAaaAuthenLogin < CiscoTestCase
|
|
20
|
+
@skip_unless_supported = 'aaa_authentication_login'
|
|
21
|
+
@@pre_clean_needed = true # rubocop:disable Style/ClassVars
|
|
22
|
+
|
|
23
|
+
def setup
|
|
24
|
+
super
|
|
25
|
+
return unless @@pre_clean_needed
|
|
26
|
+
cleanup
|
|
27
|
+
@@pre_clean_needed = false # rubocop:disable Style/ClassVars
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def teardown
|
|
31
|
+
cleanup
|
|
32
|
+
super
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def cleanup
|
|
36
|
+
# Remove any stale commands that may conflict with this testfile
|
|
37
|
+
s = @device.cmd("show run | i '^aaa authentication' | sed 's/^/no /'")
|
|
38
|
+
s.split("\n").each do |line|
|
|
39
|
+
next unless line[/no aaa/]
|
|
40
|
+
config_no_warn(line)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# DEFAULT(:ascii_authentication)
|
|
45
|
+
# => false
|
|
46
|
+
# rubocop:disable Style/MethodName
|
|
47
|
+
def DEFAULT(prop_name)
|
|
48
|
+
cmd_ref.lookup('aaa_authentication_login', prop_name.to_s).default_value
|
|
49
|
+
end
|
|
50
|
+
# rubocop:enable Style/MethodName
|
|
51
|
+
|
|
52
|
+
def aaaauthenticationlogin_detach(authlogin)
|
|
53
|
+
# Reset the device to a clean test state. Note that AAA will raise an error
|
|
54
|
+
# when disabling an authentication method while a different type is present.
|
|
55
|
+
s = @device.cmd("show run | i 'aaa authentication login'")
|
|
56
|
+
if s[/aaa authentication login (\S+) enable/]
|
|
57
|
+
config("no aaa authentication login #{Regexp.last_match(1)} enable")
|
|
58
|
+
end
|
|
59
|
+
authlogin.ascii_authentication = DEFAULT(:ascii_authentication)
|
|
60
|
+
authlogin.error_display = DEFAULT(:error_display)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_get_ascii_authentication
|
|
64
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
65
|
+
|
|
66
|
+
config('no aaa authentication login ascii-authentication')
|
|
67
|
+
refute(aaaauthlogin.ascii_authentication)
|
|
68
|
+
|
|
69
|
+
config('aaa authentication login ascii-authentication')
|
|
70
|
+
assert(aaaauthlogin.ascii_authentication,
|
|
71
|
+
'Error: AAA authentication login ascii get with preconfig')
|
|
72
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_get_default_ascii_authentication
|
|
76
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
77
|
+
config('no aaa authentication login ascii-authentication')
|
|
78
|
+
assert_equal(DEFAULT(:ascii_authentication),
|
|
79
|
+
aaaauthlogin.default_ascii_authentication,
|
|
80
|
+
'Error: AAA authentication login, default ascii incorrect')
|
|
81
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_set_ascii_authentication
|
|
85
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
86
|
+
|
|
87
|
+
aaaauthlogin.ascii_authentication = true
|
|
88
|
+
assert_show_match(command: 'show run aaa all | no-more',
|
|
89
|
+
pattern: /^aaa authentication login ascii-authentication/)
|
|
90
|
+
|
|
91
|
+
aaaauthlogin.ascii_authentication = false
|
|
92
|
+
refute_show_match(command: 'show run aaa all | no-more',
|
|
93
|
+
pattern: /^aaa authentication login ascii-authentication/)
|
|
94
|
+
|
|
95
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def test_get_chap
|
|
99
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
100
|
+
|
|
101
|
+
config('no aaa authentication login chap enable')
|
|
102
|
+
refute(aaaauthlogin.chap)
|
|
103
|
+
|
|
104
|
+
config('aaa authentication login chap enable')
|
|
105
|
+
assert(aaaauthlogin.chap,
|
|
106
|
+
"Error: AAA authentication login chap get with preconfig\n")
|
|
107
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def test_get_default_chap
|
|
111
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
112
|
+
|
|
113
|
+
config('no aaa authentication login chap enable')
|
|
114
|
+
assert_equal(DEFAULT(:chap),
|
|
115
|
+
aaaauthlogin.default_chap,
|
|
116
|
+
'Error: AAA authentication login, default chap incorrect')
|
|
117
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def test_set_chap
|
|
121
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
122
|
+
|
|
123
|
+
aaaauthlogin.chap = true
|
|
124
|
+
assert_show_match(command: 'show run aaa all | no-more',
|
|
125
|
+
pattern: /^aaa authentication login chap enable/)
|
|
126
|
+
aaaauthlogin.chap = false
|
|
127
|
+
refute_show_match(command: 'show run aaa all | no-more',
|
|
128
|
+
pattern: /^aaa authentication login chap enable/)
|
|
129
|
+
|
|
130
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def test_get_error_display
|
|
134
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
135
|
+
|
|
136
|
+
config('no aaa authentication login error-enable')
|
|
137
|
+
refute(aaaauthlogin.error_display,
|
|
138
|
+
'Error: AAA authentication login error display get')
|
|
139
|
+
|
|
140
|
+
config('aaa authentication login error-enable')
|
|
141
|
+
assert(aaaauthlogin.error_display,
|
|
142
|
+
'Error: AAA authentication login error display get with preconfig')
|
|
143
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def test_get_default_error_display
|
|
147
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
148
|
+
|
|
149
|
+
config('no aaa authentication login error-enable')
|
|
150
|
+
assert_equal(DEFAULT(:error_display),
|
|
151
|
+
aaaauthlogin.default_error_display,
|
|
152
|
+
'Error: default error display incorrect')
|
|
153
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def test_set_error_display
|
|
157
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
158
|
+
|
|
159
|
+
aaaauthlogin.error_display = true
|
|
160
|
+
assert_show_match(command: 'show run aaa all | no-more',
|
|
161
|
+
pattern: /^aaa authentication login error-enable/)
|
|
162
|
+
|
|
163
|
+
aaaauthlogin.error_display = false
|
|
164
|
+
refute_show_match(command: 'show run aaa all | no-more',
|
|
165
|
+
pattern: /^aaa authentication login error-enable/)
|
|
166
|
+
|
|
167
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def test_get_mschap
|
|
171
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
172
|
+
|
|
173
|
+
config('no aaa authentication login mschap enable')
|
|
174
|
+
refute(aaaauthlogin.mschap,
|
|
175
|
+
"Error: AAA authentication login mschap get\n")
|
|
176
|
+
|
|
177
|
+
config('aaa authentication login mschap enable')
|
|
178
|
+
assert(aaaauthlogin.mschap,
|
|
179
|
+
"Error: AAA authentication login mschap get with preconfig\n")
|
|
180
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def test_get_default_mschap
|
|
184
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
185
|
+
|
|
186
|
+
config('no aaa authentication login mschap enable')
|
|
187
|
+
assert_equal(DEFAULT(:mschap),
|
|
188
|
+
aaaauthlogin.default_mschap,
|
|
189
|
+
'Error: AAA authentication login, default mschap incorrect')
|
|
190
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
def test_set_mschap
|
|
194
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
195
|
+
|
|
196
|
+
aaaauthlogin.mschap = true
|
|
197
|
+
assert_show_match(command: 'show run aaa all | no-more',
|
|
198
|
+
pattern: /^aaa authentication login mschap enable/)
|
|
199
|
+
|
|
200
|
+
aaaauthlogin.mschap = false
|
|
201
|
+
refute_show_match(command: 'show run aaa all | no-more',
|
|
202
|
+
pattern: /^aaa authentication login mschap enable/)
|
|
203
|
+
|
|
204
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def test_get_mschapv2
|
|
208
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
209
|
+
|
|
210
|
+
config('no aaa authentication login mschapv2 enable')
|
|
211
|
+
refute(aaaauthlogin.mschapv2,
|
|
212
|
+
"Error: AAA authentication login mschapv2 get\n")
|
|
213
|
+
|
|
214
|
+
config('aaa authentication login mschapv2 enable')
|
|
215
|
+
assert(aaaauthlogin.mschapv2,
|
|
216
|
+
"Error: AAA authentication login mschapv2 get with preconfig\n")
|
|
217
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def test_get_default_mschapv2
|
|
221
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
222
|
+
|
|
223
|
+
config('no aaa authentication login mschapv2 enable')
|
|
224
|
+
assert_equal(DEFAULT(:mschapv2),
|
|
225
|
+
aaaauthlogin.default_mschapv2,
|
|
226
|
+
'Error: AAA authentication login, default mschapv2 incorrect')
|
|
227
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def test_set_mschapv2
|
|
231
|
+
aaaauthlogin = AaaAuthenticationLogin
|
|
232
|
+
|
|
233
|
+
aaaauthlogin.mschapv2 = true
|
|
234
|
+
assert_show_match(command: 'show run aaa all | no-more',
|
|
235
|
+
pattern: /^aaa authentication login mschapv2 enable/)
|
|
236
|
+
|
|
237
|
+
aaaauthlogin.mschapv2 = false
|
|
238
|
+
refute_show_match(command: 'show run aaa all | no-more',
|
|
239
|
+
pattern: /^aaa authentication login mschapv2 enable/)
|
|
240
|
+
|
|
241
|
+
aaaauthenticationlogin_detach(aaaauthlogin)
|
|
242
|
+
end
|
|
243
|
+
end
|