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,9 @@
1
+ # show_system
2
+ ---
3
+ uptime:
4
+ # TODO: redundant with show_version, uptime?
5
+ nexus:
6
+ get_command: 'show system uptime'
7
+ ios_xr:
8
+ get_command: 'show version'
9
+ get_value: '/.*System uptime.*(?:(\d+) days, )?(?:(\d+) hours, )?(?:(\d+) minutes, )?(?:(\d+) seconds)?/'
@@ -0,0 +1,84 @@
1
+ # show_version
2
+ ---
3
+ _template:
4
+ N5k: &template5k
5
+ get_command: 'sh version'
6
+ N6k: *template5k
7
+ N3k: &template3k
8
+ get_command: 'sh hardware'
9
+ N7k: *template3k
10
+ N9k: *template3k
11
+ N3k-F: *template3k
12
+ N9k-F: *template3k
13
+ nexus:
14
+ data_format: nxapi_structured
15
+ ios_xr:
16
+ data_format: cli
17
+
18
+ board:
19
+ nexus:
20
+ get_value: 'proc_board_id'
21
+
22
+ boot_image:
23
+ _exclude: [ios_xr]
24
+ get_value: "kick_file_name"
25
+
26
+ cpu:
27
+ nexus:
28
+ get_value: 'cpu_name'
29
+
30
+ description:
31
+ nexus:
32
+ get_value: "chassis_id"
33
+ ios_xr:
34
+ get_command: 'show inventory | inc "Rack 0"'
35
+ get_value: '/DESCR: "(.*)"/'
36
+
37
+ full:
38
+ get_command: "sh version"
39
+
40
+ header:
41
+ nexus:
42
+ get_value: "header_str"
43
+ ios_xr:
44
+ get_value: '/Cisco.*Software/'
45
+
46
+ host_name:
47
+ nexus:
48
+ get_value: "host_name"
49
+ ios_xr:
50
+ # not displayed in 'show version' on IOS XR
51
+ get_command: "show running | i hostname"
52
+ get_value: '/^hostname (.*)$/'
53
+ default_value: 'ios'
54
+
55
+ last_reset_reason:
56
+ _exclude: [ios_xr]
57
+ get_value: "rr_reason"
58
+
59
+ last_reset_time:
60
+ _exclude: [N3k, ios_xr]
61
+ kind: string
62
+ default_value: ''
63
+ get_value: "rr_ctime"
64
+
65
+ system_image:
66
+ get_value: "kick_file_name"
67
+ N5k: &sys_img_isan
68
+ get_value: "isan_file_name"
69
+ N6k: *sys_img_isan
70
+ N7k: *sys_img_isan
71
+ ios_xr:
72
+ get_command: 'sh install active'
73
+ get_value: '/^\s*(\S*)\s*version.*\[Boot image\]$/'
74
+
75
+ uptime:
76
+ get_command: 'sh system uptime'
77
+ get_data_format: cli
78
+ get_value: '/Kernel uptime:\s+(.*)/'
79
+
80
+ version:
81
+ nexus:
82
+ get_value: "kickstart_ver_str"
83
+ ios_xr:
84
+ get_value: '/IOS XR.*Version (.*)$/'
@@ -0,0 +1,81 @@
1
+ # snmp_community
2
+ ---
3
+
4
+ _template:
5
+ N3k: &template_structured
6
+ get_data_format: nxapi_structured
7
+ get_command: "show snmp community"
8
+ get_context: ["TABLE_snmp_community", "ROW_snmp_community"]
9
+ N9k: *template_structured
10
+ N9k-F: *template_structured
11
+ N3k-F: *template_structured
12
+
13
+ acl:
14
+ N3k: &acl_structured_get
15
+ kind: string
16
+ get_value: ["community_name <name>", "aclfilter", '/^(?:ACL mapped:\s+)?(\S+)/']
17
+ set_value: "<state> snmp-server community <name> use-acl <acl>"
18
+ N9k: *acl_structured_get
19
+ N9k-F: *acl_structured_get
20
+ N3k-F: *acl_structured_get
21
+ ios_xr:
22
+ get_command: "show running snmp"
23
+ get_value: '/^snmp-server community <name> IPv4 (.*)$/'
24
+ set_value: "<state> snmp-server community <name> <acl>"
25
+ N5k: &acl_cli_get
26
+ get_command: "show running snmp all"
27
+ get_value: '/^snmp-server community <name> use-acl (.*)$/'
28
+ set_value: "<state> snmp-server community <name> use-acl <acl>"
29
+ N6k: *acl_cli_get
30
+ N7k: *acl_cli_get
31
+ default_value: ""
32
+
33
+ all_communities:
34
+ multiple: true
35
+ N3k: &all_structured
36
+ get_value: 'community_name'
37
+ N9k: *all_structured
38
+ N9k-F: *all_structured
39
+ N3k-F: *all_structured
40
+ N5k: &all_cli
41
+ get_command: "show running snmp all"
42
+ get_value: '/^snmp-server community (\S+) /'
43
+ N6k: *all_cli
44
+ N7k: *all_cli
45
+ ios_xr:
46
+ get_command: "show running-config snmp"
47
+ get_value: '/^snmp-server community (\S+)/'
48
+
49
+ community:
50
+ nexus:
51
+ set_value: "<state> snmp-server community <name> group <group>"
52
+ ios_xr:
53
+ get_command: "show running-config snmp"
54
+ get_value: '/^snmp-server community (%s) .*$/'
55
+ set_value: "<state> snmp-server community <name>"
56
+
57
+ group:
58
+ N3k: &group_structured_get
59
+ kind: string
60
+ get_value: ["community_name <name>", "grouporaccess", '/^(?:Community groupname:\s+)?(\S+)/']
61
+ N9k: *group_structured_get
62
+ N9k-F: *group_structured_get
63
+ N3k-F: *group_structured_get
64
+ ios_xr: &group_cli_based_get
65
+ kind: string
66
+ get_command: "show running snmp all"
67
+ get_value: '/^snmp-server community <name> group (.*)$/'
68
+ N5k: *group_cli_based_get
69
+ N6k: *group_cli_based_get
70
+ N7k: *group_cli_based_get
71
+ set_value: "snmp-server community <name> group <group>"
72
+ default_value: "network-operator"
73
+
74
+ group_community_mapping:
75
+ get_command: "show running snmp"
76
+ get_value: '/^snmp-server community-map <name> target-list (.*)$/'
77
+ set_value: "snmp-server community-map <name> target-list <group>"
78
+
79
+ group_simple:
80
+ get_command: "show running snmp"
81
+ set_value: "snmp-server group <group> v3 noauth"
@@ -0,0 +1,9 @@
1
+ # snmp_group
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ group:
6
+ multiple: true
7
+ get_command: "show snmp group"
8
+ get_value: "/^Role: (.*)$/"
9
+ default_value: ""
@@ -0,0 +1,74 @@
1
+ # snmp_notification_receiver
2
+ ---
3
+ _template:
4
+ nexus:
5
+ get_command: "show running-config snmp all"
6
+ ios_xr:
7
+ get_command: "show running-config snmp"
8
+
9
+ port:
10
+ nexus:
11
+ get_value: '/^snmp-server host %s.*version.* udp-port (\d+).*$/'
12
+ default_value: null
13
+ ios_xr:
14
+ get_value: '/^snmp-server host %s.* udp-port (\d+).*$/'
15
+ default_value: null
16
+
17
+ receivers:
18
+ get_value: '/^snmp-server host (\S+) (traps|informs)/'
19
+ set_value: "<state> snmp-server host <ip> <type> <version> <security> <username> <udp_port>"
20
+ multiple:
21
+
22
+ security:
23
+ get_value: '/^snmp-server host %s.* version 3 (auth|noauth|priv).*$/'
24
+ default_value: null
25
+
26
+ source_interface:
27
+ nexus:
28
+ get_value: '/^snmp-server host %s.* source-interface (\S+).*$/'
29
+ set_value: "snmp-server host <ip> source-interface <source_interface> <port>"
30
+ default_value: null
31
+ ios_xr:
32
+ get_value: '/^snmp-server trap-source IPv\d (\S+).*$/'
33
+ set_value: "snmp-server trap-source <source_interface>"
34
+
35
+ type:
36
+ get_value: '/^snmp-server host %s (traps|informs).*$/'
37
+ default_value: null
38
+
39
+ username:
40
+ get_value: '/^snmp-server host %s.*version.* (\S+)$/'
41
+ default_value: null
42
+
43
+ username_with_port:
44
+ nexus:
45
+ get_value: '/^snmp-server host %s.*version.* (\S+) udp-port/'
46
+ default_value: null
47
+ ios_xr:
48
+ get_value: '/^snmp-server host %s.* (\S+) udp-port/'
49
+ default_value: null
50
+
51
+ version:
52
+ get_value: '/^snmp-server host %s.* version (\S+).*$/'
53
+ default_value: null
54
+
55
+ vrf:
56
+ nexus:
57
+ get_value: '/^snmp-server host %s.* use-vrf (\S+).*$/'
58
+ set_value: "snmp-server host <ip> use-vrf <vrf> <port>"
59
+ default_value: null
60
+ ios_xr:
61
+ set_value: "snmp-server vrf <vrf> host <ip> <username>"
62
+ default_value: null
63
+
64
+ vrf_all:
65
+ _exclude: [nexus]
66
+ get_value: '/^snmp-server vrf (\S+).*/'
67
+ multiple:
68
+
69
+ vrf_values:
70
+ _exclude: [nexus]
71
+ context: ['snmp-server vrf <vrf>']
72
+ get_value: '/^host (\S+).*$/'
73
+ default_value: null
74
+ multiple:
@@ -0,0 +1,91 @@
1
+ # snmp_server
2
+ ---
3
+
4
+ aaa_user_cache_timeout:
5
+ _exclude: [ios_xr]
6
+ kind: int
7
+ get_command: "show snmp internal globals"
8
+ get_value: '/AAA Cache Timeout :(\d+)/'
9
+ set_value: "%s snmp-server aaa-user cache-timeout %d"
10
+ default_value: 3600
11
+
12
+ contact:
13
+ nexus:
14
+ get_data_format: nxapi_structured
15
+ get_command: "show snmp"
16
+ get_value: "sys_contact"
17
+ set_value: "<state> snmp-server contact <contact>"
18
+ default_value: ""
19
+ ios_xr:
20
+ get_command: 'show running-config snmp'
21
+ get_value: '/^snmp-server contact (\S+)$/'
22
+ set_value: "<state> snmp-server contact <contact>"
23
+ default_value: ""
24
+
25
+ global_enforce_priv:
26
+ _exclude: [ios_xr]
27
+ kind: boolean
28
+ get_command: "show run snmp all"
29
+ get_value: '/^(?:no )?snmp-server globalEnforcePriv/'
30
+ set_value: "%s snmp-server globalEnforcePriv"
31
+ default_value: false
32
+
33
+ location:
34
+ nexus:
35
+ get_data_format: nxapi_structured
36
+ get_command: "show snmp"
37
+ get_value: "sys_location"
38
+ set_value: "<state> snmp-server location <location>"
39
+ default_value: ""
40
+ ios_xr:
41
+ get_command: 'show running-config snmp'
42
+ get_value: '/^snmp-server location (\S+)$/'
43
+ set_value: "<state> snmp-server location <location>"
44
+ default_value: ""
45
+
46
+ packet_size:
47
+ _exclude: [ios_xr]
48
+ kind: int
49
+ get_command: "show snmp internal globals"
50
+ get_value: '/SNMP Max packet size :(\d+)/'
51
+ set_value: "%s snmp-server packetsize %d"
52
+ N3k: &n3k_default_packet_size
53
+ # Prior to the 7.0(3)I4(1) release, the default packet size
54
+ # was incorrectly displayed as 0. CSCuz14217 fixed this to
55
+ # corectly display 1500.
56
+ default_value: 1500
57
+ N9k: *n3k_default_packet_size
58
+ N5k: &n5k_default_packet_size
59
+ # N5|6|7k platforms still incorrectly display the packet
60
+ # size as 0. This value is therefore still used as the
61
+ # default. This yaml entry will be changed to match
62
+ # the n3|9k behavior when the issue is resolved.
63
+ default_value: 0
64
+ N6k: *n5k_default_packet_size
65
+ # On recent versions, packet size is fixed,
66
+ # so this change will take care of the fix but
67
+ # it could still fail in the older versions.
68
+ N7k: *n3k_default_packet_size
69
+ # On recent versions, packet size is fixed,
70
+ # so this change will take care of the fix but
71
+ # it could still fail in the older versions.
72
+ N9k-F: *n3k_default_packet_size
73
+ N3k-F: *n3k_default_packet_size
74
+
75
+ protocol:
76
+ _exclude: [ios_xr]
77
+ kind: boolean
78
+ auto_default: false
79
+ get_command: 'show running-config snmp all'
80
+ get_value: '/^snmp.server protocol enable/'
81
+ set_value: "%s snmp-server protocol enable"
82
+ default_value: true
83
+
84
+ tcp_session_auth:
85
+ _exclude: [ios_xr]
86
+ kind: boolean
87
+ auto_default: false
88
+ get_command: "show running-config snmp all"
89
+ get_value: '/^snmp.server tcp.session auth$/'
90
+ set_value: "%s snmp-server tcp-session %s"
91
+ default_value: true
@@ -0,0 +1,57 @@
1
+ # snmp_user
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ _template:
6
+ multiple: true
7
+
8
+ auth_password:
9
+ get_command: "show run snmp all"
10
+ get_value: '/snmp-server user (\S+) \S+ auth \S+ (\S+)/'
11
+ default_value: ""
12
+
13
+ # The getter format will not have group info if engine id is configured.
14
+ auth_password_with_engine_id:
15
+ get_command: "show run snmp all"
16
+ get_value: '/snmp-server user (\S+) auth \S+ (\S+) .*engineID (\S+)/'
17
+ default_value: ""
18
+
19
+ auth_protocol:
20
+ default_value: "md5"
21
+ N9k:
22
+ # TODO: is this really N9K-specific?
23
+ get_value: "auth"
24
+
25
+ engine_id:
26
+ default_value: ""
27
+
28
+ group:
29
+ default_value: "network-operator"
30
+ N9k:
31
+ # TODO: is this really N9K-specific?
32
+ get_value: "group"
33
+
34
+ priv_password:
35
+ get_command: "show run snmp all"
36
+ get_value: '/snmp-server user (\S+) \S+ auth \S+ \S+ priv.*(0x\S+)/'
37
+ default_value: ""
38
+
39
+ # The getter format will not have group info if engine id is configured.
40
+ priv_password_with_engine_id:
41
+ get_command: "show run snmp all"
42
+ get_value: '/snmp-server user (\S+) auth \S+ \S+ priv .*(0x\S+) .*engineID (\S+)/'
43
+ default_value: ""
44
+
45
+ priv_protocol:
46
+ default_value: "des"
47
+ N9k:
48
+ # TODO: is this really N9K-specific?
49
+ get_value: "priv"
50
+
51
+ # Config string syntax:
52
+ # [no] snmp-server user <user> [group] [auth {md5|sha} <passwd1> \
53
+ # [priv [aes-128] <passwd2>] [localizedkey] [engineID <id>]]
54
+ user:
55
+ get_command: "show run snmp all | i 'snmp-server user'"
56
+ get_value: '/^snmp.server user (.*)$/'
57
+ set_value: "%s snmp-server user %s %s %s %s %s %s"
@@ -0,0 +1,23 @@
1
+ # snmpnotification
2
+ ---
3
+ _template:
4
+ nexus:
5
+ get_command: "sh run snmp all | include 'snmp-server enable traps'"
6
+ ios_xr:
7
+ get_command: "show running-config snmp"
8
+
9
+ enable:
10
+ nexus:
11
+ get_value: '/^snmp-server enable traps <trap_name> ?$/'
12
+ set_value: "<state> snmp-server enable traps <trap_name>"
13
+ ios_xr:
14
+ get_value: '/^snmp-server traps <trap_name> ?$/'
15
+ set_value: "<state> snmp-server traps <trap_name>"
16
+
17
+ notifications:
18
+ nexus:
19
+ get_value: '/.*snmp-server enable traps (.*)?$/'
20
+ multiple:
21
+ ios_xr:
22
+ get_value: '/.*snmp-server traps (.*)?$/'
23
+ multiple:
@@ -0,0 +1,65 @@
1
+ # SPAN session
2
+ ---
3
+ _exclude: [N5k, N6k, N7k]
4
+
5
+ _template:
6
+ get_command: "show running monitor all"
7
+ get_context: ["monitor session <id>(?: .*)?"]
8
+ set_context: ["monitor session <id>"]
9
+
10
+ all_sessions:
11
+ multiple:
12
+ get_context: ~
13
+ get_value: '/^monitor session (\d+)/'
14
+
15
+ create:
16
+ set_context: ~
17
+ set_value: 'monitor session <id>'
18
+
19
+ description:
20
+ kind: string
21
+ get_value: '/^description (.*)/'
22
+ set_value: '<state> description <description>'
23
+ default_value: ''
24
+
25
+ destination:
26
+ kind: string
27
+ get_value: '/^destination interface (\S+)$/'
28
+ set_value: '<state> destination interface <intf_name>'
29
+
30
+ destroy:
31
+ set_context: ~
32
+ set_value: 'no monitor session <id>'
33
+
34
+ session_id:
35
+ kind: int
36
+ default_value: false
37
+ get_context: ~
38
+ get_value: '/^monitor session (\d+)/'
39
+ set_context: ~
40
+ set_value: '<state> monitor session <id> <type> <val>'
41
+
42
+ shutdown:
43
+ kind: boolean
44
+ default_value: true
45
+ get_value: '/^no shut$/'
46
+ set_value: '<state> shut'
47
+
48
+ source_interfaces:
49
+ multiple:
50
+ get_value: '/^source interface (\S+) (\w+)$/'
51
+ set_value: '<state> source interface <int_name> <direction>'
52
+ default_value: []
53
+
54
+ source_vlans:
55
+ get_value: '/^source vlan (\S+) (\w+)$/'
56
+ set_value: '<state> source vlan <vlans> <direction>'
57
+ default_value: []
58
+
59
+ type:
60
+ kind: string
61
+ default_value: 'local'
62
+ get_context: ~
63
+ get_value: '/^monitor session \d+ type (\S+)$/'
64
+ set_context: ~
65
+ set_value: 'monitor session <id> type <type>'