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,48 @@
1
+ # Command Reference Common ACL
2
+ #
3
+ # For documentation please see:
4
+ # - README_YAML.md
5
+ #
6
+ ---
7
+ _exclude: [ios_xr]
8
+
9
+ _template:
10
+ get_command: 'show run aclmgr'
11
+ context: ['<afi> access-list <acl_name>']
12
+
13
+ ace:
14
+ get_value: '/^<seqno> .+$/'
15
+ set_value: '<state> <seqno> <action> <proto> <src_addr> <src_port> <dst_addr> <dst_port> <proto_option> <tcp_flags> <established> <precedence> <dscp> <http_method> <time_range> <packet_length> <ttl> <tcp_option_length> <vlan> <redirect> <set_erspan_dscp> <set_erspan_gre_proto> <log>'
16
+
17
+ ace_destroy:
18
+ set_value: 'no <seqno>'
19
+
20
+ ace_remark:
21
+ set_value: '<state> <seqno> remark <remark>'
22
+
23
+ acl:
24
+ context: ~
25
+ get_value: '/^<afi> access-list (\S+)$/'
26
+ set_value: '<state> <afi> access-list <acl_name>'
27
+
28
+ all_aces:
29
+ multiple:
30
+ get_value: '/^(\d+) .+$/'
31
+
32
+ all_acls:
33
+ multiple:
34
+ get_context: ~
35
+ get_value: '/^<afi> access-list (\S+)$/'
36
+
37
+ fragments:
38
+ # Note: The ACL 'fragments' keyword is independent of ACE 'fragments'
39
+ _exclude: [N5k, N6k, N3k-F, N9k-F]
40
+ get_value: '/fragments (\S+)$/'
41
+ set_value: '<state> fragments <action>'
42
+ default_value: ~
43
+
44
+ stats_per_entry:
45
+ kind: boolean
46
+ get_value: '/statistics per-entry$/'
47
+ set_value: '<state> statistics per-entry'
48
+ default_value: false
@@ -0,0 +1,11 @@
1
+ # banner
2
+ ---
3
+ motd:
4
+ N5k: &N6000
5
+ default_value: "Nexus 6000 Switch\n"
6
+ N6k: *N6000
7
+ else:
8
+ default_value: "User Access Verification\n"
9
+ get_command: 'show banner motd'
10
+ get_value: '/^.*$/m'
11
+ set_value: '<state> banner motd <motd>'
@@ -0,0 +1,117 @@
1
+ # bfd_global
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ _template:
6
+ get_command: "show running-config bfd all"
7
+ context: ~
8
+
9
+ echo_interface:
10
+ kind: string
11
+ get_value: '/^bfd echo-interface (.*)$/'
12
+ set_value: '<state> bfd echo-interface <intf>'
13
+ default_value: false
14
+
15
+ echo_rx_interval:
16
+ _exclude: [N5k, N6k]
17
+ kind: int
18
+ get_value: '/^bfd echo-rx-interval (\d+)$/'
19
+ set_value: '<state> bfd echo-rx-interval <rxi>'
20
+ N3k:
21
+ default_value: 250
22
+ else:
23
+ default_value: 50
24
+
25
+ fabricpath_interval:
26
+ _exclude: [N3k, N3k-F, N9k-F, N9k]
27
+ get_value: '/^bfd fabricpath interval (\d+) min_rx (\d+) multiplier (\d+)$/'
28
+ set_value: '<state> bfd fabricpath interval <interval> min_rx <min_rx> multiplier <multiplier>'
29
+ default_value: ['50', '50', '3']
30
+
31
+ fabricpath_slow_timer:
32
+ _exclude: [N3k, N3k-F, N9k-F, N9k]
33
+ kind: int
34
+ get_value: '/^bfd fabricpath slow-timer (\d+)$/'
35
+ set_value: '<state> bfd fabricpath slow-timer <timer>'
36
+ default_value: 2000
37
+
38
+ fabricpath_vlan:
39
+ _exclude: [N3k, N3k-F, N9k-F, N9k]
40
+ kind: int
41
+ get_value: '/^bfd fabricpath vlan (\d+)$/'
42
+ set_value: '<state> bfd fabricpath vlan <vlan>'
43
+ default_value: 1
44
+
45
+ interval:
46
+ os_version: 'N9k-F:7.0.3.F2.1; N9k:7.0.3.I6.1'
47
+ get_value: '/^bfd interval (\d+) min_rx (\d+) multiplier (\d+)$/'
48
+ set_value: '<state> bfd interval <interval> min_rx <min_rx> multiplier <multiplier>'
49
+ N3k:
50
+ default_value: ['250', '250', '3']
51
+ else:
52
+ default_value: ['50', '50', '3']
53
+
54
+ ipv4_echo_rx_interval:
55
+ _exclude: [N5k, N6k]
56
+ kind: int
57
+ get_value: '/^bfd ipv4 echo-rx-interval (\d+)$/'
58
+ set_value: '<state> bfd ipv4 echo-rx-interval <rxi>'
59
+ N3k:
60
+ default_value: 250
61
+ else:
62
+ default_value: 50
63
+
64
+ ipv4_interval:
65
+ _exclude: [N5k, N6k]
66
+ get_value: '/^bfd ipv4 interval (\d+) min_rx (\d+) multiplier (\d+)$/'
67
+ set_value: '<state> bfd ipv4 interval <interval> min_rx <min_rx> multiplier <multiplier>'
68
+ N3k:
69
+ default_value: ['250', '250', '3']
70
+ else:
71
+ default_value: ['50', '50', '3']
72
+
73
+ ipv4_slow_timer:
74
+ _exclude: [N5k, N6k]
75
+ kind: int
76
+ get_value: '/^bfd ipv4 slow-timer (\d+)$/'
77
+ set_value: '<state> bfd ipv4 slow-timer <timer>'
78
+ default_value: 2000
79
+
80
+ ipv6_echo_rx_interval:
81
+ _exclude: [N5k, N6k]
82
+ kind: int
83
+ get_value: '/^bfd ipv6 echo-rx-interval (\d+)$/'
84
+ set_value: '<state> bfd ipv6 echo-rx-interval <rxi>'
85
+ N3k:
86
+ default_value: 250
87
+ else:
88
+ default_value: 50
89
+
90
+ ipv6_interval:
91
+ _exclude: [N5k, N6k]
92
+ get_value: '/^bfd ipv6 interval (\d+) min_rx (\d+) multiplier (\d+)$/'
93
+ set_value: '<state> bfd ipv6 interval <interval> min_rx <min_rx> multiplier <multiplier>'
94
+ N3k:
95
+ default_value: ['250', '250', '3']
96
+ else:
97
+ default_value: ['50', '50', '3']
98
+
99
+ ipv6_slow_timer:
100
+ _exclude: [N5k, N6k]
101
+ kind: int
102
+ get_value: '/^bfd ipv6 slow-timer (\d+)$/'
103
+ set_value: '<state> bfd ipv6 slow-timer <timer>'
104
+ default_value: 2000
105
+
106
+ slow_timer:
107
+ kind: int
108
+ get_value: '/^bfd slow-timer (\d+)$/'
109
+ set_value: '<state> bfd slow-timer <timer>'
110
+ default_value: 2000
111
+
112
+ startup_timer:
113
+ _exclude: [N5k, N6k, N7k]
114
+ kind: int
115
+ get_value: '/^bfd startup-timer (\d+)$/'
116
+ set_value: '<state> bfd startup-timer <timer>'
117
+ default_value: 5
@@ -0,0 +1,383 @@
1
+ # bgp.yaml
2
+ ---
3
+ _template:
4
+ ios_xr:
5
+ get_command: "show running-config router bgp"
6
+ nexus:
7
+ get_command: "show running bgp all"
8
+ context:
9
+ - "router bgp <asnum>"
10
+ - "(?)vrf <vrf>"
11
+
12
+ address_family:
13
+ set_value: '<state> address-family <afi> <safi>'
14
+
15
+ bestpath_always_compare_med:
16
+ kind: boolean
17
+ default_value: false
18
+ ios_xr:
19
+ get_value: 'bgp bestpath med always'
20
+ set_value: '<state> bgp bestpath med always'
21
+ nexus:
22
+ get_value: 'bestpath always-compare-med'
23
+ set_value: '<state> bestpath always-compare-med'
24
+
25
+ bestpath_aspath_multipath_relax:
26
+ kind: boolean
27
+ default_value: false
28
+ ios_xr:
29
+ get_value: 'bgp bestpath as-path multipath-relax'
30
+ set_value: '<state> bgp bestpath as-path multipath-relax'
31
+ nexus:
32
+ get_value: 'bestpath as-path multipath-relax'
33
+ set_value: '<state> bestpath as-path multipath-relax'
34
+
35
+ bestpath_compare_routerid:
36
+ kind: boolean
37
+ default_value: false
38
+ ios_xr:
39
+ get_value: 'bgp bestpath compare-routerid'
40
+ set_value: '<state> bgp bestpath compare-routerid'
41
+ nexus:
42
+ get_value: 'bestpath compare-routerid'
43
+ set_value: '<state> bestpath compare-routerid'
44
+
45
+ bestpath_cost_community_ignore:
46
+ kind: boolean
47
+ default_value: false
48
+ ios_xr:
49
+ get_value: 'bgp bestpath cost-community ignore'
50
+ set_value: '<state> bgp bestpath cost-community ignore'
51
+ nexus:
52
+ get_value: 'bestpath cost-community ignore'
53
+ set_value: '<state> bestpath cost-community ignore'
54
+
55
+ bestpath_med_confed:
56
+ kind: boolean
57
+ default_value: false
58
+ ios_xr:
59
+ # Note: Only applies to global BGP; not VRF applicable
60
+ get_value: 'bgp bestpath med confed'
61
+ set_value: '<state> bgp bestpath med confed'
62
+ nexus:
63
+ get_value: 'bestpath med confed'
64
+ set_value: '<state> bestpath med confed'
65
+
66
+ bestpath_med_missing_as_worst:
67
+ kind: boolean
68
+ default_value: false
69
+ ios_xr:
70
+ get_value: 'bgp bestpath med missing-as-worst'
71
+ set_value: '<state> bgp bestpath med missing-as-worst'
72
+ nexus:
73
+ get_value: 'bestpath med missing-as-worst'
74
+ set_value: '<state> bestpath med missing-as-worst'
75
+
76
+ bestpath_med_non_deterministic:
77
+ # Note: Does not exist in IOS XR
78
+ nexus:
79
+ kind: boolean
80
+ get_value: 'bestpath med non-deterministic'
81
+ set_value: '<state> bestpath med non-deterministic'
82
+ default_value: false
83
+
84
+ cluster_id:
85
+ default_value: ""
86
+ ios_xr:
87
+ # Note: Only applies to global BGP; not VRF applicable
88
+ get_value: 'bgp cluster-id (\S+)'
89
+ set_value: '<state> bgp cluster-id <id>'
90
+ nexus:
91
+ get_value: 'cluster-id (\S+)'
92
+ set_value: '<state> cluster-id <id>'
93
+
94
+ confederation_id:
95
+ default_value: ""
96
+ ios_xr:
97
+ # Note: Only applies to global BGP; not VRF applicable
98
+ get_value: 'bgp confederation identifier (\d+|\d+.\d+)'
99
+ set_value: '<state> bgp confederation identifier <id>'
100
+ nexus:
101
+ get_value: 'confederation identifier (\d+|\d+.\d+)'
102
+ set_value: '<state> confederation identifier <id>'
103
+
104
+ confederation_peers:
105
+ default_value: []
106
+ ios_xr:
107
+ # Note: Only applies to global BGP; not VRF applicable
108
+ multiple: true
109
+ get_context:
110
+ - 'router bgp <asnum>'
111
+ - 'bgp confederation peers'
112
+ get_value: '/(\S+)/'
113
+ set_value: '<state> bgp confederation peers <peer>'
114
+ nexus:
115
+ get_value: 'confederation peers (.*)'
116
+ set_value: '<state> confederation peers <peer>'
117
+
118
+ create_destroy_neighbor:
119
+ set_value: '<state> neighbor <nbr>'
120
+
121
+ disable_policy_batching:
122
+ _exclude: [ios_xr]
123
+ get_value: '/^disable-policy-batching$/'
124
+ set_value: '<state> disable-policy-batching'
125
+ default_value: false
126
+
127
+ disable_policy_batching_ipv4:
128
+ _exclude: [ios_xr, N5k, N6k]
129
+ os_version: 'N7k:8.1.1'
130
+ get_value: '/^disable-policy-batching ipv4 prefix-list (\S+)$/'
131
+ set_value: '<state> disable-policy-batching ipv4 prefix-list <prefix_list>'
132
+ default_value: ""
133
+
134
+ disable_policy_batching_ipv6:
135
+ _exclude: [ios_xr, N5k, N6k]
136
+ os_version: 'N7k:8.1.1'
137
+ get_value: '/^disable-policy-batching ipv6 prefix-list (\S+)$/'
138
+ set_value: '<state> disable-policy-batching ipv6 prefix-list <prefix_list>'
139
+ default_value: ""
140
+
141
+ enforce_first_as:
142
+ kind: boolean
143
+ default_value: true
144
+ ios_xr:
145
+ get_value: 'bgp enforce-first-as disable'
146
+ set_value: '<state> bgp enforce-first-as disable'
147
+ nexus:
148
+ get_value: '(no )?enforce-first-as'
149
+ set_value: '<state> enforce-first-as'
150
+
151
+ event_history_cli:
152
+ _exclude: [ios_xr]
153
+ get_value: '/^(no )?event-history cli(?: size (\S+))?$/'
154
+ set_value: '<state> event-history cli <size>'
155
+
156
+ event_history_detail:
157
+ _exclude: [ios_xr]
158
+ get_value: '/^(no )?event-history detail(?: size (\S+))?$/'
159
+ set_value: '<state> event-history detail <size>'
160
+
161
+ event_history_errors:
162
+ _exclude: [ios_xr, N5k, N6k]
163
+ os_version: 'N7k:8.0; N3k, N9k:7.0.3.I5.1; N9k-F:7.0.3.F3.2'
164
+ get_value: '/^(no )?event-history errors(?: size (\S+))?$/'
165
+ set_value: '<state> event-history errors <size>'
166
+
167
+ event_history_events:
168
+ _exclude: [ios_xr]
169
+ get_value: '/^(no )?event-history events(?: size (\S+))?$/'
170
+ set_value: '<state> event-history events <size>'
171
+
172
+ event_history_objstore:
173
+ _exclude: [ios_xr, N5k, N6k]
174
+ os_version: 'N7k:8.0; N3k, N9k:7.0.3.I5.1; N9k-F:7.0.3.F3.2'
175
+ get_value: '/^(no )?event-history objstore(?: size (\S+))?$/'
176
+ set_value: '<state> event-history objstore <size>'
177
+
178
+ event_history_periodic:
179
+ _exclude: [ios_xr]
180
+ get_value: '/^(no )?event-history periodic(?: size (\S+))?$/'
181
+ set_value: '<state> event-history periodic <size>'
182
+
183
+ fast_external_fallover:
184
+ kind: boolean
185
+ default_value: true
186
+ ios_xr:
187
+ get_value: 'bgp fast-external-fallover disable'
188
+ set_value: '<state> bgp fast-external-fallover disable'
189
+ nexus:
190
+ get_value: '(no )?fast-external-fallover'
191
+ set_value: '<state> fast-external-fallover'
192
+
193
+ flush_routes:
194
+ _exclude: [ios_xr]
195
+ kind: boolean
196
+ get_value: 'flush-routes'
197
+ set_value: '<state> flush-routes'
198
+ default_value: false
199
+
200
+ graceful_restart:
201
+ kind: boolean
202
+ default_value: true
203
+ ios_xr:
204
+ # Note: Only applies to global BGP; not VRF applicable
205
+ auto_default: false
206
+ get_value: 'bgp graceful-restart'
207
+ set_value: '<state> bgp graceful-restart'
208
+ nexus:
209
+ get_value: '(no )?graceful-restart'
210
+ set_value: '<state> graceful-restart'
211
+
212
+ graceful_restart_helper:
213
+ # Note: Does not exist in IOS XR
214
+ nexus:
215
+ kind: boolean
216
+ get_value: 'graceful-restart-helper'
217
+ set_value: '<state> graceful-restart-helper'
218
+ default_value: false
219
+
220
+ graceful_restart_timers_restart:
221
+ kind: int
222
+ default_value: 120
223
+ ios_xr:
224
+ # Note: Only applies to global BGP; not VRF applicable
225
+ get_value: 'bgp graceful-restart restart-time (\d+)'
226
+ set_value: '<state> bgp graceful-restart restart-time <seconds>'
227
+ nexus:
228
+ get_value: 'graceful-restart restart-time (\d+)'
229
+ set_value: '<state> graceful-restart restart-time <seconds>'
230
+
231
+ graceful_restart_timers_stalepath_time:
232
+ kind: int
233
+ default_value: 300
234
+ ios_xr:
235
+ # Note: Only applies to global BGP; not VRF applicable
236
+ get_value: 'bgp graceful-restart stalepath-time (\d+)'
237
+ set_value: '<state> bgp graceful-restart stalepath-time <seconds>'
238
+ nexus:
239
+ get_value: 'graceful-restart stalepath-time (\d+)'
240
+ set_value: '<state> graceful-restart stalepath-time <seconds>'
241
+
242
+ isolate:
243
+ _exclude: [ios_xr]
244
+ kind: boolean
245
+ get_value: 'isolate'
246
+ set_value: '<state> isolate'
247
+ default_value: false
248
+
249
+ log_neighbor_changes:
250
+ kind: boolean
251
+ ios_xr:
252
+ default_value: true
253
+ get_value: 'bgp log neighbor changes disable'
254
+ set_value: '<state> bgp log neighbor changes disable'
255
+ nexus:
256
+ default_value: false
257
+ get_value: 'log-neighbor-changes'
258
+ set_value: '<state> log-neighbor-changes'
259
+
260
+ maxas_limit:
261
+ # Note: Does not exist in IOS XR
262
+ nexus:
263
+ kind: int
264
+ get_value: 'maxas-limit (\d+)'
265
+ set_value: '<state> maxas-limit <limit>'
266
+ default_value: false
267
+
268
+ neighbor_down_fib_accelerate:
269
+ # Note: Does not exist in IOS XR
270
+ _exclude: [ios_xr, N5k, N6k]
271
+ os_version: 'N7k:8.1.1'
272
+ kind: boolean
273
+ get_value: 'neighbor-down fib-accelerate'
274
+ set_value: '<state> neighbor-down fib-accelerate'
275
+ default_value: false
276
+
277
+ nsr:
278
+ _exclude: [nexus]
279
+ kind: boolean
280
+ default_value: false
281
+ get_value: '/^nsr$/'
282
+ set_value: '<state> nsr'
283
+
284
+ process_initialized:
285
+ _exclude: [ios_xr, N3k, N3k-F, N7k, N9k, N9k-F]
286
+ # bgp process initialization state
287
+ kind: boolean
288
+ context: ~
289
+ get_command: "show ip bgp"
290
+ get_value: '/^BGP routing table information/'
291
+
292
+ reconnect_interval:
293
+ _exclude: [ios_xr, N5k, N6k]
294
+ os_version: 'N7k:8.1.1'
295
+ kind: int
296
+ get_value: 'reconnect-interval (\d+)'
297
+ set_value: '<state> reconnect-interval <seconds>'
298
+ default_value: 60
299
+
300
+ route_distinguisher:
301
+ # This property is also supported by vrf.yaml
302
+ default_value: ""
303
+ ios_xr:
304
+ get_value: 'rd (\S+)'
305
+ set_value: '<state> rd <rd>'
306
+ nexus:
307
+ context:
308
+ - "vrf context <vrf>"
309
+ get_value: 'rd (\S+)'
310
+ set_value: "<state> rd <rd>"
311
+
312
+ router:
313
+ ios_xr:
314
+ get_command: "show running router bgp"
315
+ nexus:
316
+ get_command: "show running bgp"
317
+ context: ~
318
+ get_value: 'router bgp ([\d.]+)'
319
+ set_value: "<state> router bgp <asnum>"
320
+
321
+ router_id:
322
+ default_value: ""
323
+ ios_xr:
324
+ get_value: 'bgp router-id (\S+)'
325
+ set_value: '<state> bgp router-id <id>'
326
+ nexus:
327
+ get_value: 'router-id (\S+)'
328
+ set_value: '<state> router-id <id>'
329
+
330
+ shutdown:
331
+ # Note: Does not exist in IOS XR
332
+ nexus:
333
+ # Shutdown only applies to global bgp
334
+ kind: boolean
335
+ get_command: "show running bgp"
336
+ get_context:
337
+ - '/^router bgp %s$/i'
338
+ get_value: 'shutdown'
339
+ set_context:
340
+ - "router bgp <asnum>"
341
+ set_value: "<state> shutdown"
342
+ default_value: false
343
+
344
+ suppress_fib_pending:
345
+ _exclude: [ios_xr]
346
+ kind: boolean
347
+ get_value: '/^(?:no )?suppress-fib-pending$/'
348
+ set_value: '<state> suppress-fib-pending'
349
+ default_value: true
350
+ auto_default: false
351
+
352
+ timer_bestpath_limit:
353
+ # Note: Does not exist in IOS XR
354
+ nexus:
355
+ kind: int
356
+ get_value: 'timers bestpath-limit (\d+)(?: always)?'
357
+ set_value: '<state> timers bestpath-limit <seconds>'
358
+ default_value: 300
359
+
360
+ timer_bestpath_limit_always:
361
+ # Note: Does not exist in IOS XR
362
+ nexus:
363
+ kind: boolean
364
+ get_value: 'timers bestpath-limit \d+ always'
365
+ set_value: '<state> timers bestpath-limit <seconds> always'
366
+ default_value: false
367
+
368
+ timer_bgp_hold:
369
+ default_value: 180
370
+
371
+ timer_bgp_keepalive:
372
+ default_value: 60
373
+
374
+ timer_bgp_keepalive_hold:
375
+ get_value: 'timers bgp (\d+) (\d+)'
376
+ set_value: '<state> timers bgp <keepalive> <hold>'
377
+
378
+ vrf:
379
+ multiple: true
380
+ get_value: 'vrf\s+(\S+)'
381
+ set_context:
382
+ - "router bgp <asnum>"
383
+ set_value: "<state> vrf <vrf>"