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,286 @@
|
|
|
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/dhcp_relay_global'
|
|
17
|
+
|
|
18
|
+
include Cisco
|
|
19
|
+
# TestDhcpRelayGlobal - Minitest for general functionality
|
|
20
|
+
# of the DhcpRelayGlobal class.
|
|
21
|
+
class TestDhcpRelayGlobal < CiscoTestCase
|
|
22
|
+
@skip_unless_supported = 'dhcp_relay_global'
|
|
23
|
+
DEFAULT_NAME = 'default'
|
|
24
|
+
|
|
25
|
+
# Tests
|
|
26
|
+
|
|
27
|
+
def setup
|
|
28
|
+
super
|
|
29
|
+
config_no_warn('no feature dhcp')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def teardown
|
|
33
|
+
config_no_warn('no feature dhcp') if first_or_last_teardown
|
|
34
|
+
super
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def create_dhcp_relay_global
|
|
38
|
+
DhcpRelayGlobal.new
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_collection_empty
|
|
42
|
+
drg = DhcpRelayGlobal.globals
|
|
43
|
+
assert_empty(drg)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_destroy
|
|
47
|
+
drg = create_dhcp_relay_global
|
|
48
|
+
assert_equal(true, Feature.dhcp_enabled?)
|
|
49
|
+
|
|
50
|
+
drg.destroy
|
|
51
|
+
[:ipv4_information_option,
|
|
52
|
+
:ipv4_information_option_trust,
|
|
53
|
+
:ipv4_information_option_vpn,
|
|
54
|
+
:ipv4_information_trust_all,
|
|
55
|
+
:ipv4_relay,
|
|
56
|
+
:ipv4_smart_relay,
|
|
57
|
+
:ipv4_src_addr_hsrp,
|
|
58
|
+
:ipv4_src_intf,
|
|
59
|
+
:ipv4_sub_option_circuit_id_custom,
|
|
60
|
+
:ipv4_sub_option_circuit_id_string,
|
|
61
|
+
:ipv4_sub_option_cisco,
|
|
62
|
+
:ipv6_option_cisco,
|
|
63
|
+
:ipv6_option_vpn,
|
|
64
|
+
:ipv6_relay,
|
|
65
|
+
:ipv6_src_intf,
|
|
66
|
+
].each do |prop|
|
|
67
|
+
assert_equal(drg.send("default_#{prop}"), drg.send("#{prop}")) if
|
|
68
|
+
drg.send("#{prop}")
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_ipv4_information_option
|
|
73
|
+
drg = create_dhcp_relay_global
|
|
74
|
+
assert_equal(drg.default_ipv4_information_option, drg.ipv4_information_option)
|
|
75
|
+
drg.ipv4_information_option = true
|
|
76
|
+
assert_equal(true, drg.ipv4_information_option)
|
|
77
|
+
drg.ipv4_information_option = drg.default_ipv4_information_option
|
|
78
|
+
assert_equal(drg.default_ipv4_information_option, drg.ipv4_information_option)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def test_ipv4_information_option_trust
|
|
82
|
+
drg = create_dhcp_relay_global
|
|
83
|
+
if validate_property_excluded?('dhcp_relay_global',
|
|
84
|
+
'ipv4_information_option_trust')
|
|
85
|
+
assert_nil(drg.ipv4_information_option_trust)
|
|
86
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
87
|
+
drg.ipv4_information_option_trust = true
|
|
88
|
+
end
|
|
89
|
+
return
|
|
90
|
+
end
|
|
91
|
+
assert_equal(drg.default_ipv4_information_option_trust,
|
|
92
|
+
drg.ipv4_information_option_trust)
|
|
93
|
+
drg.ipv4_information_option_trust = true
|
|
94
|
+
assert_equal(true, drg.ipv4_information_option_trust)
|
|
95
|
+
drg.ipv4_information_option_trust = drg.default_ipv4_information_option_trust
|
|
96
|
+
assert_equal(drg.default_ipv4_information_option_trust,
|
|
97
|
+
drg.ipv4_information_option_trust)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def test_ipv4_information_option_vpn
|
|
101
|
+
drg = create_dhcp_relay_global
|
|
102
|
+
assert_equal(drg.default_ipv4_information_option_vpn,
|
|
103
|
+
drg.ipv4_information_option_vpn)
|
|
104
|
+
drg.ipv4_information_option_vpn = true
|
|
105
|
+
assert_equal(true, drg.ipv4_information_option_vpn)
|
|
106
|
+
drg.ipv4_information_option_vpn = drg.default_ipv4_information_option_vpn
|
|
107
|
+
assert_equal(drg.default_ipv4_information_option_vpn,
|
|
108
|
+
drg.ipv4_information_option_vpn)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def test_ipv4_information_trust_all
|
|
112
|
+
drg = create_dhcp_relay_global
|
|
113
|
+
if validate_property_excluded?('dhcp_relay_global',
|
|
114
|
+
'ipv4_information_trust_all')
|
|
115
|
+
assert_nil(drg.ipv4_information_trust_all)
|
|
116
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
117
|
+
drg.ipv4_information_trust_all = true
|
|
118
|
+
end
|
|
119
|
+
return
|
|
120
|
+
end
|
|
121
|
+
assert_equal(drg.default_ipv4_information_trust_all,
|
|
122
|
+
drg.ipv4_information_trust_all)
|
|
123
|
+
drg.ipv4_information_trust_all = true
|
|
124
|
+
assert_equal(true, drg.ipv4_information_trust_all)
|
|
125
|
+
drg.ipv4_information_trust_all = drg.default_ipv4_information_trust_all
|
|
126
|
+
assert_equal(drg.default_ipv4_information_trust_all,
|
|
127
|
+
drg.ipv4_information_trust_all)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def test_ipv4_relay
|
|
131
|
+
drg = create_dhcp_relay_global
|
|
132
|
+
assert_equal(drg.default_ipv4_relay, drg.ipv4_relay)
|
|
133
|
+
drg.ipv4_relay = true
|
|
134
|
+
assert_equal(true, drg.ipv4_relay)
|
|
135
|
+
drg.ipv4_relay = false
|
|
136
|
+
assert_equal(false, drg.ipv4_relay)
|
|
137
|
+
drg.ipv4_relay = drg.default_ipv4_relay
|
|
138
|
+
assert_equal(drg.default_ipv4_relay, drg.ipv4_relay)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def test_ipv4_smart_relay
|
|
142
|
+
drg = create_dhcp_relay_global
|
|
143
|
+
assert_equal(drg.default_ipv4_smart_relay, drg.ipv4_smart_relay)
|
|
144
|
+
drg.ipv4_smart_relay = true
|
|
145
|
+
assert_equal(true, drg.ipv4_smart_relay)
|
|
146
|
+
drg.ipv4_smart_relay = drg.default_ipv4_smart_relay
|
|
147
|
+
assert_equal(drg.default_ipv4_smart_relay, drg.ipv4_smart_relay)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def test_ipv4_src_addr_hsrp
|
|
151
|
+
drg = create_dhcp_relay_global
|
|
152
|
+
if validate_property_excluded?('dhcp_relay_global',
|
|
153
|
+
'ipv4_src_addr_hsrp')
|
|
154
|
+
assert_nil(drg.ipv4_src_addr_hsrp)
|
|
155
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
156
|
+
drg.ipv4_src_addr_hsrp = true
|
|
157
|
+
end
|
|
158
|
+
return
|
|
159
|
+
end
|
|
160
|
+
assert_equal(drg.default_ipv4_src_addr_hsrp,
|
|
161
|
+
drg.ipv4_src_addr_hsrp)
|
|
162
|
+
drg.ipv4_src_addr_hsrp = true
|
|
163
|
+
assert_equal(true, drg.ipv4_src_addr_hsrp)
|
|
164
|
+
drg.ipv4_src_addr_hsrp = drg.default_ipv4_src_addr_hsrp
|
|
165
|
+
assert_equal(drg.default_ipv4_src_addr_hsrp,
|
|
166
|
+
drg.ipv4_src_addr_hsrp)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def test_ipv4_src_intf
|
|
170
|
+
drg = create_dhcp_relay_global
|
|
171
|
+
if validate_property_excluded?('dhcp_relay_global', 'ipv4_src_intf')
|
|
172
|
+
assert_nil(drg.ipv4_src_intf)
|
|
173
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
174
|
+
drg.ipv4_src_intf = 'port-channel200'
|
|
175
|
+
end
|
|
176
|
+
return
|
|
177
|
+
end
|
|
178
|
+
assert_equal(drg.default_ipv4_src_intf, drg.ipv4_src_intf)
|
|
179
|
+
drg.ipv4_src_intf = 'port-channel200'
|
|
180
|
+
assert_equal('port-channel200', drg.ipv4_src_intf)
|
|
181
|
+
drg.ipv4_src_intf = drg.default_ipv4_src_intf
|
|
182
|
+
assert_equal(drg.default_ipv4_src_intf, drg.ipv4_src_intf)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def test_ipv4_sub_option_circuit_id_custom
|
|
186
|
+
skip_nexus_i2_image?
|
|
187
|
+
drg = create_dhcp_relay_global
|
|
188
|
+
if validate_property_excluded?('dhcp_relay_global',
|
|
189
|
+
'ipv4_sub_option_circuit_id_custom')
|
|
190
|
+
assert_nil(drg.ipv4_sub_option_circuit_id_custom)
|
|
191
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
192
|
+
drg.ipv4_sub_option_circuit_id_custom = true
|
|
193
|
+
end
|
|
194
|
+
return
|
|
195
|
+
end
|
|
196
|
+
assert_equal(drg.default_ipv4_sub_option_circuit_id_custom,
|
|
197
|
+
drg.ipv4_sub_option_circuit_id_custom)
|
|
198
|
+
drg.ipv4_sub_option_circuit_id_custom = true
|
|
199
|
+
assert_equal(true, drg.ipv4_sub_option_circuit_id_custom)
|
|
200
|
+
drg.ipv4_sub_option_circuit_id_custom = drg.default_ipv4_sub_option_circuit_id_custom
|
|
201
|
+
assert_equal(drg.default_ipv4_sub_option_circuit_id_custom,
|
|
202
|
+
drg.ipv4_sub_option_circuit_id_custom)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def test_ipv4_sub_option_circuit_id_string
|
|
206
|
+
drg = create_dhcp_relay_global
|
|
207
|
+
if validate_property_excluded?('dhcp_relay_global', 'ipv4_sub_option_circuit_id_string')
|
|
208
|
+
assert_nil(drg.ipv4_sub_option_circuit_id_string)
|
|
209
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
210
|
+
drg.ipv4_sub_option_circuit_id_string = '%p%p'
|
|
211
|
+
end
|
|
212
|
+
return
|
|
213
|
+
end
|
|
214
|
+
skip_incompat_version?('dhcp_relay_global', 'ipv4_sub_option_circuit_id_string')
|
|
215
|
+
assert_equal(drg.default_ipv4_sub_option_circuit_id_string, drg.ipv4_sub_option_circuit_id_string)
|
|
216
|
+
str = '%p%p'
|
|
217
|
+
drg.ipv4_sub_option_circuit_id_string = str
|
|
218
|
+
assert_match(/#{str}/, drg.ipv4_sub_option_circuit_id_string)
|
|
219
|
+
drg.ipv4_sub_option_circuit_id_string = drg.default_ipv4_sub_option_circuit_id_string
|
|
220
|
+
assert_equal(drg.default_ipv4_sub_option_circuit_id_string, drg.ipv4_sub_option_circuit_id_string)
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def test_ipv4_sub_option_cisco
|
|
224
|
+
drg = create_dhcp_relay_global
|
|
225
|
+
assert_equal(drg.default_ipv4_sub_option_cisco, drg.ipv4_sub_option_cisco)
|
|
226
|
+
drg.ipv4_sub_option_cisco = true
|
|
227
|
+
assert_equal(true, drg.ipv4_sub_option_cisco)
|
|
228
|
+
drg.ipv4_sub_option_cisco = drg.default_ipv4_sub_option_cisco
|
|
229
|
+
assert_equal(drg.default_ipv4_sub_option_cisco, drg.ipv4_sub_option_cisco)
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
def test_ipv6_option_cisco
|
|
233
|
+
drg = create_dhcp_relay_global
|
|
234
|
+
if validate_property_excluded?('dhcp_relay_global',
|
|
235
|
+
'ipv6_option_cisco')
|
|
236
|
+
assert_nil(drg.ipv6_option_cisco)
|
|
237
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
238
|
+
drg.ipv6_option_cisco = true
|
|
239
|
+
end
|
|
240
|
+
return
|
|
241
|
+
end
|
|
242
|
+
assert_equal(drg.default_ipv6_option_cisco,
|
|
243
|
+
drg.ipv6_option_cisco)
|
|
244
|
+
drg.ipv6_option_cisco = true
|
|
245
|
+
assert_equal(true, drg.ipv6_option_cisco)
|
|
246
|
+
drg.ipv6_option_cisco = drg.default_ipv6_option_cisco
|
|
247
|
+
assert_equal(drg.default_ipv6_option_cisco,
|
|
248
|
+
drg.ipv6_option_cisco)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
def test_ipv6_option_vpn
|
|
252
|
+
drg = create_dhcp_relay_global
|
|
253
|
+
assert_equal(drg.default_ipv6_option_vpn, drg.ipv6_option_vpn)
|
|
254
|
+
drg.ipv6_option_vpn = true
|
|
255
|
+
assert_equal(true, drg.ipv6_option_vpn)
|
|
256
|
+
drg.ipv6_option_vpn = drg.default_ipv6_option_vpn
|
|
257
|
+
assert_equal(drg.default_ipv6_option_vpn, drg.ipv6_option_vpn)
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
def test_ipv6_relay
|
|
261
|
+
drg = create_dhcp_relay_global
|
|
262
|
+
assert_equal(drg.default_ipv6_relay, drg.ipv6_relay)
|
|
263
|
+
drg.ipv6_relay = true
|
|
264
|
+
assert_equal(true, drg.ipv6_relay)
|
|
265
|
+
drg.ipv6_relay = false
|
|
266
|
+
assert_equal(false, drg.ipv6_relay)
|
|
267
|
+
drg.ipv6_relay = drg.default_ipv6_relay
|
|
268
|
+
assert_equal(drg.default_ipv6_relay, drg.ipv6_relay)
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
def test_ipv6_src_intf
|
|
272
|
+
drg = create_dhcp_relay_global
|
|
273
|
+
if validate_property_excluded?('dhcp_relay_global', 'ipv6_src_intf')
|
|
274
|
+
assert_nil(drg.ipv6_src_intf)
|
|
275
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
276
|
+
drg.ipv6_src_intf = 'loopback2'
|
|
277
|
+
end
|
|
278
|
+
return
|
|
279
|
+
end
|
|
280
|
+
assert_equal(drg.default_ipv6_src_intf, drg.ipv6_src_intf)
|
|
281
|
+
drg.ipv6_src_intf = 'loopback2 '
|
|
282
|
+
assert_equal('loopback2', drg.ipv6_src_intf)
|
|
283
|
+
drg.ipv6_src_intf = drg.default_ipv6_src_intf
|
|
284
|
+
assert_equal(drg.default_ipv6_src_intf, drg.ipv6_src_intf)
|
|
285
|
+
end
|
|
286
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Minitest for DnsDomain class
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2014-2016 Cisco and/or its affiliates.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
|
|
18
|
+
require_relative 'ciscotest'
|
|
19
|
+
require_relative '../lib/cisco_node_utils/dns_domain'
|
|
20
|
+
|
|
21
|
+
# TestDnsDomain - Minitest for DnsDomain node utility.
|
|
22
|
+
class TestDnsDomain < CiscoTestCase
|
|
23
|
+
@skip_unless_supported = 'dnsclient'
|
|
24
|
+
|
|
25
|
+
def setup
|
|
26
|
+
# setup runs at the beginning of each test
|
|
27
|
+
super
|
|
28
|
+
@backup_resolve = backup_resolv_file
|
|
29
|
+
no_dnsdomain_tests
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def teardown
|
|
33
|
+
# teardown runs at the end of each test
|
|
34
|
+
no_dnsdomain_tests
|
|
35
|
+
restore_resolv_file(@backup_resolve)
|
|
36
|
+
super
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def no_dnsdomain_tests
|
|
40
|
+
# Turn the feature off for a clean test.
|
|
41
|
+
if platform == :ios_xr
|
|
42
|
+
config('no domain list aoeu.com',
|
|
43
|
+
'no domain list asdf.com',
|
|
44
|
+
'no vrf test')
|
|
45
|
+
else
|
|
46
|
+
config('no ip domain-list aoeu.com',
|
|
47
|
+
'no ip domain-list asdf.com',
|
|
48
|
+
'no vrf context test')
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# TESTS
|
|
53
|
+
|
|
54
|
+
def test_create_destroy_single
|
|
55
|
+
id = 'aoeu.com'
|
|
56
|
+
refute_includes(Cisco::DnsDomain.dnsdomains, id)
|
|
57
|
+
|
|
58
|
+
ns = Cisco::DnsDomain.new(id)
|
|
59
|
+
assert_includes(Cisco::DnsDomain.dnsdomains, id)
|
|
60
|
+
assert_equal(Cisco::DnsDomain.dnsdomains[id], ns)
|
|
61
|
+
|
|
62
|
+
ns.destroy
|
|
63
|
+
refute_includes(Cisco::DnsDomain.dnsdomains, id)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_create_destroy_multiple
|
|
67
|
+
id1 = 'aoeu.com'
|
|
68
|
+
id2 = 'asdf.com'
|
|
69
|
+
refute_includes(Cisco::DnsDomain.dnsdomains, id1)
|
|
70
|
+
refute_includes(Cisco::DnsDomain.dnsdomains, id2)
|
|
71
|
+
|
|
72
|
+
ns1 = Cisco::DnsDomain.new(id1)
|
|
73
|
+
ns2 = Cisco::DnsDomain.new(id2)
|
|
74
|
+
assert_includes(Cisco::DnsDomain.dnsdomains, id1)
|
|
75
|
+
assert_includes(Cisco::DnsDomain.dnsdomains, id2)
|
|
76
|
+
assert_equal(Cisco::DnsDomain.dnsdomains[id1], ns1)
|
|
77
|
+
assert_equal(Cisco::DnsDomain.dnsdomains[id2], ns2)
|
|
78
|
+
|
|
79
|
+
ns1.destroy
|
|
80
|
+
refute_includes(Cisco::DnsDomain.dnsdomains, id1)
|
|
81
|
+
assert_includes(Cisco::DnsDomain.dnsdomains, id2)
|
|
82
|
+
ns2.destroy
|
|
83
|
+
refute_includes(Cisco::DnsDomain.dnsdomains, id2)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_create_destroy_single_vrf
|
|
87
|
+
id = 'aoeu.com'
|
|
88
|
+
vrf = 'test'
|
|
89
|
+
non_vrf = Cisco::DnsDomain.new(id)
|
|
90
|
+
assert_includes(Cisco::DnsDomain.dnsdomains, id)
|
|
91
|
+
refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id)
|
|
92
|
+
|
|
93
|
+
ns = Cisco::DnsDomain.new(id, vrf)
|
|
94
|
+
assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id)
|
|
95
|
+
assert_equal(Cisco::DnsDomain.dnsdomains(vrf)[id], ns)
|
|
96
|
+
|
|
97
|
+
ns.destroy
|
|
98
|
+
refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id)
|
|
99
|
+
assert_includes(Cisco::DnsDomain.dnsdomains, id)
|
|
100
|
+
non_vrf.destroy
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def test_create_destroy_multiple_vrf
|
|
104
|
+
id1 = 'aoeu.com'
|
|
105
|
+
id2 = 'asdf.com'
|
|
106
|
+
vrf = 'test'
|
|
107
|
+
refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id1)
|
|
108
|
+
refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
|
|
109
|
+
|
|
110
|
+
ns1 = Cisco::DnsDomain.new(id1, vrf)
|
|
111
|
+
ns2 = Cisco::DnsDomain.new(id2, vrf)
|
|
112
|
+
assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id1)
|
|
113
|
+
assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
|
|
114
|
+
assert_equal(Cisco::DnsDomain.dnsdomains(vrf)[id1], ns1)
|
|
115
|
+
assert_equal(Cisco::DnsDomain.dnsdomains(vrf)[id2], ns2)
|
|
116
|
+
|
|
117
|
+
ns1.destroy
|
|
118
|
+
refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id1)
|
|
119
|
+
assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
|
|
120
|
+
ns2.destroy
|
|
121
|
+
refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
|
|
122
|
+
end
|
|
123
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Minitest for DomainName class
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2014-2016 Cisco and/or its affiliates.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
|
|
18
|
+
require_relative 'ciscotest'
|
|
19
|
+
require_relative '../lib/cisco_node_utils/domain_name'
|
|
20
|
+
|
|
21
|
+
# TestDomainName - Minitest for DomainName node utility.
|
|
22
|
+
class TestDomainName < CiscoTestCase
|
|
23
|
+
@skip_unless_supported = 'dnsclient'
|
|
24
|
+
|
|
25
|
+
def setup
|
|
26
|
+
# setup runs at the beginning of each test
|
|
27
|
+
super
|
|
28
|
+
@backup_resolve = backup_resolv_file
|
|
29
|
+
no_domainname_test_xyz
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def teardown
|
|
33
|
+
# teardown runs at the end of each test
|
|
34
|
+
no_domainname_test_xyz
|
|
35
|
+
restore_resolv_file(@backup_resolve)
|
|
36
|
+
super
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def no_domainname_test_xyz
|
|
40
|
+
# Turn the feature off for a clean test.
|
|
41
|
+
if platform == :ios_xr
|
|
42
|
+
config('no domain name test.abc',
|
|
43
|
+
'no domain name test.xyz',
|
|
44
|
+
'no vrf test')
|
|
45
|
+
else
|
|
46
|
+
config('no ip domain-name test.abc',
|
|
47
|
+
'no ip domain-name test.xyz',
|
|
48
|
+
'no vrf context test')
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# TESTS
|
|
53
|
+
|
|
54
|
+
def test_create_replace_destroy
|
|
55
|
+
name1 = 'test.abc'
|
|
56
|
+
name2 = 'test.xyz'
|
|
57
|
+
refute_includes(Cisco::DomainName.domainnames, name1)
|
|
58
|
+
refute_includes(Cisco::DomainName.domainnames, name2)
|
|
59
|
+
|
|
60
|
+
domain = Cisco::DomainName.new(name1)
|
|
61
|
+
assert_includes(Cisco::DomainName.domainnames, name1)
|
|
62
|
+
refute_includes(Cisco::DomainName.domainnames, name2)
|
|
63
|
+
assert_equal(Cisco::DomainName.domainnames[name1], domain)
|
|
64
|
+
|
|
65
|
+
domain = Cisco::DomainName.new(name2)
|
|
66
|
+
refute_includes(Cisco::DomainName.domainnames, name1)
|
|
67
|
+
assert_includes(Cisco::DomainName.domainnames, name2)
|
|
68
|
+
assert_equal(Cisco::DomainName.domainnames[name2], domain)
|
|
69
|
+
|
|
70
|
+
domain.destroy
|
|
71
|
+
refute_includes(Cisco::DomainName.domainnames, name1)
|
|
72
|
+
refute_includes(Cisco::DomainName.domainnames, name2)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_create_replace_destroy_vrf
|
|
76
|
+
name1 = 'test.abc'
|
|
77
|
+
name2 = 'test.xyz'
|
|
78
|
+
vrf = 'test'
|
|
79
|
+
refute_includes(Cisco::DomainName.domainnames(vrf), name1)
|
|
80
|
+
refute_includes(Cisco::DomainName.domainnames(vrf), name2)
|
|
81
|
+
|
|
82
|
+
domain = Cisco::DomainName.new(name1, vrf)
|
|
83
|
+
assert_includes(Cisco::DomainName.domainnames(vrf), name1)
|
|
84
|
+
refute_includes(Cisco::DomainName.domainnames(vrf), name2)
|
|
85
|
+
assert_equal(Cisco::DomainName.domainnames(vrf)[name1], domain)
|
|
86
|
+
|
|
87
|
+
domain = Cisco::DomainName.new(name2, vrf)
|
|
88
|
+
refute_includes(Cisco::DomainName.domainnames(vrf), name1)
|
|
89
|
+
assert_includes(Cisco::DomainName.domainnames(vrf), name2)
|
|
90
|
+
assert_equal(Cisco::DomainName.domainnames(vrf)[name2], domain)
|
|
91
|
+
|
|
92
|
+
domain.destroy
|
|
93
|
+
refute_includes(Cisco::DomainName.domainnames(vrf), name1)
|
|
94
|
+
refute_includes(Cisco::DomainName.domainnames(vrf), name2)
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Copyright (c) 2014-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/encapsulation'
|
|
17
|
+
require_relative '../lib/cisco_node_utils/vdc'
|
|
18
|
+
|
|
19
|
+
# TestEncapsulation - Minitest for Encapsulation node utility class
|
|
20
|
+
class TestEncapsulation < CiscoTestCase
|
|
21
|
+
@skip_unless_supported = 'encapsulation'
|
|
22
|
+
@@pre_clean_needed = true # rubocop:disable Style/ClassVars
|
|
23
|
+
|
|
24
|
+
def setup
|
|
25
|
+
super
|
|
26
|
+
vdc_limit_f3_no_intf_needed(:set)
|
|
27
|
+
return unless @@pre_clean_needed
|
|
28
|
+
cleanup
|
|
29
|
+
@@pre_clean_needed = false # rubocop:disable Style/ClassVars
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def teardown
|
|
33
|
+
vdc_limit_f3_no_intf_needed(:clear) if first_or_last_teardown
|
|
34
|
+
cleanup
|
|
35
|
+
super
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def cleanup
|
|
39
|
+
config_no_warn('no feature vni')
|
|
40
|
+
Encapsulation.encaps.each do |_encap, obj|
|
|
41
|
+
obj.destroy
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# TESTS
|
|
46
|
+
|
|
47
|
+
def test_create_destroy
|
|
48
|
+
profile = 'cisco'
|
|
49
|
+
e = Encapsulation.new(profile)
|
|
50
|
+
assert(Encapsulation.encaps[profile], "profile '#{profile}' not found")
|
|
51
|
+
e.destroy
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_dot1q_map
|
|
55
|
+
e = Encapsulation.new('cisco')
|
|
56
|
+
assert_equal(e.default_dot1q_map, e.dot1q_map)
|
|
57
|
+
|
|
58
|
+
map = ['100-110,150', '5000-5010,5050']
|
|
59
|
+
e.dot1q_map = map
|
|
60
|
+
assert_equal(map, e.dot1q_map)
|
|
61
|
+
|
|
62
|
+
e.dot1q_map = e.default_dot1q_map
|
|
63
|
+
assert_equal(e.default_dot1q_map, e.dot1q_map)
|
|
64
|
+
|
|
65
|
+
e.destroy
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_dot1q_map_negative
|
|
69
|
+
e = Encapsulation.new('cisco')
|
|
70
|
+
assert_raises(CliError) do
|
|
71
|
+
# Test for range imbalance (3 vlans to only 2 vnis)
|
|
72
|
+
e.dot1q_map = ['101-103', '5101-5102']
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Evpn Multicast Unit Tests
|
|
2
|
+
#
|
|
3
|
+
# Rahul Shenoy, January, 2018
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2018 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/evpn_multicast'
|
|
21
|
+
require_relative '../lib/cisco_node_utils/feature'
|
|
22
|
+
|
|
23
|
+
# TestEvpnMulticast - Minitest for EvpnMulticast class
|
|
24
|
+
class TestEvpnMulticast < CiscoTestCase
|
|
25
|
+
@skip_unless_supported = 'evpn_multicast'
|
|
26
|
+
|
|
27
|
+
def setup
|
|
28
|
+
# Disable feature ngmvpn before each test to
|
|
29
|
+
# ensure we are starting with a clean slate for each test.
|
|
30
|
+
super
|
|
31
|
+
skip_incompat_version?('feature', 'ngmvpn')
|
|
32
|
+
config_no_warn('no feature ngmvpn')
|
|
33
|
+
config_no_warn('no advertise evpn multicast')
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def teardown
|
|
37
|
+
# disable feature ngmvpn and advertise evpn multicast
|
|
38
|
+
# after each test
|
|
39
|
+
config_no_warn('no feature ngmvpn')
|
|
40
|
+
config_no_warn('no advertise evpn multicast')
|
|
41
|
+
super
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_create_and_destroy
|
|
45
|
+
mc = EvpnMulticast.new
|
|
46
|
+
assert_equal('advertise evpn multicast', mc.multicast,
|
|
47
|
+
'Error: failed to enable evpn multicast')
|
|
48
|
+
assert(Feature.ngmvpn_enabled?,
|
|
49
|
+
'Error: failed to enable feature ngmvpn')
|
|
50
|
+
mc.destroy
|
|
51
|
+
assert_equal('', mc.multicast,
|
|
52
|
+
'Error: failed to disable evpn multicast')
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_multicast
|
|
56
|
+
mc = EvpnMulticast.new
|
|
57
|
+
mc.multicast = false
|
|
58
|
+
assert_equal('', mc.multicast,
|
|
59
|
+
'Error: failed to disable evpn multicast')
|
|
60
|
+
mc.multicast = true
|
|
61
|
+
assert_equal('advertise evpn multicast', mc.multicast,
|
|
62
|
+
'Error: failed to enable evpn multicast')
|
|
63
|
+
mc.destroy
|
|
64
|
+
end
|
|
65
|
+
end
|