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,106 @@
1
+ # vlan
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ all_vlans:
6
+ multiple: true
7
+ get_data_format: nxapi_structured
8
+ get_command: "show vlan brief"
9
+ get_context: ["TABLE_vlanbriefxbrief", "ROW_vlanbriefxbrief"]
10
+ get_value: "vlanshowbr-vlanid-utf"
11
+
12
+ create:
13
+ set_value: "vlan %s"
14
+
15
+ destroy:
16
+ set_value: "no vlan %s"
17
+
18
+ fabric_control:
19
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
20
+ kind: boolean
21
+ get_command: "show running-config vlan"
22
+ get_context: ['/^vlan <vlan>/']
23
+ get_value: '/fabric-control/'
24
+ set_context: ["vlan <vlan>"]
25
+ set_value: "<state> fabric-control ; end"
26
+ default_value: false
27
+
28
+ mapped_vni:
29
+ _exclude: [N7k]
30
+ N3k: &mapped_vni_n3_8_9k
31
+ get_command: 'show running vlan'
32
+ N9k-F: *mapped_vni_n3_8_9k
33
+ N3k-F: *mapped_vni_n3_8_9k
34
+ N9k: *mapped_vni_n3_8_9k
35
+ N5k: &mapped_vni_n5_6k
36
+ get_command: 'show running vlan 1-4094'
37
+ N6k: *mapped_vni_n5_6k
38
+ kind: int
39
+ get_context: ['/^vlan <vlan>$/']
40
+ get_value: '/^vn-segment (\d+)$/'
41
+ set_context: ['vlan <vlan>']
42
+ set_value: '<state> vn-segment <vni> ; end'
43
+ default_value: ''
44
+
45
+ mapped_vni_requires_nv_overlay:
46
+ kind: boolean
47
+ N5k: &requires_nv_overlay_true
48
+ default_only: true
49
+ N6k: *requires_nv_overlay_true
50
+ else:
51
+ default_only: false
52
+
53
+ mode:
54
+ _exclude: [N3k, N3k-F, N9k, N9k-F]
55
+ multiple: true
56
+ get_command: "show vlan"
57
+ # TBD: 'show vlan' is problematic and should be converted to use show run
58
+ # regex workaround: N7 cli bug displays 'trnet' instead of 'enet'
59
+ get_value: '/^%d\s+.+net\s+(\S+)/'
60
+ set_context: ["vlan %d"]
61
+ set_value: "%s mode %s ; end"
62
+ default_value: 'CE'
63
+
64
+ name:
65
+ kind: string
66
+ get_data_format: nxapi_structured
67
+ get_command: "show vlan brief"
68
+ get_context: ["TABLE_vlanbriefxbrief", "ROW_vlanbriefxbrief"]
69
+ get_value: ["vlanshowbr-vlanid-utf <vlanid>", "vlanshowbr-vlanname"]
70
+ set_context: ["vlan %d"]
71
+ set_value: "%s name %s ; end"
72
+
73
+ pvlan_association:
74
+ _exclude: [N3k-F, N9k-F]
75
+ multiple: true
76
+ get_command: "show vlan private-vlan"
77
+ get_value: '/^<id>\s+(\d+)/'
78
+ set_context: ['vlan <vlan>']
79
+ set_value: "<state> private-vlan association <vlans> ; end"
80
+ default_value: []
81
+
82
+ pvlan_type:
83
+ _exclude: [N3k-F, N9k-F]
84
+ kind: string
85
+ get_command: 'show vlan private-vlan type'
86
+ get_value: '/^<id>\s+(\S+)/'
87
+ set_context: ['vlan <vlan>']
88
+ set_value: "<state> private-vlan <type> ; end"
89
+ default_value: ""
90
+
91
+ shutdown:
92
+ kind: boolean
93
+ get_data_format: nxapi_structured
94
+ get_command: "show vlan brief"
95
+ get_context: ["TABLE_vlanbriefxbrief", "ROW_vlanbriefxbrief"]
96
+ get_value: ["vlanshowbr-vlanid-utf <vlanid>", "vlanshowbr-shutstate", '/^shutdown$/']
97
+ set_context: ["vlan %d"]
98
+ set_value: "%s shutdown ; end"
99
+ default_value: false
100
+
101
+ state:
102
+ get_command: "show vlan brief"
103
+ get_value: '/^%d\s+\S+\s+(\S+)\s/'
104
+ set_context: ["vlan %d"]
105
+ set_value: "%s state %s ; end"
106
+ default_value: "active"
@@ -0,0 +1,233 @@
1
+ # vpc
2
+ ---
3
+ _exclude: [ios_xr, N3k-F, N9k-F]
4
+
5
+ _template:
6
+ get_command: 'show running-config vpc all'
7
+ get_context: ['/^vpc domain\s*(\d+)$/']
8
+ set_context: ['vpc domain <domain>']
9
+
10
+ arp_synchronize:
11
+ kind: boolean
12
+ default_value: false
13
+ get_value: '/^ip arp synchronize/'
14
+ set_value: "<state> ip arp synchronize"
15
+
16
+ auto_recovery:
17
+ kind: boolean
18
+ _exclude: [N5k, N6k]
19
+ auto_default: false
20
+ get_value: '/^auto-recovery/'
21
+ set_value: "<state> auto-recovery"
22
+ N3k:
23
+ default_value: false
24
+ N9k:
25
+ default_value: false
26
+ else:
27
+ default_value: true
28
+
29
+ auto_recovery_reload_delay:
30
+ kind: int
31
+ get_value: '/^auto-recovery reload-delay (\d+)/'
32
+ set_value: "auto-recovery reload-delay <delay>"
33
+ default_value: 240
34
+
35
+ delay_restore:
36
+ kind: int
37
+ get_value: '/^delay restore\s+(\d+)/'
38
+ set_value: "delay restore <delay>"
39
+ default_value: 30
40
+
41
+ delay_restore_interface_vlan:
42
+ kind: int
43
+ get_value: '/^delay restore interface-vlan\s+(\d+)/'
44
+ set_value: "delay restore interface-vlan <delay>"
45
+ default_value: 10
46
+
47
+ domain:
48
+ auto_default: false
49
+ get_command: "show running-config vpc all"
50
+ get_context: ~
51
+ get_value: '/^vpc domain\s+(\d+)/'
52
+ set_context: ~
53
+ set_value: "<state> vpc domain <domain>"
54
+ default_value: ''
55
+
56
+ dual_active_exclude_interface_vlan_bridge_domain:
57
+ kind: string
58
+ N7k:
59
+ get_value: '/^dual-active exclude interface-vlan-bridge-domain\s+(\S+)/'
60
+ set_value: "<state> dual-active exclude interface-vlan-bridge-domain <range>"
61
+ else:
62
+ get_value: '/^dual-active exclude interface-vlan\s+(\S+)/'
63
+ set_value: "<state> dual-active exclude interface-vlan <range>"
64
+ default_value: 'none'
65
+
66
+ fabricpath_emulated_switch_id:
67
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
68
+ kind: int
69
+ set_context: ['terminal dont-ask', 'vpc domain <domain>']
70
+ get_value: '/^fabricpath switch-id\s+(\d+)$/'
71
+ set_value: '<state> fabricpath switch-id <swid>'
72
+ default_value: false
73
+
74
+ fabricpath_multicast_load_balance:
75
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
76
+ kind: boolean
77
+ get_value: '/^fabricpath multicast load-balance$/'
78
+ set_value: "<state> fabricpath multicast load-balance"
79
+ default_value: false
80
+
81
+ feature:
82
+ kind: boolean
83
+ get_command: "show feature | section vpc"
84
+ get_context: ~
85
+ get_value: '/^vpc\s+\d+\s+enabled\s*$/'
86
+ set_context: ['terminal dont-ask']
87
+ set_value: "<state> feature vpc"
88
+ default_value: false
89
+
90
+ graceful_consistency_check:
91
+ auto_default: false
92
+ kind: boolean
93
+ get_value: '/^graceful consistency-check/'
94
+ set_value: "<state> graceful consistency-check"
95
+ default_value: true
96
+
97
+ layer3_peer_routing:
98
+ os_version: 'N3k, N9k:7.0.3.I6.1'
99
+ kind: boolean
100
+ get_value: '/^layer3 peer-router$/'
101
+ set_value: "<state> layer3 peer-router"
102
+ default_value: false
103
+
104
+ nd_synchronize:
105
+ kind: boolean
106
+ set_context: ['terminal dont-ask', 'vpc domain <domain>']
107
+ get_value: '/^ipv6 nd synchronize/'
108
+ set_value: "<state> ipv6 nd synchronize"
109
+ default_value: false
110
+
111
+ peer_gateway:
112
+ kind: boolean
113
+ set_context: ['terminal dont-ask', 'vpc domain <domain>']
114
+ get_value: '/^peer-gateway/'
115
+ set_value: "<state> peer-gateway"
116
+ default_value: false
117
+
118
+ # Exclude everyone for now till the BD command is fully supported
119
+ peer_gateway_exclude_bridge_domain:
120
+ kind: string
121
+ _exclude: [N3k, N5k, N6k, N7k, N3k-F, N9k-F, N9k]
122
+ set_context: ['terminal dont-ask', 'vpc domain <domain>']
123
+ get_value: '/^peer-gateway exclude bridge-domain\s+(\S+)/'
124
+ set_value: "peer-gateway exclude-bridge-domain <range>"
125
+ default_value: ''
126
+
127
+ peer_gateway_exclude_vlan:
128
+ _exclude: [N3k, N3k-F, N9k-F, N9k]
129
+ kind: string
130
+ set_context: ['terminal dont-ask', 'vpc domain <domain>']
131
+ get_value: '/^peer-gateway exclude-vlan\s(\S+)/'
132
+ set_value: "peer-gateway exclude-vlan <range>"
133
+ default_value: ''
134
+
135
+ # Peer-keep-alive
136
+ peer_keepalive_dest:
137
+ get_value: '/^peer-keepalive destination (\S+)/'
138
+ default_value: ''
139
+
140
+ peer_keepalive_hold_timeout:
141
+ kind: int
142
+ get_value: '/^peer-keepalive .*hold-timeout (\S+)/'
143
+ default_value: 3
144
+
145
+ peer_keepalive_interval:
146
+ kind: int
147
+ get_value: '/^peer-keepalive .*interval (\S+)/'
148
+ default_value: 1000
149
+
150
+ peer_keepalive_precedence:
151
+ kind: int
152
+ get_value: '/^peer-keepalive .*precedence (\S+)/'
153
+ default_value: 6
154
+
155
+ peer_keepalive_set:
156
+ set_value: "peer-keepalive destination <dest> source <src> udp-port <port_num> vrf <vrf> interval <interval> timeout <timeout> precedence <precedence> hold-timeout <hold_timeout>"
157
+
158
+ peer_keepalive_src:
159
+ get_value: '/^peer-keepalive .*source (\S+)/'
160
+ default_value: ''
161
+
162
+ peer_keepalive_timeout:
163
+ kind: int
164
+ get_value: '/^peer-keepalive .* timeout (\S+)/'
165
+ default_value: 5
166
+
167
+ peer_keepalive_udp_port:
168
+ kind: int
169
+ get_value: '/^peer-keepalive .*udp-port (\S+)/'
170
+ default_value: 3200
171
+
172
+ peer_keepalive_vrf:
173
+ get_value: '/^peer-keepalive .*vrf (\S+)/'
174
+ default_value: 'management'
175
+
176
+ peer_switch:
177
+ kind: boolean
178
+ set_context: ['terminal dont-ask', 'vpc domain <domain>']
179
+ get_value: '/^peer-switch/'
180
+ set_value: "<state> peer-switch"
181
+ default_value: false
182
+
183
+ phy_port_vpc_module_pids:
184
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
185
+ default_only: 'N7[K7]-(?:F2|F3|F4|M3)'
186
+
187
+ port_channel_limit:
188
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
189
+ auto_default: false
190
+ kind: boolean
191
+ get_value: '/^port-channel limit/'
192
+ set_value: "<state> port-channel limit"
193
+ default_value: true
194
+
195
+ role_priority:
196
+ kind: int
197
+ get_value: '/^role priority\s+(\d+)/'
198
+ set_value: "role priority <priority>"
199
+ default_value: 32667
200
+
201
+ self_isolation:
202
+ kind: boolean
203
+ _exclude: [N3k, N5k, N6k, N3k-F, N9k-F, N9k]
204
+ get_value: '/^self-isolation/'
205
+ set_value: "<state> self-isolation"
206
+ default_value: false
207
+
208
+ shutdown:
209
+ os_version: 'N3k, N9k:7.0.3.I6.1'
210
+ kind: boolean
211
+ get_value: '/^shutdown/'
212
+ set_value: "<state> shutdown"
213
+ default_value: false
214
+
215
+ system_mac:
216
+ kind: string
217
+ get_value: '/^system-mac (\S+)$/'
218
+ set_value: "<state> system-mac <mac_addr>"
219
+ default_value: ''
220
+
221
+ system_priority:
222
+ kind: int
223
+ get_value: '/^system-priority\s+(\d+)/'
224
+ set_value: "system-priority <priority>"
225
+ default_value: 32667
226
+
227
+ # Exclude everyone for now till the track command is fully supported
228
+ track:
229
+ kind: int
230
+ _exclude: [N3k, N5k, N6k, N7k, N3k-F, N9k-F, N9k]
231
+ get_value: '/^track\s+(\d+)/'
232
+ set_value: "<state> track <val>"
233
+ default_value: 0
@@ -0,0 +1,86 @@
1
+ # vrf.yaml
2
+ ---
3
+ _template:
4
+ nexus:
5
+ get_command: "show running all | section '^vrf context'"
6
+ context:
7
+ - 'vrf context <vrf>'
8
+ ios_xr:
9
+ get_command: "show run vrf"
10
+ context:
11
+ - 'vrf <vrf>'
12
+
13
+ address_family:
14
+ set_value: '<state> address-family <afi> <safi>'
15
+
16
+ all_vrfs:
17
+ multiple: true
18
+ context: ~
19
+ nexus:
20
+ get_value: '/^vrf context (.*)/'
21
+ ios_xr:
22
+ get_value: '/^vrf (.*)/'
23
+
24
+ create:
25
+ context: ~
26
+ nexus:
27
+ set_value: 'vrf context <vrf>'
28
+ ios_xr:
29
+ set_value: 'vrf <vrf>'
30
+
31
+ description:
32
+ get_value: '/^description (.*)/'
33
+ set_value: '<state> description <desc>'
34
+ kind: string
35
+ default_value: ''
36
+
37
+ destroy:
38
+ context: ~
39
+ nexus:
40
+ set_value: 'no vrf context <vrf>'
41
+ ios_xr:
42
+ set_value: 'no vrf <vrf>'
43
+
44
+ mhost_default_interface:
45
+ _exclude: [nexus]
46
+ get_value: '/^mhost <afi> default-interface (\S+)$/'
47
+ set_value: '<state> mhost <afi> default-interface <intf>'
48
+ default_value: ''
49
+
50
+ remote_route_filtering:
51
+ _exclude: [nexus]
52
+ kind: boolean
53
+ get_value: '/^remote-route-filtering disable$/'
54
+ set_value: '<state> remote-route-filtering disable'
55
+ default_value: true
56
+
57
+ route_distinguisher:
58
+ # Only configurable under BGP in IOS XR, not under VRF context
59
+ _exclude: [ios_xr]
60
+ get_value: '/^rd (\S+)$/'
61
+ set_value: '<state> rd <rd>'
62
+ default_value: ''
63
+
64
+ shutdown:
65
+ _exclude: [ios_xr]
66
+ kind: boolean
67
+ get_value: '/^shutdown$/'
68
+ set_value: '<state> shutdown'
69
+ default_value: false
70
+
71
+ vni: # TBD Should this move to the vni provider as vrf_vni?
72
+ # MT-lite only
73
+ N9k: &vni9k
74
+ kind: int
75
+ get_value: '/^vni (\d+)$/'
76
+ set_value: '<state> vni <id>'
77
+ default_value: false
78
+ N9k-F: *vni9k
79
+ N3k-F: *vni9k
80
+
81
+ vpn_id:
82
+ _exclude: [nexus]
83
+ get_value: '/^vpn id (\S+)$/'
84
+ set_value: '<state> vpn id <vpnid>'
85
+ default_value: ''
86
+
@@ -0,0 +1,139 @@
1
+ # vrf_af.yaml
2
+ ---
3
+ _template:
4
+ nexus:
5
+ get_command: "show running all | section '^vrf context'"
6
+ context:
7
+ - 'vrf context <vrf>'
8
+ - 'address-family <afi> <safi>'
9
+ ios_xr:
10
+ get_command: "show run vrf"
11
+ context:
12
+ - 'vrf <vrf>'
13
+ - 'address-family <afi> <safi>'
14
+
15
+ all_afs:
16
+ multiple: true
17
+ get_value: '/^address-family (\S+) (\S+)$/'
18
+ nexus:
19
+ context: ['vrf context <vrf>']
20
+ ios_xr:
21
+ context: ['vrf <vrf>']
22
+
23
+ route_policy_export:
24
+ default_value: ~
25
+ nexus:
26
+ get_value: '/^export map (\S+)$/'
27
+ set_value: '<state> export map <policy_name>'
28
+ ios_xr:
29
+ get_value: '/^export route-policy (\S+)$/'
30
+ set_value: '<state> export route-policy <policy_name>'
31
+
32
+ route_policy_import:
33
+ default_value: ~
34
+ nexus:
35
+ get_value: '/^import map (\S+)$/'
36
+ set_value: '<state> import map <policy_name>'
37
+ ios_xr:
38
+ get_value: '/^import route-policy (\S+)$/'
39
+ set_value: '<state> import route-policy <policy_name>'
40
+
41
+ route_target_both_auto:
42
+ _exclude: [N3k, ios_xr]
43
+ kind: boolean
44
+ get_value: '/^route-target both auto$/'
45
+ set_value: '<state> route-target both auto'
46
+ default_value: false
47
+
48
+ route_target_both_auto_evpn:
49
+ _exclude: [N3k, ios_xr]
50
+ kind: boolean
51
+ get_value: '/^route-target both auto evpn$/'
52
+ set_value: '<state> route-target both auto evpn'
53
+ default_value: false
54
+
55
+ route_target_both_auto_mvpn:
56
+ _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
57
+ kind: boolean
58
+ get_value: '/^route-target both auto mvpn$/'
59
+ set_value: '<state> route-target both auto mvpn'
60
+ default_value: false
61
+
62
+ route_target_export:
63
+ multiple: true
64
+ default_value: []
65
+ nexus:
66
+ get_value: '/^route-target export (\S+)$/'
67
+ set_value: '<state> route-target export <community>'
68
+ ios_xr:
69
+ get_context:
70
+ - '/^vrf <vrf>$/i'
71
+ - '/^address-family <afi> <safi>$/'
72
+ - '/^export route-target$/'
73
+ get_value: '/^(\S+)$/'
74
+ set_value: '<state> export route-target <community>'
75
+
76
+ route_target_export_evpn:
77
+ _exclude: [N3k, ios_xr]
78
+ multiple: true
79
+ get_value: '/^route-target export (\S+) evpn$/'
80
+ set_value: '<state> route-target export <community> evpn'
81
+ default_value: []
82
+
83
+ route_target_export_mvpn:
84
+ _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
85
+ multiple: true
86
+ get_value: '/^route-target export (\S+) mvpn$/'
87
+ set_value: '<state> route-target export <community> mvpn'
88
+ default_value: []
89
+
90
+ route_target_export_stitching:
91
+ _exclude: [nexus]
92
+ multiple: true
93
+ get_context:
94
+ - '/^vrf <vrf>$/i'
95
+ - '/^address-family <afi> <safi>$/'
96
+ - '/^export route-target$/'
97
+ get_value: '/^(\S+) stitching$/'
98
+ set_value: '<state> export route-target <community> stitching'
99
+ default_value: []
100
+
101
+ route_target_import:
102
+ multiple: true
103
+ default_value: []
104
+ nexus:
105
+ get_value: '/^route-target import (\S+)$/'
106
+ set_value: '<state> route-target import <community>'
107
+ ios_xr:
108
+ get_context:
109
+ - '/^vrf <vrf>$/i'
110
+ - '/^address-family <afi> <safi>$/'
111
+ - '/^import route-target$/'
112
+ get_value: '/^(\S+)$/'
113
+ set_value: '<state> import route-target <community>'
114
+
115
+ route_target_import_evpn:
116
+ _exclude: [N3k, ios_xr]
117
+ multiple: true
118
+ get_value: '/^route-target import (\S+) evpn$/'
119
+ set_value: '<state> route-target import <community> evpn'
120
+ default_value: []
121
+
122
+ route_target_import_mvpn:
123
+ _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
124
+ multiple: true
125
+ get_value: '/^route-target import (\S+) mvpn$/'
126
+ set_value: '<state> route-target import <community> mvpn'
127
+ default_value: []
128
+
129
+ route_target_import_stitching:
130
+ _exclude: [nexus]
131
+ multiple: true
132
+ get_context:
133
+ - '/^vrf <vrf>$/i'
134
+ - '/^address-family <afi> <safi>$/'
135
+ - '/^import route-target$/'
136
+ get_value: '/^(\S+) stitching$/'
137
+ set_value: '<state> import route-target <community> stitching'
138
+ default_value: []
139
+
@@ -0,0 +1,32 @@
1
+ # vtp
2
+ ---
3
+ _exclude: [ios_xr, N3k-F, N9k-F]
4
+
5
+ # VTP behaves differently across the various Nexus platforms and as a
6
+ # result it's not currently possible to use a single 'show running'
7
+ # command to query the device state.
8
+ domain:
9
+ get_command: "show vtp status"
10
+ get_value: '/^VTP\s+Domain\s+Name\s+:\s+(\S+)$/'
11
+ set_value: "vtp domain <domain>"
12
+ default_value: ""
13
+
14
+ filename:
15
+ get_command: "show running-config vtp all"
16
+ get_value: '/vtp\s+file\s+(\S+)/'
17
+ set_value: "<state> vtp file <uri>"
18
+ default_value: "bootflash:/vlan.dat"
19
+
20
+ password:
21
+ get_data_format: nxapi_structured
22
+ get_command: "show vtp password"
23
+ get_value: "passwd"
24
+ set_value: "<state> vtp password <password>"
25
+ default_value: ""
26
+
27
+ version:
28
+ kind: int
29
+ get_command: "show vtp status"
30
+ get_value: '/^VTP\s+version\s+running\s+:\s+(\d+)$/'
31
+ set_value: "vtp version <version>"
32
+ default_value: 1