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,377 @@
1
+ #
2
+ # Minitest for RadiusServer class
3
+ #
4
+ # Copyright (c) 2014-2016 Cisco and/or its affiliates.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ require_relative 'ciscotest'
19
+ require_relative '../lib/cisco_node_utils/radius_server'
20
+
21
+ # TestRadiusServer - Minitest for RadiusServer node utility.
22
+ class TestRadiusSvr < CiscoTestCase
23
+ @skip_unless_supported = 'radius_server'
24
+
25
+ def setup
26
+ # setup runs at the beginning of each test
27
+ super
28
+ no_radiusserver
29
+ end
30
+
31
+ def teardown
32
+ # teardown runs at the end of each test
33
+ no_radiusserver
34
+ super
35
+ end
36
+
37
+ def setup_duplicates
38
+ return if platform != :ios_xr
39
+ config('radius-server host 8.8.8.8 auth-port 11 acct-port 44',
40
+ 'radius-server host 8.8.8.8 auth-port 22 acct-port 55',
41
+ 'radius-server host 8.8.8.8 auth-port 33 acct-port 66')
42
+ end
43
+
44
+ def no_duplicates
45
+ return if platform != :ios_xr
46
+ config('no radius-server host 8.8.8.8 auth-port 11 acct-port 44',
47
+ 'no radius-server host 8.8.8.8 auth-port 22 acct-port 55',
48
+ 'no radius-server host 8.8.8.8 auth-port 33 acct-port 66')
49
+ end
50
+
51
+ def no_radiusserver
52
+ # Turn the feature off for a clean test.
53
+
54
+ if platform == :ios_xr
55
+ config('no radius-server host 8.8.8.8 auth-port 55 acct-port 44',
56
+ 'no radius-server host 2004::3 auth-port 55 acct-port 44',
57
+ 'no radius-server host 2005::7 auth-port 55 acct-port 44')
58
+ else
59
+ config('no radius-server host 8.8.8.8',
60
+ 'no radius-server host 2004::3',
61
+ 'no radius-server host 2005::7')
62
+ end
63
+ end
64
+
65
+ # TESTS
66
+
67
+ def test_create_destroy_single
68
+ id = '8.8.8.8'
69
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
70
+
71
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
72
+
73
+ assert_includes(Cisco::RadiusServer.radiusservers, id)
74
+ assert_equal(server, Cisco::RadiusServer.radiusservers[id])
75
+
76
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
77
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
78
+
79
+ if platform != :ios_xr
80
+ # Default checking
81
+ assert_equal(server.default_accounting, server.accounting)
82
+ assert_equal(server.default_authentication, server.authentication)
83
+
84
+ server.accounting = true
85
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
86
+
87
+ server.authentication = true
88
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
89
+
90
+ server.acct_port = 66
91
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
92
+
93
+ server.auth_port = 77
94
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
95
+
96
+ server.key_set(nil, nil)
97
+ assert_equal(nil, Cisco::RadiusServer.radiusservers[id].key)
98
+
99
+ key = '44444444'
100
+ server.key_set(key, nil)
101
+ assert_match(/#{key}/, Cisco::RadiusServer.radiusservers[id].key)
102
+ else
103
+ assert_nil(server.accounting)
104
+ assert_raises(Cisco::UnsupportedError) do
105
+ server.accounting = true
106
+ end
107
+
108
+ assert_nil(server.authentication)
109
+ assert_raises(Cisco::UnsupportedError) do
110
+ server.authentication = true
111
+ end
112
+ end
113
+
114
+ server.retransmit_count = 3
115
+ assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
116
+
117
+ if platform != :ios_xr
118
+ # Setting back to default and re-checking
119
+ server.acct_port = server.default_acct_port
120
+ server.auth_port = server.default_auth_port
121
+ server.accounting = server.default_accounting
122
+ server.authentication = server.default_authentication
123
+ assert_equal(server.default_acct_port, server.acct_port)
124
+ assert_equal(server.default_auth_port, server.auth_port)
125
+ assert_equal(server.default_accounting, server.accounting)
126
+ assert_equal(server.default_authentication, server.authentication)
127
+ end
128
+
129
+ server.destroy
130
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
131
+ end
132
+
133
+ def test_create_destroy_single_with_duplicates
134
+ setup_duplicates
135
+
136
+ id = '8.8.8.8'
137
+
138
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
139
+
140
+ assert_includes(Cisco::RadiusServer.radiusservers, id)
141
+ assert_equal(server, Cisco::RadiusServer.radiusservers[id])
142
+
143
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
144
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
145
+
146
+ if platform != :ios_xr
147
+ # Default checking
148
+ assert_equal(server.default_accounting, server.accounting)
149
+ assert_equal(server.default_authentication, server.authentication)
150
+
151
+ server.accounting = true
152
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
153
+
154
+ server.authentication = true
155
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
156
+
157
+ server.acct_port = 66
158
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
159
+
160
+ server.auth_port = 77
161
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
162
+
163
+ key = '44444444'
164
+ server.key_set(key, nil)
165
+ assert_match(/#{key}/, Cisco::RadiusServer.radiusservers[id].key)
166
+ else
167
+ assert_nil(server.accounting)
168
+ assert_raises(Cisco::UnsupportedError) do
169
+ server.accounting = true
170
+ end
171
+
172
+ assert_nil(server.authentication)
173
+ assert_raises(Cisco::UnsupportedError) do
174
+ server.authentication = true
175
+ end
176
+ end
177
+
178
+ server.retransmit_count = 3
179
+ assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
180
+
181
+ if platform != :ios_xr
182
+ # Setting back to default and re-checking
183
+ server.acct_port = server.default_acct_port
184
+ server.auth_port = server.default_auth_port
185
+ server.accounting = server.default_accounting
186
+ server.authentication = server.default_authentication
187
+ assert_equal(server.default_acct_port, server.acct_port)
188
+ assert_equal(server.default_auth_port, server.auth_port)
189
+ assert_equal(server.default_accounting, server.accounting)
190
+ assert_equal(server.default_authentication, server.authentication)
191
+ end
192
+
193
+ server.destroy
194
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
195
+
196
+ no_duplicates
197
+ end
198
+
199
+ def test_create_destroy_single_ipv6
200
+ id = '2004::3'
201
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
202
+
203
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
204
+
205
+ assert_includes(Cisco::RadiusServer.radiusservers, id)
206
+ assert_equal(server, Cisco::RadiusServer.radiusservers[id])
207
+
208
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
209
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
210
+
211
+ if platform != :ios_xr
212
+ # Default checking
213
+ assert_equal(server.default_accounting, server.accounting)
214
+ assert_equal(server.default_authentication, server.authentication)
215
+
216
+ server.accounting = true
217
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
218
+
219
+ server.authentication = true
220
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
221
+
222
+ server.acct_port = 66
223
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
224
+
225
+ server.auth_port = 77
226
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
227
+
228
+ key = '44444444'
229
+ server.key_set(key, nil)
230
+ assert_match(/#{key}/, Cisco::RadiusServer.radiusservers[id].key)
231
+ else
232
+ assert_nil(server.accounting)
233
+ assert_raises(Cisco::UnsupportedError) do
234
+ server.accounting = true
235
+ end
236
+
237
+ assert_nil(server.authentication)
238
+ assert_raises(Cisco::UnsupportedError) do
239
+ server.authentication = true
240
+ end
241
+ end
242
+
243
+ server.retransmit_count = 3
244
+ assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
245
+
246
+ if platform != :ios_xr
247
+ # Setting back to default and re-checking
248
+ server.acct_port = server.default_acct_port
249
+ server.auth_port = server.default_auth_port
250
+ server.accounting = server.default_accounting
251
+ server.authentication = server.default_authentication
252
+ assert_equal(server.default_acct_port, server.acct_port)
253
+ assert_equal(server.default_auth_port, server.auth_port)
254
+ assert_equal(server.default_accounting, server.accounting)
255
+ assert_equal(server.default_authentication, server.authentication)
256
+ end
257
+
258
+ server.destroy
259
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
260
+ end
261
+
262
+ def test_radiusserver_create_destroy_multiple
263
+ id = '8.8.8.8'
264
+ id2 = '2005::7'
265
+
266
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
267
+ refute_includes(Cisco::RadiusServer.radiusservers, id2)
268
+
269
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
270
+ server2 = Cisco::RadiusServer.new(id2, true, 55, 44)
271
+
272
+ assert_includes(Cisco::RadiusServer.radiusservers, id)
273
+ assert_equal(server, Cisco::RadiusServer.radiusservers[id])
274
+ assert_includes(Cisco::RadiusServer.radiusservers, id2)
275
+ assert_equal(server2, Cisco::RadiusServer.radiusservers[id2])
276
+
277
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
278
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
279
+
280
+ if platform != :ios_xr
281
+ # Default checking
282
+ assert_equal(server.default_accounting, server.accounting)
283
+ assert_equal(server.default_authentication, server.authentication)
284
+ assert_equal(server2.default_accounting, server2.accounting)
285
+ assert_equal(server2.default_authentication, server2.authentication)
286
+
287
+ server.accounting = true
288
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
289
+
290
+ server.authentication = true
291
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
292
+
293
+ server.acct_port = 66
294
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
295
+
296
+ server.auth_port = 77
297
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
298
+
299
+ key = '44444444'
300
+ server.key_set(key, nil)
301
+ assert_match(/#{key}/, Cisco::RadiusServer.radiusservers[id].key)
302
+ assert_match(/#{key}/, server.key)
303
+ else
304
+ assert_nil(server.accounting)
305
+ assert_raises(Cisco::UnsupportedError) do
306
+ server.accounting = true
307
+ end
308
+
309
+ assert_nil(server.authentication)
310
+ assert_raises(Cisco::UnsupportedError) do
311
+ server.authentication = true
312
+ end
313
+ end
314
+
315
+ server.retransmit_count = 3
316
+ assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
317
+
318
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id2].acct_port)
319
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id2].auth_port)
320
+
321
+ if platform != :ios_xr
322
+ server2.accounting = true
323
+ assert(Cisco::RadiusServer.radiusservers[id2].accounting)
324
+
325
+ server2.authentication = true
326
+ assert(Cisco::RadiusServer.radiusservers[id2].authentication)
327
+
328
+ server2.acct_port = 66
329
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id2].acct_port)
330
+
331
+ server2.auth_port = 77
332
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id2].auth_port)
333
+
334
+ key = '44444444'
335
+ server2.key_set(key, nil)
336
+ assert_match(/#{key}/, Cisco::RadiusServer.radiusservers[id2].key)
337
+ else
338
+ assert_nil(server.accounting)
339
+ assert_raises(Cisco::UnsupportedError) do
340
+ server2.accounting = true
341
+ end
342
+
343
+ assert_nil(server.authentication)
344
+ assert_raises(Cisco::UnsupportedError) do
345
+ server2.authentication = true
346
+ end
347
+ end
348
+
349
+ server2.retransmit_count = 3
350
+ assert_equal(3, Cisco::RadiusServer.radiusservers[id2].retransmit_count)
351
+
352
+ if platform != :ios_xr
353
+ # Setting back to default and re-checking
354
+ server.acct_port = server.default_acct_port
355
+ server.auth_port = server.default_auth_port
356
+ server.accounting = server.default_accounting
357
+ server.authentication = server.default_authentication
358
+ server2.acct_port = server2.default_acct_port
359
+ server2.auth_port = server2.default_auth_port
360
+ server2.accounting = server2.default_accounting
361
+ server2.authentication = server2.default_authentication
362
+ assert_equal(server.default_acct_port, server.acct_port)
363
+ assert_equal(server.default_auth_port, server.auth_port)
364
+ assert_equal(server.default_accounting, server.accounting)
365
+ assert_equal(server.default_authentication, server.authentication)
366
+ assert_equal(server2.default_acct_port, server2.acct_port)
367
+ assert_equal(server2.default_auth_port, server2.auth_port)
368
+ assert_equal(server2.default_accounting, server2.accounting)
369
+ assert_equal(server2.default_authentication, server2.authentication)
370
+ end
371
+
372
+ server.destroy
373
+ server2.destroy
374
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
375
+ refute_includes(Cisco::RadiusServer.radiusservers, id2)
376
+ end
377
+ end
@@ -0,0 +1,151 @@
1
+ #
2
+ # Minitest for RadiusServerGroup class
3
+ #
4
+ # Copyright (c) 2014-2016 Cisco and/or its affiliates.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ require File.expand_path('../ciscotest', __FILE__)
19
+ require File.expand_path('../../lib/cisco_node_utils/radius_server_group', \
20
+ __FILE__)
21
+
22
+ # TestRadiusServerGroup - Minitest for RadiusServerGroup node utility.
23
+ class TestRadiusSvrGrp < CiscoTestCase
24
+ @skip_unless_supported = 'radius_server_group'
25
+
26
+ def setup
27
+ # setup runs at the beginning of each test
28
+ super
29
+ config('radius-server host 8.8.8.8',
30
+ 'radius-server host 9.9.9.9',
31
+ 'radius-server host 10.10.10.10',
32
+ 'radius-server host 11.11.11.11',
33
+ 'radius-server host 12.12.12.12',
34
+ 'radius-server host 2005::3',
35
+ 'radius-server host 2006::3',
36
+ 'radius-server host 2007::3',
37
+ 'radius-server host 2008::3')
38
+ no_radiusserver
39
+ end
40
+
41
+ def teardown
42
+ # teardown runs at the end of each test
43
+ config('no radius-server host 8.8.8.8',
44
+ 'no radius-server host 9.9.9.9',
45
+ 'no radius-server host 10.10.10.10',
46
+ 'no radius-server host 11.11.11.11',
47
+ 'no radius-server host 12.12.12.12',
48
+ 'no radius-server host 2005::3',
49
+ 'no radius-server host 2006::3',
50
+ 'no radius-server host 2007::3',
51
+ 'no radius-server host 2008::3')
52
+ no_radiusserver
53
+ super
54
+ end
55
+
56
+ def no_radiusserver
57
+ # Turn the feature off for a clean test.
58
+ config('no aaa group server radius red',
59
+ 'no aaa group server radius blue')
60
+ end
61
+
62
+ # TESTS
63
+
64
+ def test_create_destroy_single
65
+ id = 'red'
66
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
67
+
68
+ group = Cisco::RadiusServerGroup.new(id, true)
69
+ assert_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
70
+ assert_equal(group, Cisco::RadiusServerGroup.radius_server_groups[id])
71
+
72
+ group.servers = ['8.8.8.8', '9.9.9.9']
73
+ assert_equal(['8.8.8.8', '9.9.9.9'],
74
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
75
+
76
+ group.servers = ['8.8.8.8', '10.10.10.10']
77
+ assert_equal(['8.8.8.8', '10.10.10.10'],
78
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
79
+
80
+ group.servers = []
81
+ assert_equal([],
82
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
83
+
84
+ group.destroy
85
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
86
+ end
87
+
88
+ def test_create_destroy_single_ipv6
89
+ id = 'red'
90
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
91
+
92
+ group = Cisco::RadiusServerGroup.new(id, true)
93
+ assert_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
94
+ assert_equal(group, Cisco::RadiusServerGroup.radius_server_groups[id])
95
+
96
+ group.servers = ['2005::3', '2006::3']
97
+ assert_equal(['2005::3', '2006::3'],
98
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
99
+
100
+ group.servers = ['2005::3', '2007::3']
101
+ assert_equal(['2005::3', '2007::3'],
102
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
103
+
104
+ group.servers = []
105
+ assert_equal([],
106
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
107
+
108
+ group.destroy
109
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
110
+ end
111
+
112
+ def test_create_destroy_multiple
113
+ id = 'red'
114
+ id2 = 'blue'
115
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
116
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id2)
117
+
118
+ group = Cisco::RadiusServerGroup.new(id, true)
119
+ group2 = Cisco::RadiusServerGroup.new(id2, true)
120
+ assert_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
121
+ assert_equal(group, Cisco::RadiusServerGroup.radius_server_groups[id])
122
+ assert_includes(Cisco::RadiusServerGroup.radius_server_groups, id2)
123
+ assert_equal(group2, Cisco::RadiusServerGroup.radius_server_groups[id2])
124
+
125
+ group.servers = ['8.8.8.8', '9.9.9.9']
126
+ assert_equal(['8.8.8.8', '9.9.9.9'],
127
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
128
+ group2.servers = ['11.11.11.11', '12.12.12.12']
129
+ assert_equal(['11.11.11.11', '12.12.12.12'],
130
+ Cisco::RadiusServerGroup.radius_server_groups[id2].servers)
131
+
132
+ group.servers = ['8.8.8.8', '10.10.10.10']
133
+ assert_equal(['8.8.8.8', '10.10.10.10'],
134
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
135
+ group2.servers = ['11.11.11.11', '2008::3']
136
+ assert_equal(['11.11.11.11', '2008::3'],
137
+ Cisco::RadiusServerGroup.radius_server_groups[id2].servers)
138
+
139
+ group.servers = []
140
+ assert_equal([],
141
+ Cisco::RadiusServerGroup.radius_server_groups[id].servers)
142
+ group2.servers = []
143
+ assert_equal([],
144
+ Cisco::RadiusServerGroup.radius_server_groups[id2].servers)
145
+
146
+ group.destroy
147
+ group2.destroy
148
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id)
149
+ refute_includes(Cisco::RadiusServerGroup.radius_server_groups, id2)
150
+ end
151
+ end