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,101 @@
|
|
|
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 'node_util'
|
|
16
|
+
|
|
17
|
+
module Cisco
|
|
18
|
+
# Acl - node utility class for ACL configuration
|
|
19
|
+
class Acl < NodeUtil
|
|
20
|
+
attr_reader :acl_name, :afi
|
|
21
|
+
|
|
22
|
+
def initialize(afi, acl_name, instantiate=true)
|
|
23
|
+
@set_args = @get_args = { afi: Acl.afi_cli(afi), acl_name: acl_name.to_s }
|
|
24
|
+
create if instantiate
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Return all acls currently on the switch
|
|
28
|
+
def self.acls
|
|
29
|
+
afis = %w(ipv4 ipv6)
|
|
30
|
+
acl_hash = {}
|
|
31
|
+
afis.each do |afi|
|
|
32
|
+
acl_hash[afi] = {}
|
|
33
|
+
afi_cli = Acl.afi_cli(afi)
|
|
34
|
+
instances = config_get('acl', 'all_acls', afi: afi_cli)
|
|
35
|
+
|
|
36
|
+
next if instances.nil?
|
|
37
|
+
instances.each do |acl_name|
|
|
38
|
+
acl_hash[afi][acl_name] = Acl.new(afi, acl_name, false)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
acl_hash
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Platform-specific afi cli string
|
|
45
|
+
def self.afi_cli(afi)
|
|
46
|
+
fail ArgumentError, "Argument afi must be 'ipv4' or 'ipv6'" unless
|
|
47
|
+
afi[/(ipv4|ipv6)/]
|
|
48
|
+
afi = 'ip' if platform == :nexus && afi[/ipv4/]
|
|
49
|
+
afi
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def create
|
|
53
|
+
config_acl('')
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def destroy
|
|
57
|
+
config_acl('no')
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def config_acl(state)
|
|
61
|
+
@set_args[:state] = state
|
|
62
|
+
config_set('acl', 'acl', @set_args)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# ----------
|
|
66
|
+
# PROPERTIES
|
|
67
|
+
# ----------
|
|
68
|
+
def stats_per_entry
|
|
69
|
+
config_get('acl', 'stats_per_entry', @get_args)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def stats_per_entry=(state)
|
|
73
|
+
@set_args[:state] = (state ? '' : 'no')
|
|
74
|
+
config_set('acl', 'stats_per_entry', @set_args)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def default_stats_per_entry
|
|
78
|
+
config_get_default('acl', 'stats_per_entry')
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def fragments
|
|
82
|
+
config_get('acl', 'fragments', @get_args)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def fragments=(action)
|
|
86
|
+
@set_args[:state] = (action ? '' : 'no')
|
|
87
|
+
action = fragments unless action
|
|
88
|
+
@set_args[:action] = action
|
|
89
|
+
config_set('acl', 'fragments', @set_args) if action
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def default_fragments
|
|
93
|
+
config_get_default('acl', 'fragments')
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# acl == overide func
|
|
97
|
+
def ==(other)
|
|
98
|
+
acl_name == other.acl_name && afi == other.afi
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Banner provider class
|
|
2
|
+
#
|
|
3
|
+
# Rick Sherman et al., August 2018
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2014-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 'node_util'
|
|
20
|
+
|
|
21
|
+
module Cisco
|
|
22
|
+
# Banner - node utility class for Banner configuration management
|
|
23
|
+
class Banner < NodeUtil
|
|
24
|
+
attr_reader :name
|
|
25
|
+
|
|
26
|
+
def initialize(name)
|
|
27
|
+
fail TypeError unless name.is_a?(String)
|
|
28
|
+
fail ArgumentError,
|
|
29
|
+
"This provider only accepts an id of 'default'" \
|
|
30
|
+
unless name.eql?('default')
|
|
31
|
+
@name = name
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.banners
|
|
35
|
+
hash = {}
|
|
36
|
+
hash['default'] = Banner.new('default')
|
|
37
|
+
hash
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def ==(other)
|
|
41
|
+
name == other.name
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def motd
|
|
45
|
+
config_get('banner', 'motd')
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def motd=(val)
|
|
49
|
+
if val.nil? && (motd != default_motd)
|
|
50
|
+
config_set('banner', 'motd', state: 'no', motd: '')
|
|
51
|
+
elsif !val.nil?
|
|
52
|
+
config_set('banner',
|
|
53
|
+
'motd',
|
|
54
|
+
state: '',
|
|
55
|
+
motd: "^#{val.gsub(/\n/, '\\n')}^")
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def default_motd
|
|
60
|
+
config_get_default('banner', 'motd')
|
|
61
|
+
end
|
|
62
|
+
end # class
|
|
63
|
+
end # module
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
#
|
|
2
|
+
# NXAPI implementation of BFD Global class
|
|
3
|
+
#
|
|
4
|
+
# May 2016, Sai Chintalapudi
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2016 Cisco and/or its affiliates.
|
|
7
|
+
#
|
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
# you may not use this file except in compliance with the License.
|
|
10
|
+
# You may obtain a copy of the License at
|
|
11
|
+
#
|
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
#
|
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
|
|
20
|
+
require_relative 'node_util'
|
|
21
|
+
|
|
22
|
+
module Cisco
|
|
23
|
+
# node_utils class for bfd_global
|
|
24
|
+
class BfdGlobal < NodeUtil
|
|
25
|
+
attr_reader :name
|
|
26
|
+
|
|
27
|
+
def initialize(instantiate=true)
|
|
28
|
+
set_args_keys_default
|
|
29
|
+
|
|
30
|
+
Feature.bfd_enable if instantiate
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Reset everything back to default
|
|
34
|
+
def destroy
|
|
35
|
+
return unless Feature.bfd_enabled?
|
|
36
|
+
[:interval,
|
|
37
|
+
:ipv4_interval,
|
|
38
|
+
:ipv6_interval,
|
|
39
|
+
:fabricpath_interval,
|
|
40
|
+
:echo_interface,
|
|
41
|
+
:echo_rx_interval,
|
|
42
|
+
:ipv4_echo_rx_interval,
|
|
43
|
+
:ipv6_echo_rx_interval,
|
|
44
|
+
:fabricpath_vlan,
|
|
45
|
+
:slow_timer,
|
|
46
|
+
:ipv4_slow_timer,
|
|
47
|
+
:ipv6_slow_timer,
|
|
48
|
+
:fabricpath_slow_timer,
|
|
49
|
+
:startup_timer,
|
|
50
|
+
].each do |prop|
|
|
51
|
+
send("#{prop}=", send("default_#{prop}")) if
|
|
52
|
+
send prop
|
|
53
|
+
end
|
|
54
|
+
set_args_keys_default
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Helper method to delete @set_args hash keys
|
|
58
|
+
def set_args_keys_default
|
|
59
|
+
keys = { state: '' }
|
|
60
|
+
@get_args = @set_args = keys
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# rubocop:disable Style/AccessorMethodName
|
|
64
|
+
def set_args_keys(hash={})
|
|
65
|
+
set_args_keys_default
|
|
66
|
+
@set_args = @get_args.merge!(hash) unless hash.empty?
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
########################################################
|
|
70
|
+
# PROPERTIES #
|
|
71
|
+
########################################################
|
|
72
|
+
|
|
73
|
+
def echo_interface
|
|
74
|
+
config_get('bfd_global', 'echo_interface', @get_args)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def echo_interface=(val)
|
|
78
|
+
set_args_keys(intf: val ? val : echo_interface,
|
|
79
|
+
state: val ? '' : 'no')
|
|
80
|
+
config_set('bfd_global', 'echo_interface', @set_args) if
|
|
81
|
+
@set_args[:intf]
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def default_echo_interface
|
|
85
|
+
config_get_default('bfd_global', 'echo_interface')
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def echo_rx_interval
|
|
89
|
+
config_get('bfd_global', 'echo_rx_interval', @get_args)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def echo_rx_interval=(val)
|
|
93
|
+
set_args_keys(rxi: val,
|
|
94
|
+
state: val == default_echo_rx_interval ? 'no' : '')
|
|
95
|
+
config_set('bfd_global', 'echo_rx_interval', @set_args)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def default_echo_rx_interval
|
|
99
|
+
config_get_default('bfd_global', 'echo_rx_interval')
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def ipv4_echo_rx_interval
|
|
103
|
+
config_get('bfd_global', 'ipv4_echo_rx_interval', @get_args)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def ipv4_echo_rx_interval=(val)
|
|
107
|
+
set_args_keys(rxi: val,
|
|
108
|
+
state: val == default_ipv4_echo_rx_interval ? 'no' : '')
|
|
109
|
+
config_set('bfd_global', 'ipv4_echo_rx_interval', @set_args)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def default_ipv4_echo_rx_interval
|
|
113
|
+
config_get_default('bfd_global', 'ipv4_echo_rx_interval')
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def ipv6_echo_rx_interval
|
|
117
|
+
config_get('bfd_global', 'ipv6_echo_rx_interval', @get_args)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def ipv6_echo_rx_interval=(val)
|
|
121
|
+
set_args_keys(rxi: val,
|
|
122
|
+
state: val == default_ipv6_echo_rx_interval ? 'no' : '')
|
|
123
|
+
config_set('bfd_global', 'ipv6_echo_rx_interval', @set_args)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def default_ipv6_echo_rx_interval
|
|
127
|
+
config_get_default('bfd_global', 'ipv6_echo_rx_interval')
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def slow_timer
|
|
131
|
+
config_get('bfd_global', 'slow_timer', @get_args)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def slow_timer=(val)
|
|
135
|
+
set_args_keys(timer: val,
|
|
136
|
+
state: val == default_slow_timer ? 'no' : '')
|
|
137
|
+
config_set('bfd_global', 'slow_timer', @set_args)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def default_slow_timer
|
|
141
|
+
config_get_default('bfd_global', 'slow_timer')
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def ipv4_slow_timer
|
|
145
|
+
config_get('bfd_global', 'ipv4_slow_timer', @get_args)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def ipv4_slow_timer=(val)
|
|
149
|
+
# Only set the value if it's not already configured and default
|
|
150
|
+
return if val == default_ipv4_slow_timer && val == ipv4_slow_timer
|
|
151
|
+
set_args_keys(timer: val,
|
|
152
|
+
state: val == default_ipv4_slow_timer ? 'no' : '')
|
|
153
|
+
config_set('bfd_global', 'ipv4_slow_timer', @set_args)
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def default_ipv4_slow_timer
|
|
157
|
+
config_get_default('bfd_global', 'ipv4_slow_timer')
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def ipv6_slow_timer
|
|
161
|
+
config_get('bfd_global', 'ipv6_slow_timer', @get_args)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def ipv6_slow_timer=(val)
|
|
165
|
+
# Only set the value if it's not already configured and default
|
|
166
|
+
return if val == default_ipv6_slow_timer && val == ipv6_slow_timer
|
|
167
|
+
set_args_keys(timer: val,
|
|
168
|
+
state: val == default_ipv6_slow_timer ? 'no' : '')
|
|
169
|
+
config_set('bfd_global', 'ipv6_slow_timer', @set_args)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def default_ipv6_slow_timer
|
|
173
|
+
config_get_default('bfd_global', 'ipv6_slow_timer')
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def fabricpath_slow_timer
|
|
177
|
+
config_get('bfd_global', 'fabricpath_slow_timer', @get_args)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def fabricpath_slow_timer=(val)
|
|
181
|
+
set_args_keys(timer: val,
|
|
182
|
+
state: val == default_fabricpath_slow_timer ? 'no' : '')
|
|
183
|
+
config_set('bfd_global', 'fabricpath_slow_timer', @set_args)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def default_fabricpath_slow_timer
|
|
187
|
+
config_get_default('bfd_global', 'fabricpath_slow_timer')
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def startup_timer
|
|
191
|
+
config_get('bfd_global', 'startup_timer', @get_args)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def startup_timer=(val)
|
|
195
|
+
set_args_keys(timer: val,
|
|
196
|
+
state: val == default_startup_timer ? 'no' : '')
|
|
197
|
+
config_set('bfd_global', 'startup_timer', @set_args)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def default_startup_timer
|
|
201
|
+
config_get_default('bfd_global', 'startup_timer')
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
def fabricpath_vlan
|
|
205
|
+
config_get('bfd_global', 'fabricpath_vlan', @get_args)
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
def fabricpath_vlan=(val)
|
|
209
|
+
set_args_keys(vlan: val,
|
|
210
|
+
state: val == default_fabricpath_vlan ? 'no' : '')
|
|
211
|
+
config_set('bfd_global', 'fabricpath_vlan', @set_args)
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
def default_fabricpath_vlan
|
|
215
|
+
config_get_default('bfd_global', 'fabricpath_vlan')
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def default_interval
|
|
219
|
+
config_get_default('bfd_global', 'interval')
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
def default_ipv4_interval
|
|
223
|
+
config_get_default('bfd_global', 'ipv4_interval')
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
def default_ipv6_interval
|
|
227
|
+
config_get_default('bfd_global', 'ipv6_interval')
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def default_fabricpath_interval
|
|
231
|
+
config_get_default('bfd_global', 'fabricpath_interval')
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# interval is an array of interval, min_rx and multiplier
|
|
235
|
+
# CLI: bfd interval 100 min_rx 100 multiplier 25
|
|
236
|
+
def interval
|
|
237
|
+
config_get('bfd_global', 'interval', @get_args)
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
# ipv4_interval is an array of ipv4_interval, ipv4_min_rx and
|
|
241
|
+
# ipv4_multiplier
|
|
242
|
+
# CLI: bfd ipv4 interval 100 min_rx 100 multiplier 25
|
|
243
|
+
def ipv4_interval
|
|
244
|
+
config_get('bfd_global', 'ipv4_interval', @get_args)
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
# ipv6_interval is an array of ipv6_interval, ipv6_min_rx and
|
|
248
|
+
# ipv6_multiplier
|
|
249
|
+
# CLI: bfd ipv6 interval 100 min_rx 100 multiplier 25
|
|
250
|
+
def ipv6_interval
|
|
251
|
+
config_get('bfd_global', 'ipv6_interval', @get_args)
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# fabricpath_interval is an array of fabricpath_interval,
|
|
255
|
+
# fabricpath_min_rx and fabricpath_multiplier
|
|
256
|
+
# CLI: bfd fabricpath interval 100 min_rx 100 multiplier 25
|
|
257
|
+
def fabricpath_interval
|
|
258
|
+
config_get('bfd_global', 'fabricpath_interval', @get_args)
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# interval is an array of interval, min_rx and multiplier
|
|
262
|
+
# ex: ['100', '100', '25']
|
|
263
|
+
# CLI: bfd interval 100 min_rx 100 multiplier 25
|
|
264
|
+
def interval=(arr)
|
|
265
|
+
return if arr == interval
|
|
266
|
+
interval, min_rx, multiplier = arr
|
|
267
|
+
set_args_keys(interval: interval, min_rx: min_rx, multiplier: multiplier,
|
|
268
|
+
state: arr == default_interval ? 'no' : '')
|
|
269
|
+
config_set('bfd_global', 'interval', @set_args)
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
# ipv4_interval is an array of ipv4_interval, ipv4_min_rx and
|
|
273
|
+
# ipv4_multiplier
|
|
274
|
+
# ex: ['100', '100', '25']
|
|
275
|
+
# CLI: bfd ipv4 interval 100 min_rx 100 multiplier 25
|
|
276
|
+
def ipv4_interval=(arr)
|
|
277
|
+
interval, min_rx, multiplier = arr
|
|
278
|
+
set_args_keys(interval: interval, min_rx: min_rx, multiplier: multiplier,
|
|
279
|
+
state: arr == default_ipv4_interval ? 'no' : '')
|
|
280
|
+
config_set('bfd_global', 'ipv4_interval', @set_args)
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
# ipv6_interval is an array of ipv6_interval, ipv6_min_rx and
|
|
284
|
+
# ipv6_multiplier
|
|
285
|
+
# ex: ['100', '100', '25']
|
|
286
|
+
# CLI: bfd ipv6 interval 100 min_rx 100 multiplier 25
|
|
287
|
+
def ipv6_interval=(arr)
|
|
288
|
+
interval, min_rx, multiplier = arr
|
|
289
|
+
set_args_keys(interval: interval, min_rx: min_rx, multiplier: multiplier,
|
|
290
|
+
state: arr == default_ipv6_interval ? 'no' : '')
|
|
291
|
+
config_set('bfd_global', 'ipv6_interval', @set_args)
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
# fabricpath_interval is an array of fabricpath_interval,
|
|
295
|
+
# fabricpath_min_rx and fabricpath_multiplier
|
|
296
|
+
# ex: ['100', '100', '25']
|
|
297
|
+
# CLI: bfd fabricpath interval 100 min_rx 100 multiplier 25
|
|
298
|
+
def fabricpath_interval=(arr)
|
|
299
|
+
interval, min_rx, multiplier = arr
|
|
300
|
+
set_args_keys(interval: interval, min_rx: min_rx, multiplier: multiplier,
|
|
301
|
+
state: arr == default_fabricpath_interval ? 'no' : '')
|
|
302
|
+
config_set('bfd_global', 'fabricpath_interval', @set_args)
|
|
303
|
+
end
|
|
304
|
+
end # class
|
|
305
|
+
end # module
|