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,49 @@
1
+ # bridge_domain
2
+ # bridge_domain feature is available only on n7k
3
+ ---
4
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k, ios_xr]
5
+
6
+ _template:
7
+ get_command: "show running-config bridge-domain"
8
+ get_context: ~
9
+ set_context: ["(?)bridge-domain <bd>"]
10
+
11
+ all_bds:
12
+ multiple: true
13
+ get_value: '/^bridge-domain (\S+)/'
14
+
15
+ bd_name:
16
+ get_data_format: nxapi_structured
17
+ get_command: "show bridge-domain <bd>"
18
+ get_context: ["TABLE_bd", "ROW_bd"]
19
+ get_value: ["bd-name"]
20
+ set_value: "<state> name <name>"
21
+
22
+ create:
23
+ set_value: "bridge-domain <bd>"
24
+
25
+ destroy:
26
+ set_value: "no bridge-domain <bd>"
27
+
28
+ # Configured fabric-control Bridge-Domain/VLAN : 100
29
+ fabric_control:
30
+ get_data_format: nxapi_structured
31
+ get_command: "show bridge-domain summary"
32
+ get_context: ~
33
+ get_value: ["fabric-control-bd"]
34
+ set_value: "<state> fabric-control"
35
+ default_value: false
36
+
37
+ shutdown:
38
+ get_data_format: nxapi_structured
39
+ get_command: "show bridge-domain <bd>"
40
+ get_context: ["TABLE_bd", "ROW_bd"]
41
+ get_value: ["bd-admin-state"]
42
+ set_value: "<state> shutdown"
43
+ default_value: false
44
+
45
+ system_bridge_domain:
46
+ get_value: '/^system bridge-domain (\S+)/'
47
+ set_context: ~
48
+ set_value: "system bridge-domain <oper> <bd>"
49
+ default_value: ""
@@ -0,0 +1,33 @@
1
+ # bridge_domain
2
+ ---
3
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k, ios_xr]
4
+
5
+ create:
6
+ set_value: "bridge-domain <bd>"
7
+
8
+ member_vni:
9
+ get_command: "show running-config bridge-domain | inc 'member vni'"
10
+ get_value: '/^ member vni (.*)/'
11
+ set_value: "bridge-domain <bd> ; <membstate> member vni <membvni>"
12
+ default_value: ''
13
+
14
+ member_vni_bd:
15
+ get_command: "show running-config bridge-domain | inc 'member vni' prev 1"
16
+ get_value: '/^bridge-domain (.*)/'
17
+
18
+ range_bds:
19
+ multiple: true
20
+ get_command: "show running-config bridge-domain | inc 'member vni' prev 1"
21
+ get_value: '/^bridge-domain (.*)/'
22
+
23
+ system_bridge_domain:
24
+ get_command: "show running-config bridge-domain"
25
+ get_value: '/^system bridge-domain (\S+)/'
26
+ set_value: "system bridge-domain <oper> <bd>"
27
+ default_value: ""
28
+
29
+ vni:
30
+ get_command: "show running-config bridge-domain"
31
+ get_value: '/^vni (\d+)/'
32
+ set_value: "<state> vni <vni>"
33
+ default_value: ''
@@ -0,0 +1,128 @@
1
+ # dhcp_relay_global
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ _template:
6
+ get_command: "show running-config dhcp | no-more"
7
+
8
+ ipv4_information_option:
9
+ kind: boolean
10
+ get_value: '/^ip dhcp relay information option$/'
11
+ set_value: "<state> ip dhcp relay information option"
12
+ default_value: false
13
+
14
+ ipv4_information_option_trust:
15
+ _exclude: [N5k, N6k]
16
+ kind: boolean
17
+ get_value: '/^ip dhcp relay information option trust$/'
18
+ set_value: "<state> ip dhcp relay information option trust"
19
+ default_value: false
20
+
21
+ ipv4_information_option_vpn:
22
+ kind: boolean
23
+ get_value: '/^ip dhcp relay information option vpn$/'
24
+ set_value: "<state> ip dhcp relay information option vpn"
25
+ default_value: false
26
+
27
+ ipv4_information_trust_all:
28
+ _exclude: [N5k, N6k]
29
+ kind: boolean
30
+ get_value: '/^ip dhcp relay information trust-all$/'
31
+ set_value: "<state> ip dhcp relay information trust-all"
32
+ default_value: false
33
+
34
+ ipv4_relay:
35
+ kind: boolean
36
+ get_value: '/^ip dhcp relay$/'
37
+ set_value: "<state> ip dhcp relay"
38
+ N3k: &relay_default_true
39
+ # auto_default is set to false because when
40
+ # this property is set to false, we do not
41
+ # find the regex pattern and since the default_value
42
+ # is true, it should not return true as its real
43
+ # value is false.
44
+ auto_default: false
45
+ default_value: true
46
+ N5k: &relay_default_false
47
+ default_value: false
48
+ N6k: *relay_default_false
49
+ N7k: *relay_default_true
50
+ N3k-F: *relay_default_true
51
+ N9k-F: *relay_default_true
52
+ N9k: *relay_default_true
53
+
54
+ ipv4_smart_relay:
55
+ kind: boolean
56
+ get_value: '/^ip dhcp smart-relay global$/'
57
+ set_value: "<state> ip dhcp smart-relay global"
58
+ default_value: false
59
+
60
+ ipv4_src_addr_hsrp:
61
+ _exclude: [N3k, N3k-F, N9k-F, N9k]
62
+ kind: boolean
63
+ get_value: '/^ip dhcp relay source-address hsrp$/'
64
+ set_value: "<state> ip dhcp relay source-address hsrp"
65
+ default_value: false
66
+
67
+ ipv4_src_intf:
68
+ get_value: '/^ip dhcp relay source-interface (.*)$/'
69
+ set_value: "<state> ip dhcp relay source-interface <intf>"
70
+ default_value: false
71
+
72
+ ipv4_sub_option_circuit_id_custom:
73
+ _exclude: [N7k, N3k-F, N9k-F]
74
+ kind: boolean
75
+ get_value: '/^ip dhcp relay sub-option circuit-id customized$/'
76
+ set_value: "<state> ip dhcp relay sub-option circuit-id customized"
77
+ default_value: false
78
+
79
+ ipv4_sub_option_circuit_id_string:
80
+ _exclude: [N5k, N6k, N7k, N3k-F, N9k-F]
81
+ os_version: 'N9k:7.0.3.I6.1'
82
+ get_value: '/^ip dhcp relay sub-option circuit-id format-type string format (.*)$/'
83
+ set_value: "<state> ip dhcp relay sub-option circuit-id format-type string <format> <word>"
84
+ default_value: false
85
+
86
+ ipv4_sub_option_cisco:
87
+ kind: boolean
88
+ get_value: '/^ip dhcp relay sub-option type cisco$/'
89
+ set_value: "<state> ip dhcp relay sub-option type cisco"
90
+ default_value: false
91
+
92
+ ipv6_option_cisco:
93
+ _exclude: [N5k, N6k]
94
+ kind: boolean
95
+ get_value: '/^ipv6 dhcp relay option type cisco$/'
96
+ set_value: "<state> ipv6 dhcp relay option type cisco"
97
+ default_value: false
98
+
99
+ ipv6_option_vpn:
100
+ kind: boolean
101
+ get_value: '/^ipv6 dhcp relay option vpn$/'
102
+ set_value: "<state> ipv6 dhcp relay option vpn"
103
+ default_value: false
104
+
105
+ ipv6_relay:
106
+ kind: boolean
107
+ get_value: '/^ipv6 dhcp relay$/'
108
+ set_value: "<state> ipv6 dhcp relay"
109
+ N3k: &v6_relay_default_true
110
+ # auto_default is set to false because when
111
+ # this property is set to false, we do not
112
+ # find the regex pattern and since the default_value
113
+ # is true, it should not return true as its real
114
+ # value is false.
115
+ auto_default: false
116
+ default_value: true
117
+ N5k: &v6_relay_default_false
118
+ default_value: false
119
+ N6k: *v6_relay_default_false
120
+ N7k: *v6_relay_default_true
121
+ N3k-F: *v6_relay_default_true
122
+ N9k-F: *v6_relay_default_true
123
+ N9k: *v6_relay_default_true
124
+
125
+ ipv6_src_intf:
126
+ get_value: '/^ipv6 dhcp relay source-interface (.*)$/'
127
+ set_value: "<state> ipv6 dhcp relay source-interface <intf>"
128
+ default_value: false
@@ -0,0 +1,55 @@
1
+ # dnsclient
2
+ ---
3
+ _template:
4
+ get_command: "show running-config all"
5
+
6
+ domain_list:
7
+ multiple: true
8
+ nexus:
9
+ get_value: '/^ip domain-list (\S+)$/'
10
+ set_value: '<state> ip domain-list <name>'
11
+ ios_xr:
12
+ get_value: '/^domain list (\S+)$/'
13
+ set_value: '<state> domain list <name>'
14
+ default_value: []
15
+
16
+ domain_list_vrf:
17
+ multiple: true
18
+ nexus:
19
+ context: ['vrf context <vrf>']
20
+ get_value: '/ip domain-list (\S+)/'
21
+ set_value: '<state> ip domain-list <name>'
22
+ ios_xr:
23
+ get_value: '/^domain vrf <vrf> list (\S+)/'
24
+ set_value: '<state> domain vrf <vrf> list <name>'
25
+ default_value: []
26
+
27
+ domain_name:
28
+ default_value: ''
29
+ nexus:
30
+ set_value: '<state> ip domain-name <name>'
31
+ get_value: '/^ip domain-name (\S+)$/'
32
+ ios_xr:
33
+ set_value: '<state> domain name <name>'
34
+ get_value: '/^domain name (\S+)$/'
35
+
36
+ domain_name_vrf:
37
+ nexus:
38
+ context: ['vrf context <vrf>']
39
+ get_value: '/ip domain-name (\S+)/'
40
+ set_value: '<state> ip domain-name <name>'
41
+ ios_xr:
42
+ get_value: '/^domain vrf <vrf> name (\S+)$/'
43
+ set_value: '<state> domain vrf <vrf> name <name>'
44
+ default_value: ''
45
+
46
+ name_server:
47
+ multiple: true
48
+ default_value: []
49
+ nexus:
50
+ get_command: "show running-config all | include 'ip name-server' | exclude 'use-vrf'"
51
+ get_value: '/^ip name-server ([\s\d\.:]+)$/'
52
+ set_value: '<state> ip name-server <ip>'
53
+ ios_xr:
54
+ get_value: '/^domain name-server (\S+)$/'
55
+ set_value: '<state> domain name-server <ip>'
@@ -0,0 +1,25 @@
1
+ # encapsulation_profile_vni
2
+ # encapsulation_profile_vni feature is available only on n7k
3
+ ---
4
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k, ios_xr]
5
+
6
+ all_encaps:
7
+ multiple: true
8
+ get_command: "show running-config vni"
9
+ get_value: '/^encapsulation profile vni (\S+)/'
10
+
11
+ create:
12
+ set_value: "encapsulation profile vni <profile>"
13
+
14
+ destroy:
15
+ set_value: "no encapsulation profile vni <profile>"
16
+
17
+ # Eg:
18
+ # encapsulation profile vni my_vni_profile
19
+ # [no] dot1q 100-200, 300 vni 5000-5100, 5300
20
+ dot1q_map:
21
+ get_command: "show encapsulation profile"
22
+ get_value: '/^.* vni <profile>\s+dot1q ([\d\s,-]+) vni ([\d\s,-]+)$/'
23
+ set_context: ['encapsulation profile vni <profile>']
24
+ set_value: '<state> dot1q <vlans> vni <vnis>'
25
+ default_value: []
@@ -0,0 +1,12 @@
1
+ # evpn_multicast.yaml
2
+ ---
3
+ _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
4
+
5
+ _template:
6
+ get_command: "show running-config | section advertise"
7
+
8
+ multicast:
9
+ context: ~
10
+ get_value: '^advertise evpn multicast$'
11
+ set_value: "<state> advertise evpn multicast"
12
+ default_value: ''
@@ -0,0 +1,18 @@
1
+ # evpn_multisite.yaml
2
+ ---
3
+ _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
4
+
5
+ _template:
6
+ get_command: "show running-config | section multisite"
7
+
8
+ delay_restore:
9
+ default_value: ""
10
+ get_context: ['/^evpn multisite border-gateway <multisiteid>$/']
11
+ get_value: '/^delay-restore\s+time\s+(\d+)$/'
12
+ set_context: ['evpn multisite border-gateway <multisiteid>']
13
+ set_value: "<state> delay-restore time <time>"
14
+
15
+ multisite:
16
+ context: ~
17
+ get_value: 'evpn multisite border-gateway ([\d.]+)'
18
+ set_value: "<state> evpn multisite border-gateway <multisiteid>"
@@ -0,0 +1,18 @@
1
+ # evpn_stormcontrol.yaml
2
+ ---
3
+ _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
4
+
5
+ _template:
6
+ get_command: "show running-config | section storm-control"
7
+
8
+ broadcast:
9
+ get_value: 'evpn storm-control broadcast level ([\d.]+)'
10
+ set_value: "<state> evpn storm-control broadcast level <level>"
11
+
12
+ multicast:
13
+ get_value: 'evpn storm-control multicast level ([\d.]+)'
14
+ set_value: "<state> evpn storm-control multicast level <level>"
15
+
16
+ unicast:
17
+ get_value: 'evpn storm-control unicast level ([\d.]+)'
18
+ set_value: "<state> evpn storm-control unicast level <level>"
@@ -0,0 +1,48 @@
1
+ # evpn_vni.yaml
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ _template:
6
+ get_command: "show running bgp all"
7
+ get_context:
8
+ - '/^evpn$/'
9
+ - '/^vni <vni> l2$/'
10
+ set_context:
11
+ - 'evpn'
12
+ - "vni <vni> l2"
13
+
14
+ evpn:
15
+ get_context: ~
16
+ get_value: "/^evpn$/"
17
+ set_context: ~
18
+ set_value: "<state> evpn"
19
+
20
+ route_distinguisher:
21
+ get_value: '/^rd (\S+)$/'
22
+ set_value: "<state> rd <rd>"
23
+ default_value: ""
24
+
25
+ route_target_both:
26
+ get_value: '/^route-target both (\S+)$/'
27
+ set_value: "<state> route-target both <community>"
28
+ multiple: true
29
+ default_value: []
30
+
31
+ route_target_export:
32
+ get_value: '/^route-target export (\S+)$/'
33
+ set_value: "<state> route-target export <community>"
34
+ multiple: true
35
+ default_value: []
36
+
37
+ route_target_import:
38
+ get_value: '/^route-target import (\S+)$/'
39
+ set_value: "<state> route-target import <community>"
40
+ multiple: true
41
+ default_value: []
42
+
43
+ vni:
44
+ multiple: true
45
+ get_context: ['/^evpn$/']
46
+ get_value: '/^vni\s+(\S+)\s+l2$/'
47
+ set_context: ['evpn']
48
+ set_value: "<state> vni <vni> l2"
@@ -0,0 +1,183 @@
1
+ # fabricpath
2
+ ---
3
+ _exclude: [N3k, N3k-F, N9k-F, N9k, ios_xr]
4
+
5
+ aggregate_multicast_routes:
6
+ _exclude: [N5k, N6k]
7
+ kind: boolean
8
+ get_command: "show run fabricpath all"
9
+ get_value: '/^fabricpath multicast aggregate\-routes\s*$/'
10
+ set_value: "<state> fabricpath multicast aggregate-routes"
11
+ default_value: false
12
+
13
+ allocate_delay:
14
+ kind: int
15
+ get_command: "show run fabricpath all"
16
+ get_value: '/^fabricpath timers allocate\-delay (\d+)/'
17
+ set_value: "<state> fabricpath timers allocate-delay <delay>"
18
+ default_value: 10
19
+
20
+ auto_switch_id:
21
+ kind: int
22
+ get_command: "show fabricpath switch-id"
23
+ get_value: '/^\*\s+(\d+).*No\s*$/'
24
+
25
+ feature:
26
+ get_command: "show feature-set"
27
+ get_value: '/^fabricpath[\s]+[\d]+[\s]+(\S+)/'
28
+ set_value: "<state> feature-set fabricpath"
29
+ default_value: disabled
30
+
31
+ feature_install:
32
+ set_value: "<state> install feature-set fabricpath"
33
+
34
+ graceful_merge:
35
+ auto_default: false
36
+ get_command: "show run fabricpath all"
37
+ get_value: '/^fabricpath graceful-merge disable\s*$/'
38
+ set_value: "<state> fabricpath graceful-merge disable"
39
+ default_value: enable
40
+
41
+ linkup_delay:
42
+ kind: int
43
+ get_command: "show run fabricpath all"
44
+ get_value: '/^fabricpath timers linkup\-delay (\d+)\s*$/'
45
+ set_value: "<state> fabricpath timers linkup-delay <delay>"
46
+ default_value: 10
47
+
48
+ linkup_delay_always:
49
+ _exclude: [N5k, N6k]
50
+ kind: boolean
51
+ get_command: "show run fabricpath all"
52
+ get_value: '/^fabricpath timers linkup\-delay always\s*$/'
53
+ set_value: "<state> fabricpath timers linkup-delay always"
54
+ default_value: false
55
+
56
+ linkup_delay_enable:
57
+ _exclude: [N5k, N6k]
58
+ auto_default: false
59
+ kind: boolean
60
+ get_command: "show run fabricpath all"
61
+ get_value: '/^fabricpath linkup\-delay\s*$/'
62
+ set_value: "<state> fabricpath linkup-delay"
63
+ default_value: true
64
+
65
+ loadbalance_algorithm:
66
+ kind: string
67
+ get_command: "show run fabricpath all"
68
+ get_value: '/^fabricpath load\-balance (\S+)\s*$/'
69
+ set_value: "<state> fabricpath load-balance <algo>"
70
+ N5k: &loadbal_alg_src_dst
71
+ default_value: "source-destination"
72
+ N6k: *loadbal_alg_src_dst
73
+ else:
74
+ default_value: "symmetric"
75
+
76
+ loadbalance_algorithm_symmetric_support:
77
+ _exclude: [N5k, N6k]
78
+ kind: boolean
79
+ default_only: true
80
+
81
+ loadbalance_multicast_has_vlan:
82
+ _exclude: [N5k, N6k]
83
+ kind: boolean
84
+ auto_default: false
85
+ get_command: "show fabricpath load-balance | begin ignore-case Ftag"
86
+ get_value: '/^Use VLAN: TRUE/'
87
+ default_value: true
88
+
89
+ loadbalance_multicast_reset:
90
+ _exclude: [N5k, N6k]
91
+ set_value: "no fabricpath load-balance multicast"
92
+
93
+ loadbalance_multicast_rotate:
94
+ _exclude: [N5k, N6k]
95
+ kind: int
96
+ get_command: "show fabricpath load-balance | begin ignore-case Ftag"
97
+ get_value: '/^Rotate amount: (\d+)/'
98
+ # default_value: n/a. The default rotate amount is randomized to avoid polarization.
99
+
100
+ loadbalance_multicast_set:
101
+ _exclude: [N5k, N6k]
102
+ set_value: 'fabricpath load-balance multicast <rotate> <has_vlan>'
103
+
104
+ loadbalance_unicast_has_vlan:
105
+ kind: boolean
106
+ auto_default: false
107
+ get_command: "show fabricpath load-balance | begin ECMP next 4"
108
+ get_value: '/^Use VLAN: TRUE/'
109
+ set_value: "<state> fabricpath load-balance unicast include-vlan"
110
+ default_value: true
111
+
112
+ loadbalance_unicast_layer:
113
+ kind: string
114
+ get_command: "show fabricpath load-balance | begin ECMP next 4"
115
+ get_value: '/^L3\/L4 Preference: (\S+)/'
116
+ set_value: "<state> fabricpath load-balance unicast <layer>"
117
+ default_value: "mixed"
118
+
119
+ loadbalance_unicast_reset:
120
+ set_value: "no fabricpath load-balance unicast"
121
+
122
+ loadbalance_unicast_rotate:
123
+ _exclude: [N5k, N6k]
124
+ kind: int
125
+ get_command: "show fabricpath load-balance | begin ECMP next 4"
126
+ get_value: '/^Rotate amount: (\d+)/'
127
+ # default_value: n/a. The default rotate amount is randomized to avoid polarization.
128
+
129
+ loadbalance_unicast_set:
130
+ set_value: 'fabricpath load-balance unicast <layer> <rotate> <has_vlan>'
131
+
132
+ loadbalance_unicast_support:
133
+ kind: string
134
+ N5k: &loadbal_uni_split
135
+ default_only: "split"
136
+ N6k: *loadbal_uni_split
137
+ else:
138
+ default_only: "combined"
139
+
140
+ mode:
141
+ kind: string
142
+ get_command: "show run fabricpath all"
143
+ get_value: '/^fabricpath mode (\S+)/'
144
+ set_value: "<state> fabricpath mode transit"
145
+ default_value: "normal"
146
+
147
+ supported_module_pids:
148
+ _exclude: [N5k, N6k]
149
+ default_only: 'N7[K7]-(?:F2.*2.E|F3|F4|M3)'
150
+
151
+ supported_modules:
152
+ _exclude: [N5k, N6k]
153
+ default_only: "f2e f3"
154
+
155
+ switch_id:
156
+ kind: int
157
+ get_command: "show run fabricpath all"
158
+ get_value: '/^fabricpath switch\-id (\d+)\s*$/'
159
+ set_value: "fabricpath switch-id <swid>"
160
+
161
+ transition_delay:
162
+ kind: int
163
+ get_command: "show run fabricpath all"
164
+ get_value: '/^fabricpath timers transition\-delay (\d+)\s*$/'
165
+ set_value: "<state> fabricpath timers transition-delay <delay>"
166
+ default_value: 10
167
+
168
+ ttl_multicast:
169
+ _exclude: [N5k, N6k]
170
+ kind: int
171
+ get_command: "show run fabricpath all"
172
+ get_value: '/^fabricpath ttl multicast (\d+)\s*$/'
173
+ set_value: "<state> fabricpath ttl multicast <ttl>"
174
+ default_value: 32
175
+
176
+ ttl_unicast:
177
+ _exclude: [N5k, N6k]
178
+ kind: int
179
+ get_command: "show run fabricpath all"
180
+ get_value: '/^fabricpath ttl unicast (\d+)\s*$/'
181
+ set_value: "<state> fabricpath ttl unicast <ttl>"
182
+ default_value: 32
183
+
@@ -0,0 +1,40 @@
1
+ # fabricpath_topology
2
+ ---
3
+ # Fabricpath feature is not available on N3K and N9K
4
+ _exclude: [N3k, N3k-F, N9k-F, N9k, ios_xr]
5
+
6
+ _template:
7
+ get_command: 'show running-config fabricpath all'
8
+ get_context: ['/^fabricpath topology %d$/']
9
+ set_context: ['fabricpath topology <topo_id>']
10
+
11
+ all_topos:
12
+ multiple:
13
+ get_context: ~
14
+ get_value: '/^fabricpath topology (\d+)/'
15
+ default_value: []
16
+
17
+ create:
18
+ set_value: "fabricpath topology <topo_id>"
19
+
20
+ description:
21
+ kind: string
22
+ get_value: '/^description (\S+)$/'
23
+ set_value: '<state> description <name>'
24
+ default_value: ''
25
+
26
+ destroy:
27
+ set_value: "no fabricpath topology <topo_id>"
28
+
29
+ member_vlans:
30
+ kind: string
31
+ get_value: '/^member vlan (.+)/'
32
+ set_value: '<state> member vlan <vlan_range>'
33
+ default_value: ''
34
+
35
+ member_vnis:
36
+ _exclude: [N5k, N6k]
37
+ kind: string
38
+ get_value: '/^member vni (\S+)/'
39
+ set_value: '<state> member vni <vni_range>'
40
+ default_value: ''