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.
Files changed (357) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +96 -0
  5. data/.travis.yml +17 -0
  6. data/CHANGELOG.md +676 -0
  7. data/CONTRIBUTING.md +43 -0
  8. data/Gemfile +10 -0
  9. data/LICENSE +201 -0
  10. data/README.md +246 -0
  11. data/Rakefile +44 -0
  12. data/SUPPORT.md +3 -0
  13. data/bin/.rubocop.yml +18 -0
  14. data/bin/check_metric_limits.rb +109 -0
  15. data/bin/git/hooks/commit-msg/enforce_style +89 -0
  16. data/bin/git/hooks/hook_lib +115 -0
  17. data/bin/git/hooks/hooks-wrapper +38 -0
  18. data/bin/git/hooks/post-flow-hotfix-start/update-version +24 -0
  19. data/bin/git/hooks/post-flow-release-finish/update-version +29 -0
  20. data/bin/git/hooks/post-flow-release-start/update-version +19 -0
  21. data/bin/git/hooks/post-merge/update-hooks +6 -0
  22. data/bin/git/hooks/post-rewrite/update-hooks +6 -0
  23. data/bin/git/hooks/pre-commit/check_unstaged_changes +18 -0
  24. data/bin/git/hooks/pre-commit/rubocop +25 -0
  25. data/bin/git/hooks/pre-commit/validate-diffs +45 -0
  26. data/bin/git/hooks/pre-commit/validate-yaml +18 -0
  27. data/bin/git/hooks/pre-push/check-changelog +24 -0
  28. data/bin/git/hooks/pre-push/rubocop +7 -0
  29. data/bin/git/update-hooks +123 -0
  30. data/bin/show_running_yang.rb +233 -0
  31. data/cisco_node_utils.gemspec +41 -0
  32. data/docs/README-develop-best-practices.md +521 -0
  33. data/docs/README-develop-node-utils-APIs.md +570 -0
  34. data/docs/README-maintainers.md +77 -0
  35. data/docs/README-test-execution.md +57 -0
  36. data/docs/README-utilities.md +14 -0
  37. data/docs/agent_files.png +0 -0
  38. data/docs/cisco_node_utils.yaml.example +36 -0
  39. data/docs/template-router.rb +123 -0
  40. data/docs/template-test_router.rb +104 -0
  41. data/ext/mkrf_conf.rb +63 -0
  42. data/lib/.rubocop.yml +18 -0
  43. data/lib/cisco_node_utils/aaa_authentication_login.rb +95 -0
  44. data/lib/cisco_node_utils/aaa_authentication_login_service.rb +138 -0
  45. data/lib/cisco_node_utils/aaa_authorization_service.rb +156 -0
  46. data/lib/cisco_node_utils/ace.rb +467 -0
  47. data/lib/cisco_node_utils/acl.rb +101 -0
  48. data/lib/cisco_node_utils/banner.rb +63 -0
  49. data/lib/cisco_node_utils/bfd_global.rb +305 -0
  50. data/lib/cisco_node_utils/bgp.rb +988 -0
  51. data/lib/cisco_node_utils/bgp_af.rb +545 -0
  52. data/lib/cisco_node_utils/bgp_af_aggr_addr.rb +207 -0
  53. data/lib/cisco_node_utils/bgp_neighbor.rb +527 -0
  54. data/lib/cisco_node_utils/bgp_neighbor_af.rb +780 -0
  55. data/lib/cisco_node_utils/bridge_domain.rb +178 -0
  56. data/lib/cisco_node_utils/bridge_domain_vni.rb +206 -0
  57. data/lib/cisco_node_utils/cisco_cmn_utils.rb +444 -0
  58. data/lib/cisco_node_utils/client/client.rb +238 -0
  59. data/lib/cisco_node_utils/client/grpc/client.rb +395 -0
  60. data/lib/cisco_node_utils/client/grpc/ems.proto +148 -0
  61. data/lib/cisco_node_utils/client/grpc/ems.rb +111 -0
  62. data/lib/cisco_node_utils/client/grpc/ems_services.rb +49 -0
  63. data/lib/cisco_node_utils/client/grpc.rb +33 -0
  64. data/lib/cisco_node_utils/client/nxapi/client.rb +368 -0
  65. data/lib/cisco_node_utils/client/nxapi.rb +31 -0
  66. data/lib/cisco_node_utils/client/utils.rb +180 -0
  67. data/lib/cisco_node_utils/client.rb +35 -0
  68. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +590 -0
  69. data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +25 -0
  70. data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +38 -0
  71. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +40 -0
  72. data/lib/cisco_node_utils/cmd_ref/acl.yaml +48 -0
  73. data/lib/cisco_node_utils/cmd_ref/banner.yaml +11 -0
  74. data/lib/cisco_node_utils/cmd_ref/bfd_global.yaml +117 -0
  75. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +383 -0
  76. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +223 -0
  77. data/lib/cisco_node_utils/cmd_ref/bgp_af_aa.yaml +38 -0
  78. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +174 -0
  79. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +236 -0
  80. data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +49 -0
  81. data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +33 -0
  82. data/lib/cisco_node_utils/cmd_ref/dhcp_relay_global.yaml +128 -0
  83. data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +55 -0
  84. data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +25 -0
  85. data/lib/cisco_node_utils/cmd_ref/evpn_multicast.yaml +12 -0
  86. data/lib/cisco_node_utils/cmd_ref/evpn_multisite.yaml +18 -0
  87. data/lib/cisco_node_utils/cmd_ref/evpn_stormcontrol.yaml +18 -0
  88. data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +48 -0
  89. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +183 -0
  90. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +40 -0
  91. data/lib/cisco_node_utils/cmd_ref/feature.yaml +126 -0
  92. data/lib/cisco_node_utils/cmd_ref/hostname.yaml +8 -0
  93. data/lib/cisco_node_utils/cmd_ref/hsrp_global.yaml +25 -0
  94. data/lib/cisco_node_utils/cmd_ref/images.yaml +8 -0
  95. data/lib/cisco_node_utils/cmd_ref/interface.yaml +781 -0
  96. data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +45 -0
  97. data/lib/cisco_node_utils/cmd_ref/interface_evpn_multisite.yaml +17 -0
  98. data/lib/cisco_node_utils/cmd_ref/interface_hsrp_group.yaml +120 -0
  99. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +112 -0
  100. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +87 -0
  101. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +42 -0
  102. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
  103. data/lib/cisco_node_utils/cmd_ref/ip_multicast.yaml +22 -0
  104. data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +83 -0
  105. data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +119 -0
  106. data/lib/cisco_node_utils/cmd_ref/memory.yaml +24 -0
  107. data/lib/cisco_node_utils/cmd_ref/ntp_auth_key.yaml +10 -0
  108. data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +27 -0
  109. data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +34 -0
  110. data/lib/cisco_node_utils/cmd_ref/object_group.yaml +32 -0
  111. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +91 -0
  112. data/lib/cisco_node_utils/cmd_ref/ospf_area.yaml +91 -0
  113. data/lib/cisco_node_utils/cmd_ref/ospf_area_vlink.yaml +88 -0
  114. data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +37 -0
  115. data/lib/cisco_node_utils/cmd_ref/pim.yaml +43 -0
  116. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +86 -0
  117. data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +37 -0
  118. data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +100 -0
  119. data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +19 -0
  120. data/lib/cisco_node_utils/cmd_ref/route_map.yaml +601 -0
  121. data/lib/cisco_node_utils/cmd_ref/show_system.yaml +9 -0
  122. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +84 -0
  123. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +81 -0
  124. data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +9 -0
  125. data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +74 -0
  126. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +91 -0
  127. data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +57 -0
  128. data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +23 -0
  129. data/lib/cisco_node_utils/cmd_ref/span_session.yaml +65 -0
  130. data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +235 -0
  131. data/lib/cisco_node_utils/cmd_ref/syslog_facility.yaml +10 -0
  132. data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +34 -0
  133. data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +45 -0
  134. data/lib/cisco_node_utils/cmd_ref/system.yaml +7 -0
  135. data/lib/cisco_node_utils/cmd_ref/tacacs_global.yaml +37 -0
  136. data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +63 -0
  137. data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +45 -0
  138. data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +64 -0
  139. data/lib/cisco_node_utils/cmd_ref/upgrade.yaml +38 -0
  140. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +52 -0
  141. data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +8 -0
  142. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +106 -0
  143. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +233 -0
  144. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +86 -0
  145. data/lib/cisco_node_utils/cmd_ref/vrf_af.yaml +139 -0
  146. data/lib/cisco_node_utils/cmd_ref/vtp.yaml +32 -0
  147. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +114 -0
  148. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +71 -0
  149. data/lib/cisco_node_utils/cmd_ref/yang.yaml +7 -0
  150. data/lib/cisco_node_utils/cmd_ref/yum.yaml +68 -0
  151. data/lib/cisco_node_utils/command_reference.rb +724 -0
  152. data/lib/cisco_node_utils/configparser_lib.rb +195 -0
  153. data/lib/cisco_node_utils/constants.rb +40 -0
  154. data/lib/cisco_node_utils/dhcp_relay_global.rb +302 -0
  155. data/lib/cisco_node_utils/dns_domain.rb +93 -0
  156. data/lib/cisco_node_utils/domain_name.rb +82 -0
  157. data/lib/cisco_node_utils/encapsulation.rb +112 -0
  158. data/lib/cisco_node_utils/environment.rb +110 -0
  159. data/lib/cisco_node_utils/evpn_multicast.rb +66 -0
  160. data/lib/cisco_node_utils/evpn_multisite.rb +96 -0
  161. data/lib/cisco_node_utils/evpn_stormcontrol.rb +84 -0
  162. data/lib/cisco_node_utils/evpn_vni.rb +159 -0
  163. data/lib/cisco_node_utils/exceptions.rb +140 -0
  164. data/lib/cisco_node_utils/fabricpath_global.rb +405 -0
  165. data/lib/cisco_node_utils/fabricpath_topology.rb +137 -0
  166. data/lib/cisco_node_utils/feature.rb +377 -0
  167. data/lib/cisco_node_utils/hostname.rb +62 -0
  168. data/lib/cisco_node_utils/hsrp_global.rb +97 -0
  169. data/lib/cisco_node_utils/interface.rb +2128 -0
  170. data/lib/cisco_node_utils/interface_channel_group.rb +142 -0
  171. data/lib/cisco_node_utils/interface_evpn_multisite.rb +72 -0
  172. data/lib/cisco_node_utils/interface_hsrp_group.rb +557 -0
  173. data/lib/cisco_node_utils/interface_ospf.rb +378 -0
  174. data/lib/cisco_node_utils/interface_portchannel.rb +180 -0
  175. data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
  176. data/lib/cisco_node_utils/ip_multicast.rb +90 -0
  177. data/lib/cisco_node_utils/itd_device_group.rb +228 -0
  178. data/lib/cisco_node_utils/itd_device_group_node.rb +144 -0
  179. data/lib/cisco_node_utils/itd_service.rb +511 -0
  180. data/lib/cisco_node_utils/logger.rb +78 -0
  181. data/lib/cisco_node_utils/name_server.rb +64 -0
  182. data/lib/cisco_node_utils/node.rb +443 -0
  183. data/lib/cisco_node_utils/node_util.rb +111 -0
  184. data/lib/cisco_node_utils/ntp_auth_key.rb +67 -0
  185. data/lib/cisco_node_utils/ntp_config.rb +83 -0
  186. data/lib/cisco_node_utils/ntp_server.rb +86 -0
  187. data/lib/cisco_node_utils/object_group.rb +75 -0
  188. data/lib/cisco_node_utils/object_group_entry.rb +143 -0
  189. data/lib/cisco_node_utils/overlay_global.rb +142 -0
  190. data/lib/cisco_node_utils/pim.rb +131 -0
  191. data/lib/cisco_node_utils/pim_group_list.rb +109 -0
  192. data/lib/cisco_node_utils/pim_rp_address.rb +103 -0
  193. data/lib/cisco_node_utils/platform.rb +217 -0
  194. data/lib/cisco_node_utils/portchannel_global.rb +347 -0
  195. data/lib/cisco_node_utils/radius_global.rb +165 -0
  196. data/lib/cisco_node_utils/radius_server.rb +421 -0
  197. data/lib/cisco_node_utils/radius_server_group.rb +117 -0
  198. data/lib/cisco_node_utils/route_map.rb +2540 -0
  199. data/lib/cisco_node_utils/router_ospf.rb +77 -0
  200. data/lib/cisco_node_utils/router_ospf_area.rb +416 -0
  201. data/lib/cisco_node_utils/router_ospf_area_vlink.rb +313 -0
  202. data/lib/cisco_node_utils/router_ospf_vrf.rb +342 -0
  203. data/lib/cisco_node_utils/snmp_notification_receiver.rb +176 -0
  204. data/lib/cisco_node_utils/snmpcommunity.rb +109 -0
  205. data/lib/cisco_node_utils/snmpgroup.rb +54 -0
  206. data/lib/cisco_node_utils/snmpnotification.rb +57 -0
  207. data/lib/cisco_node_utils/snmpserver.rb +132 -0
  208. data/lib/cisco_node_utils/snmpuser.rb +403 -0
  209. data/lib/cisco_node_utils/span_session.rb +149 -0
  210. data/lib/cisco_node_utils/stp_global.rb +676 -0
  211. data/lib/cisco_node_utils/syslog_facility.rb +64 -0
  212. data/lib/cisco_node_utils/syslog_server.rb +146 -0
  213. data/lib/cisco_node_utils/syslog_settings.rb +174 -0
  214. data/lib/cisco_node_utils/tacacs_global.rb +137 -0
  215. data/lib/cisco_node_utils/tacacs_server.rb +173 -0
  216. data/lib/cisco_node_utils/tacacs_server_group.rb +149 -0
  217. data/lib/cisco_node_utils/tacacs_server_host.rb +216 -0
  218. data/lib/cisco_node_utils/upgrade.rb +122 -0
  219. data/lib/cisco_node_utils/vdc.rb +118 -0
  220. data/lib/cisco_node_utils/version.rb +21 -0
  221. data/lib/cisco_node_utils/vlan.rb +301 -0
  222. data/lib/cisco_node_utils/vpc.rb +466 -0
  223. data/lib/cisco_node_utils/vrf.rb +192 -0
  224. data/lib/cisco_node_utils/vrf_af.rb +327 -0
  225. data/lib/cisco_node_utils/vtp.rb +125 -0
  226. data/lib/cisco_node_utils/vxlan_vtep.rb +286 -0
  227. data/lib/cisco_node_utils/vxlan_vtep_vni.rb +331 -0
  228. data/lib/cisco_node_utils/yang.rb +160 -0
  229. data/lib/cisco_node_utils/yum.rb +213 -0
  230. data/lib/cisco_node_utils.rb +21 -0
  231. data/lib/minitest/environment_plugin.rb +31 -0
  232. data/lib/minitest/log_level_plugin.rb +41 -0
  233. data/spec/client_spec.rb +7 -0
  234. data/spec/environment_spec.rb +384 -0
  235. data/spec/grpc_client_spec.rb +23 -0
  236. data/spec/isolate/all_clients_spec.rb +9 -0
  237. data/spec/isolate/grpc_only_spec.rb +16 -0
  238. data/spec/isolate/no_clients_spec.rb +26 -0
  239. data/spec/isolate/nxapi_only_spec.rb +16 -0
  240. data/spec/nxapi_client_spec.rb +42 -0
  241. data/spec/schema.yaml +82 -0
  242. data/spec/shared_examples_for_clients.rb +14 -0
  243. data/spec/spec_helper.rb +91 -0
  244. data/spec/whitespace_spec.rb +10 -0
  245. data/spec/yaml_spec.rb +42 -0
  246. data/tests/.rubocop.yml +18 -0
  247. data/tests/CSCuxdublin-1.0.0-7.0.3.I3.1.lib32_n9000.rpm +0 -0
  248. data/tests/basetest.rb +243 -0
  249. data/tests/ciscotest.rb +577 -0
  250. data/tests/cmd_config.yaml +75 -0
  251. data/tests/cmd_config_invalid.yaml +16 -0
  252. data/tests/n9000_sample-1.0.0-7.0.3.x86_64.rpm +0 -0
  253. data/tests/noop.rb +7 -0
  254. data/tests/platform_info.rb +63 -0
  255. data/tests/tacacs_server.yaml.example +6 -0
  256. data/tests/test_aaa_authentication_login.rb +243 -0
  257. data/tests/test_aaa_authentication_login_service.rb +761 -0
  258. data/tests/test_aaa_authorization_service.rb +874 -0
  259. data/tests/test_ace.rb +304 -0
  260. data/tests/test_acl.rb +185 -0
  261. data/tests/test_banner.rb +85 -0
  262. data/tests/test_bfd_global.rb +272 -0
  263. data/tests/test_bgp_af.rb +875 -0
  264. data/tests/test_bgp_af_aa.rb +108 -0
  265. data/tests/test_bgp_neighbor.rb +596 -0
  266. data/tests/test_bgp_neighbor_af.rb +781 -0
  267. data/tests/test_bridge_domain.rb +198 -0
  268. data/tests/test_bridge_domain_vni.rb +109 -0
  269. data/tests/test_client_utils.rb +111 -0
  270. data/tests/test_cmn_utils.rb +76 -0
  271. data/tests/test_command_config.rb +206 -0
  272. data/tests/test_command_reference.rb +669 -0
  273. data/tests/test_dhcp_relay_global.rb +286 -0
  274. data/tests/test_dns_domain.rb +123 -0
  275. data/tests/test_domain_name.rb +96 -0
  276. data/tests/test_encapsulation.rb +75 -0
  277. data/tests/test_evpn_multicast.rb +65 -0
  278. data/tests/test_evpn_multisite.rb +70 -0
  279. data/tests/test_evpn_stormcontrol.rb +56 -0
  280. data/tests/test_evpn_vni.rb +131 -0
  281. data/tests/test_fabricpath_global.rb +246 -0
  282. data/tests/test_fabricpath_topology.rb +77 -0
  283. data/tests/test_feature.rb +272 -0
  284. data/tests/test_grpc.rb +166 -0
  285. data/tests/test_hostname.rb +64 -0
  286. data/tests/test_hsrp_global.rb +79 -0
  287. data/tests/test_interface.rb +1958 -0
  288. data/tests/test_interface_bdi.rb +80 -0
  289. data/tests/test_interface_channel_group.rb +131 -0
  290. data/tests/test_interface_evpn_multisite.rb +94 -0
  291. data/tests/test_interface_hsrp.rb +134 -0
  292. data/tests/test_interface_hsrp_group.rb +570 -0
  293. data/tests/test_interface_ospf.rb +820 -0
  294. data/tests/test_interface_portchannel.rb +135 -0
  295. data/tests/test_interface_private_vlan.rb +365 -0
  296. data/tests/test_interface_service_vni.rb +203 -0
  297. data/tests/test_interface_svi.rb +210 -0
  298. data/tests/test_interface_switchport.rb +468 -0
  299. data/tests/test_ip_multicast.rb +80 -0
  300. data/tests/test_itd_device_group.rb +145 -0
  301. data/tests/test_itd_device_group_node.rb +199 -0
  302. data/tests/test_itd_service.rb +314 -0
  303. data/tests/test_logger.rb +43 -0
  304. data/tests/test_name_server.rb +94 -0
  305. data/tests/test_node.rb +50 -0
  306. data/tests/test_node_ext.rb +406 -0
  307. data/tests/test_node_util.rb +119 -0
  308. data/tests/test_ntp_auth_key.rb +77 -0
  309. data/tests/test_ntp_config.rb +100 -0
  310. data/tests/test_ntp_server.rb +146 -0
  311. data/tests/test_nxapi.rb +236 -0
  312. data/tests/test_object_group.rb +122 -0
  313. data/tests/test_overlay_global.rb +108 -0
  314. data/tests/test_pim.rb +203 -0
  315. data/tests/test_pim_group_list.rb +147 -0
  316. data/tests/test_pim_rp_address.rb +155 -0
  317. data/tests/test_platform.rb +254 -0
  318. data/tests/test_portchannel_global.rb +322 -0
  319. data/tests/test_radius_global.rb +108 -0
  320. data/tests/test_radius_server.rb +377 -0
  321. data/tests/test_radius_server_group.rb +151 -0
  322. data/tests/test_route_map.rb +1479 -0
  323. data/tests/test_router_bgp.rb +1325 -0
  324. data/tests/test_router_ospf.rb +56 -0
  325. data/tests/test_router_ospf_area.rb +433 -0
  326. data/tests/test_router_ospf_area_vlink.rb +298 -0
  327. data/tests/test_router_ospf_vrf.rb +690 -0
  328. data/tests/test_snmp_notification_receiver.rb +169 -0
  329. data/tests/test_snmpcommunity.rb +422 -0
  330. data/tests/test_snmpgroup.rb +71 -0
  331. data/tests/test_snmpnotification.rb +91 -0
  332. data/tests/test_snmpserver.rb +251 -0
  333. data/tests/test_snmpuser.rb +666 -0
  334. data/tests/test_span_session.rb +155 -0
  335. data/tests/test_stp_global.rb +575 -0
  336. data/tests/test_syslog_facility.rb +80 -0
  337. data/tests/test_syslog_server.rb +119 -0
  338. data/tests/test_syslog_settings.rb +123 -0
  339. data/tests/test_tacacs_global.rb +109 -0
  340. data/tests/test_tacacs_server.rb +436 -0
  341. data/tests/test_tacacs_server_group.rb +434 -0
  342. data/tests/test_tacacs_server_host.rb +427 -0
  343. data/tests/test_upgrade.rb +105 -0
  344. data/tests/test_vdc.rb +64 -0
  345. data/tests/test_vlan.rb +386 -0
  346. data/tests/test_vlan_private.rb +656 -0
  347. data/tests/test_vpc.rb +548 -0
  348. data/tests/test_vrf.rb +248 -0
  349. data/tests/test_vrf_af.rb +288 -0
  350. data/tests/test_vtp.rb +278 -0
  351. data/tests/test_vxlan_vtep.rb +327 -0
  352. data/tests/test_vxlan_vtep_vni.rb +326 -0
  353. data/tests/test_yang.rb +369 -0
  354. data/tests/test_yum.rb +109 -0
  355. data/tests/upgrade_info.yaml.example +3 -0
  356. data/tests/yum_package.yaml +94 -0
  357. metadata +534 -0
@@ -0,0 +1,781 @@
1
+ # interface
2
+ ---
3
+ _template:
4
+ context: ["interface <name>"]
5
+ ios_xr:
6
+ get_command: "show running interface <name>"
7
+ nexus:
8
+ get_command: "show running interface <show_name> all"
9
+ N7k:
10
+ get_command: "show running interface all | section '^interface <show_name>'"
11
+
12
+ access_vlan:
13
+ _exclude: [ios_xr]
14
+ kind: int
15
+ get_value: '/^switchport access vlan (.*)$/'
16
+ set_value: "switchport access vlan <vlan>"
17
+ default_value: 1
18
+
19
+ all_count:
20
+ get_context: ~
21
+ get_command: "show running interface | incl ^interface | count"
22
+ get_value: '/\d+/'
23
+
24
+ all_interfaces:
25
+ multiple:
26
+ ios_xr:
27
+ get_command: 'show running all-interfaces'
28
+ get_value: '/^interface (.*)/'
29
+ nexus:
30
+ get_command: "show running-config interface <show_name> | section '^interface'"
31
+ N7k:
32
+ get_command: "show running interface all | section '^interface <show_name>'"
33
+ get_value: '/(.*)/'
34
+ get_context: ~
35
+
36
+ bfd_echo:
37
+ _exclude: [ios_xr]
38
+ kind: boolean
39
+ get_value: '/^(?:no )?bfd echo$/'
40
+ set_value: '<state> bfd echo'
41
+ default_value: true
42
+
43
+ capabilities:
44
+ _exclude: [ios_xr]
45
+ multiple:
46
+ get_context: ["<name>"]
47
+ get_command: "show interface <name> capabilities"
48
+ get_value: '/(.*)/'
49
+ default_value: [] # :raw default
50
+
51
+ create:
52
+ set_context: ~
53
+ set_value: "interface <name>"
54
+
55
+ default:
56
+ multiple:
57
+ set_context: ~
58
+ set_value: "default interface <name>"
59
+ get_command: "show running interface <name>"
60
+ get_value: '/(.*)/'
61
+
62
+ description:
63
+ kind: string
64
+ get_value: '/^description (.*)/'
65
+ set_value: "<state> description <desc>"
66
+ default_value: ""
67
+
68
+ destroy:
69
+ set_context: ~
70
+ set_value: "no interface <name>"
71
+
72
+ duplex:
73
+ _exclude: [ios_xr]
74
+ kind: string
75
+ get_value: '/^duplex (.*)$/'
76
+ set_value: "duplex <duplex>"
77
+ C3064:
78
+ default_value: 'full'
79
+ else:
80
+ default_value: 'auto'
81
+
82
+ encapsulation_dot1q:
83
+ kind: int
84
+ default_value: ""
85
+ get_value: '/^encapsulation dot1q (.*)/i'
86
+ set_value: "<state> encapsulation dot1q <vlan>"
87
+
88
+ fabric_forwarding_anycast_gateway:
89
+ _exclude: [ios_xr, N3k]
90
+ kind: boolean
91
+ get_value: '/^fabric forwarding mode anycast-gateway$/'
92
+ set_value: "<state> fabric forwarding mode anycast-gateway"
93
+ default_value: false
94
+
95
+ feature_lacp:
96
+ kind: boolean
97
+ nexus:
98
+ get_command: "show running | i ^feature"
99
+ context: ~
100
+ get_value: '/^feature lacp$/'
101
+ set_value: "<state> feature lacp"
102
+ ios_xr:
103
+ default_only: true
104
+
105
+ feature_vlan:
106
+ _exclude: [ios_xr]
107
+ nexus:
108
+ kind: boolean
109
+ get_command: "show running | i ^feature"
110
+ context: ~
111
+ get_value: '/^feature interface-vlan$/'
112
+ set_value: "<state> feature interface-vlan"
113
+
114
+ hsrp_bfd:
115
+ _exclude: [ios_xr, N5k, N6k]
116
+ kind: boolean
117
+ get_value: '/^hsrp bfd$/'
118
+ set_value: "<state> hsrp bfd"
119
+ default_value: false
120
+
121
+ hsrp_delay:
122
+ _exclude: [ios_xr, N5k, N6k]
123
+ get_value: '/^hsrp delay minimum (\d+) reload (\d+)/'
124
+ set_value: "hsrp delay <minimum> <min> <reload> <rel>"
125
+
126
+ hsrp_delay_minimum:
127
+ _exclude: [ios_xr, N5k, N6k]
128
+ default_value: 0
129
+
130
+ hsrp_delay_reload:
131
+ _exclude: [ios_xr, N5k, N6k]
132
+ default_value: 0
133
+
134
+ hsrp_mac_refresh:
135
+ _exclude: [ios_xr, N5k, N6k]
136
+ kind: int
137
+ get_value: '/^hsrp mac-refresh (\d+)$/'
138
+ set_value: '<state> hsrp mac-refresh <timeout>'
139
+ default_value: ~
140
+
141
+ hsrp_use_bia:
142
+ _exclude: [ios_xr, N5k, N6k]
143
+ # the config can be 'hsrp use-bia' or
144
+ # 'hsrp use-bia scope interface' or
145
+ # no config at all so need to grab the
146
+ # optional match to get the whole config
147
+ get_value: '/^hsrp use-bia(?:\s+\S+\s+\S+)?$/'
148
+ set_value: '<state> hsrp use-bia<scope>'
149
+ default_value: ~
150
+
151
+ hsrp_version:
152
+ _exclude: [ios_xr, N5k, N6k]
153
+ kind: int
154
+ get_value: '/^hsrp version (\d+)$/'
155
+ set_value: "hsrp version <ver>"
156
+ default_value: 1
157
+
158
+ ipv4_acl_in:
159
+ ios_xr:
160
+ get_value: '/^ipv4 access-group (\S+) ingress/'
161
+ set_value: "<state> ipv4 access-group <acl> ingress"
162
+ nexus:
163
+ get_value: '/^ip access-group (\S+) in/'
164
+ set_value: "<state> ip access-group <acl> in"
165
+ default_value: ""
166
+
167
+ ipv4_acl_out:
168
+ ios_xr:
169
+ get_value: '/^ipv4 access-group (\S+) egress/'
170
+ set_value: "<state> ipv4 access-group <acl> egress"
171
+ nexus:
172
+ get_value: '/^ip access-group (\S+) out/'
173
+ set_value: "<state> ip access-group <acl> out"
174
+ default_value: ""
175
+
176
+ ipv4_addr_mask:
177
+ # This handles both primary and secondary addresses
178
+ multiple:
179
+ nexus:
180
+ get_value: '/^ip address ([0-9\.]+)[\s\/](.*)/'
181
+ set_value: "<state> ip address <addr> <secondary>"
182
+ ios_xr:
183
+ get_value: '/^ipv4 address ([0-9\.]+) (.*)/'
184
+ set_value: '<state> ipv4 address <addr> <secondary>'
185
+
186
+ ipv4_address:
187
+ default_value: ~
188
+
189
+ ipv4_arp_timeout:
190
+ kind: int
191
+ get_value: '/^ip arp timeout (\d+)$/'
192
+ set_value: "<state> ip arp timeout <timeout>"
193
+ default_value: 700
194
+
195
+ ipv4_arp_timeout_non_vlan_interfaces:
196
+ default_only: ~
197
+
198
+ ipv4_dhcp_relay_addr:
199
+ _exclude: [ios_xr]
200
+ multiple:
201
+ get_value: '/^ip dhcp relay address (.*) $/'
202
+ set_value: "<state> ip dhcp relay address <addr>"
203
+ default_value: []
204
+
205
+ ipv4_dhcp_relay_info_trust:
206
+ _exclude: [ios_xr, N5k, N6k]
207
+ kind: boolean
208
+ get_value: '/^ip dhcp relay information trusted$/'
209
+ set_value: "<state> ip dhcp relay information trusted"
210
+ default_value: false
211
+
212
+ ipv4_dhcp_relay_src_addr_hsrp:
213
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F, N9k]
214
+ kind: boolean
215
+ get_value: '/^ip dhcp relay source-address hsrp$/'
216
+ set_value: "<state> ip dhcp relay source-address hsrp"
217
+ default_value: false
218
+
219
+ ipv4_dhcp_relay_src_intf:
220
+ _exclude: [ios_xr]
221
+ get_value: '/^ip dhcp relay source-interface (.*)$/'
222
+ set_value: "<state> ip dhcp relay source-interface <intf>"
223
+ default_value: ~
224
+
225
+ ipv4_dhcp_relay_subnet_broadcast:
226
+ _exclude: [ios_xr]
227
+ kind: boolean
228
+ get_value: '/^ip dhcp relay subnet-broadcast$/'
229
+ set_value: "<state> ip dhcp relay subnet-broadcast"
230
+ default_value: false
231
+
232
+ ipv4_dhcp_smart_relay:
233
+ _exclude: [ios_xr]
234
+ kind: boolean
235
+ get_value: '/^ip dhcp smart-relay$/'
236
+ set_value: "<state> ip dhcp smart-relay"
237
+ default_value: false
238
+
239
+ ipv4_forwarding:
240
+ _exclude: [ios_xr]
241
+ kind: boolean
242
+ default_value: false
243
+ get_value: '/^ip forward$/'
244
+ set_value: '<state> ip forward'
245
+
246
+ ipv4_netmask_length:
247
+ default_value: ~
248
+
249
+ ipv4_pim_sparse_mode:
250
+ _exclude: [ios_xr]
251
+ kind: boolean
252
+ default_value: false
253
+ nexus:
254
+ get_value: '/^ip pim sparse-mode$/'
255
+ set_value: "<state> ip pim sparse-mode"
256
+
257
+ ipv4_proxy_arp:
258
+ kind: boolean
259
+ default_value: false
260
+ nexus:
261
+ get_value: '/^ip proxy-arp$/'
262
+ set_value: "<state> ip proxy-arp"
263
+ ios_xr:
264
+ get_value: '/^proxy-arp$/'
265
+ set_value: "<state> proxy-arp"
266
+
267
+ ipv4_redirects_loopback:
268
+ kind: boolean
269
+ nexus:
270
+ default_only: ~
271
+ ios_xr:
272
+ get_value: '/^((?:no )?ipv4 redirects)$/'
273
+ set_value: "<state> ipv4 redirects"
274
+ default_value: false
275
+
276
+ ipv4_redirects_other_interfaces:
277
+ kind: boolean
278
+ nexus:
279
+ get_value: '/^((?:no )?ip redirects)$/'
280
+ set_value: "<state> ip redirects"
281
+ default_value: true
282
+ ios_xr:
283
+ get_value: '/^((?:no )?ipv4 redirects)$/'
284
+ set_value: "<state> ipv4 redirects"
285
+ default_value: false
286
+
287
+ ipv6_acl_in:
288
+ ios_xr:
289
+ get_value: '/^ipv6 access-group (\S+) ingress/'
290
+ set_value: "<state> ipv6 access-group <acl> ingress"
291
+ nexus:
292
+ get_value: '/^ipv6 traffic-filter (\S+) in/'
293
+ set_value: "<state> ipv6 traffic-filter <acl> in"
294
+ default_value: ""
295
+
296
+ ipv6_acl_out:
297
+ ios_xr:
298
+ get_value: '/^ipv6 access-group (\S+) egress/'
299
+ set_value: "<state> ipv6 access-group <acl> egress"
300
+ nexus:
301
+ get_value: '/^ipv6 traffic-filter (\S+) out/'
302
+ set_value: "<state> ipv6 traffic-filter <acl> out"
303
+ default_value: ""
304
+
305
+ ipv6_dhcp_relay_addr:
306
+ _exclude: [ios_xr]
307
+ multiple:
308
+ get_value: '/^ipv6 dhcp relay address (.*)$/'
309
+ set_value: "<state> ipv6 dhcp relay address <addr>"
310
+ default_value: []
311
+
312
+ ipv6_dhcp_relay_src_intf:
313
+ _exclude: [ios_xr]
314
+ get_value: '/^ipv6 dhcp relay source-interface (.*)$/'
315
+ set_value: "<state> ipv6 dhcp relay source-interface <intf>"
316
+ default_value: ~
317
+
318
+ ipv6_redirects:
319
+ _exclude: [ios_xr]
320
+ kind: boolean
321
+ get_value: '/^((?:no )?ipv6 redirects)$/'
322
+ set_value: "<state> ipv6 redirects"
323
+ default_value: true
324
+
325
+ lacp_rate:
326
+ kind: string
327
+ get_command: "show running interface <name>"
328
+ get_value: '/^lacp rate (.*)$/'
329
+ set_value: "<state> lacp rate <type>"
330
+ default_value: "normal"
331
+
332
+ lacp_rate_shut_needed:
333
+ # This is used to determine if the interface
334
+ # must be shutdown before setting lacp_rate
335
+ kind: boolean
336
+ N9k:
337
+ default_only: true
338
+ else:
339
+ default_only: false
340
+
341
+ load_interval_counter_1_delay:
342
+ _exclude: [ios_xr]
343
+ kind: int
344
+ get_value: '/^load-interval counter 1 (\d+)$/'
345
+ set_value: "load-interval counter 1 <delay>"
346
+ default_value: 30
347
+
348
+ load_interval_counter_1_delay_vlan_bdi:
349
+ kind: int
350
+ default_value: 60
351
+
352
+ load_interval_counter_2_delay:
353
+ _exclude: [ios_xr]
354
+ kind: int
355
+ get_value: '/^load-interval counter 2 (\d+)$/'
356
+ set_value: "load-interval counter 2 <delay>"
357
+ default_value: 300
358
+
359
+ load_interval_counter_3_delay:
360
+ _exclude: [ios_xr]
361
+ kind: int
362
+ get_value: '/^load-interval counter 3 (\d+)$/'
363
+ set_value: "<state> load-interval counter 3 <delay>"
364
+ default_value: ~
365
+
366
+ mtu_loopback:
367
+ kind: boolean
368
+ default_only: ~
369
+
370
+ mtu_other_interfaces:
371
+ kind: int
372
+ get_value: '/^mtu (.*)$/'
373
+ set_value: "<state> mtu <mtu>"
374
+ nexus:
375
+ default_value: 1500
376
+ ios_xr:
377
+ default_value: 1514
378
+
379
+ negotiate_auto_ethernet:
380
+ kind: boolean
381
+ _exclude: [ios_xr, C3064, N7k]
382
+ get_value: '/^(no )?negotiate auto$/'
383
+ set_value: "<state> negotiate auto"
384
+ default_value: true
385
+
386
+ negotiate_auto_other_interfaces:
387
+ kind: boolean
388
+ _exclude: [ios_xr]
389
+ default_only: false
390
+
391
+ negotiate_auto_portchannel:
392
+ kind: boolean
393
+ _exclude: [ios_xr, N7k]
394
+ get_value: '/^(no )?negotiate auto$/'
395
+ set_value: "<state> negotiate auto"
396
+ default_value: true
397
+
398
+ pim_bfd:
399
+ _exclude: [ios_xr]
400
+ kind: boolean
401
+ get_value: '/^ip pim bfd-instance$/'
402
+ set_value: "<state> ip pim bfd-instance"
403
+ default_value: false
404
+
405
+ pvlan_any:
406
+ multiple:
407
+ get_value: '/switchport private-vlan/'
408
+
409
+ # Be aware of similar vlan-mapping tags:
410
+ # 'vlan_mapping' is the non-pvlan version of this command
411
+ # 'pvlan_mapping' is the SVI private-vlan command
412
+ # 'switchport_pvlan_mapping' is the switchport-pvlan-host command
413
+ # 'switchport_pvlan_mapping_trunk' is the switchport-pvlan-trunk command
414
+ pvlan_mapping:
415
+ # SVI-only property
416
+ _exclude: [ios_xr, N3k-F, N9k-F]
417
+ get_value: '/^private-vlan mapping (.*)/'
418
+ set_value: "<state> private-vlan mapping <vlan>"
419
+ default_value: []
420
+
421
+ shutdown:
422
+ kind: boolean
423
+ get_value: '/^shutdown$/'
424
+ set_value: "<state> shutdown"
425
+
426
+ shutdown_ether_channel:
427
+ default_value: false
428
+
429
+ shutdown_ethernet_noswitchport_noshutdown:
430
+ default_value: false
431
+
432
+ shutdown_ethernet_noswitchport_shutdown:
433
+ default_value: false
434
+
435
+ shutdown_ethernet_switchport_noshutdown:
436
+ default_value: false
437
+
438
+ shutdown_ethernet_switchport_shutdown:
439
+ default_value: true
440
+
441
+ shutdown_loopback:
442
+ default_value: false
443
+
444
+ shutdown_unknown:
445
+ default_value: true
446
+
447
+ shutdown_vlan:
448
+ nexus:
449
+ default_value: true
450
+
451
+ speed:
452
+ _exclude: [ios_xr, C3132]
453
+ kind: string
454
+ get_value: '/^speed (.*)$/'
455
+ set_value: "speed <speed>"
456
+ C3064: &non_auto
457
+ default_value: '10000'
458
+ C3172: *non_auto
459
+ N5k: *non_auto
460
+ N6k: *non_auto
461
+ else:
462
+ default_value: 'auto'
463
+
464
+ storm_control_broadcast:
465
+ _exclude: [ios_xr, N7k]
466
+ kind: string
467
+ get_value: '/^storm-control broadcast level (.*)$/'
468
+ set_value: "<state> storm-control broadcast level <level>"
469
+ default_value: '100.00'
470
+
471
+ storm_control_multicast:
472
+ _exclude: [ios_xr, N7k]
473
+ kind: string
474
+ get_value: '/^storm-control multicast level (.*)$/'
475
+ set_value: "<state> storm-control multicast level <level>"
476
+ default_value: '100.00'
477
+
478
+ storm_control_unicast:
479
+ _exclude: [ios_xr]
480
+ kind: string
481
+ get_value: '/^storm-control unicast level (.*)$/'
482
+ set_value: "<state> storm-control unicast level <level>"
483
+ default_value: '100.00'
484
+
485
+ stp_bpdufilter:
486
+ kind: string
487
+ get_value: '/^spanning-tree bpdufilter (.*)$/'
488
+ set_value: "<state> spanning-tree bpdufilter <filter>"
489
+ default_value: ~
490
+
491
+ stp_bpduguard:
492
+ kind: string
493
+ get_value: '/^spanning-tree bpduguard (.*)$/'
494
+ set_value: "<state> spanning-tree bpduguard <guard>"
495
+ default_value: ~
496
+
497
+ stp_cost:
498
+ kind: string
499
+ get_value: '/^spanning-tree cost (.*)$/'
500
+ set_value: "spanning-tree cost <cost>"
501
+ default_value: 'auto'
502
+
503
+ stp_guard:
504
+ kind: string
505
+ get_value: '/^spanning-tree guard (.*)$/'
506
+ set_value: "<state> spanning-tree guard <guard>"
507
+ default_value: ~
508
+
509
+ stp_link_type:
510
+ kind: string
511
+ get_value: '/^spanning-tree link-type (.*)$/'
512
+ set_value: "spanning-tree link-type <type>"
513
+ default_value: 'auto'
514
+
515
+ stp_mst_cost:
516
+ multiple:
517
+ get_command: "show running interface <name>"
518
+ get_value: '/^spanning-tree mst (.*) cost (.*)$/'
519
+ set_value: "<state> spanning-tree mst <range> cost <val>"
520
+ default_value: []
521
+
522
+ stp_mst_port_priority:
523
+ multiple:
524
+ get_command: "show running interface <name>"
525
+ get_value: '/^spanning-tree mst (.*) port-priority (.*)$/'
526
+ set_value: "<state> spanning-tree mst <range> port-priority <val>"
527
+ default_value: []
528
+
529
+ stp_mst_range:
530
+ kind: string
531
+ default_only: "0-4094"
532
+
533
+ stp_port_priority:
534
+ kind: int
535
+ get_value: '/^spanning-tree port-priority (\d+)$/'
536
+ set_value: "spanning-tree port-priority <pp>"
537
+ default_value: 128
538
+
539
+ stp_port_type:
540
+ kind: string
541
+ get_command: "show running interface <name>"
542
+ get_value: '/^spanning-tree port type (.*)$/'
543
+ set_value: "<state> spanning-tree port type <type>"
544
+ nexus:
545
+ N9k:
546
+ default_value: 'edge'
547
+ else:
548
+ default_value: ~
549
+
550
+ stp_vlan_cost:
551
+ multiple:
552
+ get_command: "show running interface <name>"
553
+ get_value: '/^spanning-tree vlan (.*) cost (.*)$/'
554
+ set_value: "<state> spanning-tree vlan <range> cost <val>"
555
+ default_value: []
556
+
557
+ stp_vlan_port_priority:
558
+ multiple:
559
+ get_command: "show running interface <name>"
560
+ get_value: '/^spanning-tree vlan (.*) port-priority (.*)$/'
561
+ set_value: "<state> spanning-tree vlan <range> port-priority <val>"
562
+ default_value: []
563
+
564
+ stp_vlan_range:
565
+ kind: string
566
+ default_only: "1-3967"
567
+
568
+ svi_autostate:
569
+ _exclude: [ios_xr, N5k, N6k]
570
+ kind: boolean
571
+ get_value: '/^(?:no )?autostate$/'
572
+ set_value: "<state> autostate"
573
+ default_value: true
574
+
575
+ svi_management:
576
+ _exclude: [ios_xr]
577
+ kind: boolean
578
+ get_value: '/^management$/'
579
+ set_value: "<state> management"
580
+ default_value: false
581
+
582
+ switchport:
583
+ _exclude: [ios_xr]
584
+ kind: boolean
585
+ get_value: '/^switchport$/'
586
+ set_value: "<state> switchport"
587
+ # default_value: n/a. This is derived from system_default_switchport
588
+
589
+ switchport_autostate_exclude:
590
+ _exclude: [ios_xr]
591
+ kind: boolean
592
+ get_value: '/(^switchport autostate exclude)/'
593
+ set_value: "<state> switchport autostate exclude"
594
+ default_value: false
595
+
596
+ switchport_mode_dot1q_tunnel:
597
+ _exclude: [ios_xr]
598
+ default_only: ""
599
+
600
+ switchport_mode_ethernet:
601
+ _exclude: [ios_xr]
602
+ auto_default: false
603
+ get_value: '/^(?:no )?switchport mode ?(.*)$/'
604
+ set_value: "<state> switchport mode <mode>"
605
+ default_value: "access"
606
+
607
+ switchport_mode_other_interfaces:
608
+ _exclude: [ios_xr]
609
+ default_only: ""
610
+
611
+ switchport_mode_port_channel:
612
+ _exclude: [ios_xr]
613
+ get_value: '/^switchport mode (.*)$/'
614
+ set_value: "<state> switchport mode <mode>"
615
+ default_value: ""
616
+
617
+ switchport_pvlan_host:
618
+ _exclude: [ios_xr, N3k-F, N9k-F]
619
+ kind: boolean
620
+ get_value: '/^switchport mode private-vlan host$/'
621
+ set_value: "<state> switchport mode private-vlan host"
622
+ default_value: false
623
+
624
+ switchport_pvlan_host_association:
625
+ _exclude: [ios_xr, N3k-F, N9k-F]
626
+ # Note this is NOT a multiple, unlike trunk association.
627
+ get_value: '/^switchport private-vlan host-association (\d+) (\d+)$/'
628
+ set_value: "<state> switchport private-vlan host-association <pri> <sec>"
629
+ default_value: []
630
+
631
+ switchport_pvlan_mapping:
632
+ _exclude: [ios_xr, N3k-F, N9k-F]
633
+ get_value: '/^switchport private-vlan mapping (\d+) (.*)$/'
634
+ set_value: "<state> switchport private-vlan mapping <primary> <vlan>"
635
+ default_value: []
636
+
637
+ switchport_pvlan_mapping_trunk:
638
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
639
+ multiple:
640
+ get_value: '/^switchport private-vlan mapping trunk (\d+) (.*)$/'
641
+ set_value: "<state> switchport private-vlan mapping trunk <primary> <range>"
642
+ default_value: []
643
+
644
+ switchport_pvlan_promiscuous:
645
+ _exclude: [ios_xr, N3k-F, N9k-F]
646
+ kind: boolean
647
+ get_value: '/^switchport mode private-vlan promiscuous$/'
648
+ set_value: "<state> switchport mode private-vlan promiscuous"
649
+ default_value: false
650
+
651
+ switchport_pvlan_trunk_allowed_vlan:
652
+ _exclude: [ios_xr, N3k-F, N9k-F]
653
+ multiple: true
654
+ get_value: '/^switchport private-vlan trunk allowed vlan (?:add )?(\S+)$/'
655
+ set_value: "switchport private-vlan trunk allowed vlan <range>"
656
+ default_value: none
657
+
658
+ switchport_pvlan_trunk_association:
659
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
660
+ multiple:
661
+ get_value: '/^switchport private-vlan association trunk (\d+) (\d+)$/'
662
+ set_value: "<state> switchport private-vlan association trunk <pri> <sec>"
663
+ default_value: []
664
+
665
+ switchport_pvlan_trunk_native_vlan:
666
+ _exclude: [ios_xr, N3k-F, N9k-F]
667
+ get_value: '/^switchport private-vlan trunk native vlan (.*)$/'
668
+ set_value: "switchport private-vlan trunk native vlan <vlan>"
669
+ default_value: '1'
670
+
671
+ switchport_pvlan_trunk_promiscuous:
672
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
673
+ kind: boolean
674
+ get_value: '/^switchport mode private-vlan trunk promiscuous$/'
675
+ set_value: "<state> switchport mode private-vlan trunk promiscuous"
676
+ default_value: false
677
+
678
+ switchport_pvlan_trunk_secondary:
679
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
680
+ kind: boolean
681
+ get_value: '/^switchport mode private-vlan trunk secondary$/'
682
+ set_value: "<state> switchport mode private-vlan trunk secondary"
683
+ default_value: false
684
+
685
+ switchport_trunk_allowed_vlan:
686
+ _exclude: [ios_xr]
687
+ multiple: true
688
+ get_value: '/^switchport trunk allowed vlan (?:add )?(\S+)$/'
689
+ set_value: "<state> switchport trunk allowed vlan <vlan>"
690
+ default_value: '1-4094'
691
+
692
+ switchport_trunk_native_vlan:
693
+ _exclude: [ios_xr]
694
+ kind: int
695
+ get_value: '/^switchport trunk native vlan (.*)$/'
696
+ set_value: "<state> switchport trunk native vlan <vlan>"
697
+ default_value: 1
698
+
699
+ system_default_svi_autostate:
700
+ _exclude: [N5k, N6k]
701
+ kind: boolean
702
+ nexus:
703
+ get_command: "show running all | include 'system default'"
704
+ get_context: ~
705
+ # default_value: n/a. This is a user-configurable system default.
706
+ N7k:
707
+ # When enabled: Property does not nvgen.
708
+ # When disabled: Property nvgens as 'system default interface-vlan no autostate'
709
+ get_value: '/^system default interface-vlan no autostate$/'
710
+ else:
711
+ # When enabled: Property nvgens as 'system default interface-vlan autostate'
712
+ # When disabled: Property nvgens as 'no system default interface-vlan autostate'
713
+ get_value: '/^system default interface-vlan autostate$/'
714
+ ios_xr:
715
+ default_only: false
716
+
717
+ system_default_switchport:
718
+ nexus:
719
+ # Note: This is a simple boolean state but there is a bug on some
720
+ # platforms that causes the cli to nvgen twice; this causes config_get to
721
+ # raise an error when it encounters the multiple. Therefore we define it
722
+ # as a multiple to avoid the raise.
723
+ multiple:
724
+ get_command: "show running all | include 'system default'"
725
+ get_context: ~
726
+ get_value: '/^no system default switchport$/'
727
+ default_value: true
728
+ ios_xr:
729
+ default_only: false
730
+
731
+ system_default_switchport_shutdown:
732
+ kind: boolean
733
+ nexus:
734
+ get_command: "show running all | include 'system default'"
735
+ get_context: ~
736
+ get_value: '/^system default switchport shutdown$/'
737
+ # default_value: n/a. This is a user-configurable system default.
738
+ ios_xr:
739
+ default_only: true
740
+
741
+ vlan_mapping:
742
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
743
+ multiple:
744
+ get_value: '/^switchport vlan mapping (\d+) (\d+)/'
745
+ set_value: '<state> switchport vlan mapping <original> <translated>'
746
+ default_value: []
747
+
748
+ vlan_mapping_enable:
749
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
750
+ kind: boolean
751
+ get_value: '/^(no )?switchport vlan mapping enable/'
752
+ set_value: '<state> switchport vlan mapping enable'
753
+ default_value: true
754
+
755
+ vpc_id:
756
+ kind: int
757
+ get_value: '/^vpc (\d+)$/'
758
+ set_value: '<state> vpc <id>'
759
+ default_value: ~
760
+
761
+ vpc_peer_link:
762
+ kind: boolean
763
+ get_value: '/^vpc peer\-link$/'
764
+ set_value: '<state> vpc peer-link'
765
+ default_value: false
766
+
767
+ vrf:
768
+ default_value: ""
769
+ nexus:
770
+ get_value: '/^vrf member (.*)/'
771
+ set_value: "<state> vrf member <vrf>"
772
+ ios_xr:
773
+ get_value: '/^vrf (.*)/'
774
+ set_value: "<state> vrf <vrf>"
775
+
776
+ vtp:
777
+ _exclude: [ios_xr]
778
+ kind: boolean
779
+ get_value: '/^vtp *$/'
780
+ set_value: "<state> vtp"
781
+ default_value: false