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
data/tests/test_pim.rb ADDED
@@ -0,0 +1,203 @@
1
+ # Copyright (c) 2013-2016 Cisco and/or its affiliates.
2
+ #
3
+ # Smitha Gopalan, November 2015
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #-------------------------------------------------------------------------------
17
+ # CLI: <afi> pim ssm-range <range> (under different VRFs)
18
+ #-------------------------------------------------------------------------------
19
+ # Testcases: All Tests create all instances within a test
20
+ # 1. test_single_ssm_range_single_vrf:
21
+ # vrf default, ip pim ssm-range 229.0.0.0/8
22
+ #
23
+ # 2. test_single_ssm_range_none_single_vrf:
24
+ # vrf default, ip pim ssm-range none
25
+ #
26
+ # 3. test_multiple_ssm_range_multiple_vrfs:
27
+ # vrf default, ip pim ssm-range 229.0.0.0/8 225.0.0.0/8 224.0.0.0/8
28
+ # vrf red, ip pim ssm-range 230.0.0.0/8 228.0.0.0/8 224.0.0.0/8
29
+ # vrf black, ip pim ssm-range none
30
+ #
31
+ # 4. test_multiple_ssm_range_overwrite_multiple_vrfs:
32
+ # vrf default, ip pim ssm-range 229.0.0.0/8 225.0.0.0/8 224.0.0.0/8
33
+ # vrf red, ip pim ssm-range 230.0.0.0/8 228.0.0.0/8 224.0.0.0/8 ->
34
+ # gets overwritten to
35
+ # vrf red, ip pim ssm-range none
36
+ #
37
+ # 5. test_single_invalid_ssm_range_single_vrf:
38
+ # vrf default, ip pim ssm-range 1.1.1.1/8
39
+ #-------------------------------------------------------------------------------
40
+
41
+ require_relative 'ciscotest'
42
+ require_relative '../lib/cisco_node_utils/pim'
43
+
44
+ include Cisco
45
+
46
+ # TestPim - Minitest for Pim Feature
47
+ class TestPim < CiscoTestCase
48
+ @skip_unless_supported = 'pim'
49
+
50
+ @@pre_clean_needed = true # rubocop:disable Style/ClassVars
51
+
52
+ # Enables feature pim
53
+ #---------------------
54
+ def setup
55
+ super
56
+ remove_all_pims if @@pre_clean_needed
57
+ @@pre_clean_needed = false # rubocop:disable Style/ClassVars
58
+ end
59
+
60
+ def teardown
61
+ super
62
+ remove_all_pims
63
+ end
64
+
65
+ def remove_all_pims
66
+ Pim.pims.each do |_afi, vrfs|
67
+ vrfs.each do |_vrf, obj|
68
+ obj.destroy
69
+ end
70
+ end
71
+ end
72
+
73
+ # Creates single ssm range under default vrf
74
+ #-----------------------------------------------
75
+ def create_single_ssm_range_single_vrf(afi)
76
+ range = '229.0.0.0/8'
77
+ p1 = Pim.new(afi, 'default')
78
+ p1.ssm_range = (range)
79
+ assert_equal(p1.ssm_range.split.sort.join(' '), range.split.sort.join(' '))
80
+ p1.ssm_range = 'none'
81
+ assert_equal('none', p1.ssm_range)
82
+ end
83
+
84
+ # Tests single ssm range none under default vrf
85
+ #-----------------------------------------------
86
+ def test_ssm_range
87
+ %w(ipv4).each do |afi|
88
+ create_single_ssm_range_single_vrf(afi)
89
+ end
90
+ end
91
+
92
+ # Creates single ssm range none under default vrf
93
+ #-----------------------------------------------
94
+ def create_single_ssm_range_none_single_vrf(afi)
95
+ range = 'none'
96
+ p1 = Pim.new(afi, 'default')
97
+ p1.ssm_range = (range)
98
+ assert_equal(p1.ssm_range.split.sort.join(' '), range.split.sort.join(' '))
99
+ p1.ssm_range = 'none'
100
+ assert_equal('none', p1.ssm_range)
101
+ end
102
+
103
+ # Tests single ssm range none under default vrf
104
+ #-----------------------------------------------
105
+ def test_ssm_range_none
106
+ %w(ipv4).each do |afi|
107
+ create_single_ssm_range_none_single_vrf(afi)
108
+ end
109
+ end
110
+
111
+ # Creates multiple ssm ranges under different vrfs
112
+ #-----------------------------------------------
113
+ def create_multiple_ssm_range_multiple_vrfs(afi)
114
+ range1 = '229.0.0.0/8 225.0.0.0/8 224.0.0.0/8'
115
+ range2 = '230.0.0.0/8 228.0.0.0/8 224.0.0.0/8'
116
+ range3 = 'none'
117
+ p1 = Pim.new(afi, 'default')
118
+ p2 = Pim.new(afi, 'red')
119
+ p3 = Pim.new(afi, 'black')
120
+ p1.ssm_range = (range1)
121
+ p2.ssm_range = (range2)
122
+ p3.ssm_range = (range3)
123
+ assert_equal(p1.ssm_range.split.sort.join(' '), range1.split.sort.join(' '))
124
+ assert_equal(p2.ssm_range.split.sort.join(' '), range2.split.sort.join(' '))
125
+ assert_equal(p3.ssm_range.split.sort.join(' '), range3.split.sort.join(' '))
126
+ p1.ssm_range = 'none'
127
+ assert_equal('none', p1.ssm_range)
128
+ p2.ssm_range = 'none'
129
+ assert_equal('none', p2.ssm_range)
130
+ end
131
+
132
+ # Tests multiple ssm ranges under different vrfs
133
+ #-----------------------------------------------
134
+ def test_ssm_range_multiple
135
+ %w(ipv4).each do |afi|
136
+ create_multiple_ssm_range_multiple_vrfs(afi)
137
+ end
138
+ end
139
+
140
+ # Creates multiple ssm ranges overwrite under different vrfs
141
+ #-----------------------------------------------
142
+ def create_multiple_ssm_range_overwrite_multiple_vrfs(afi)
143
+ range1 = '229.0.0.0/8 225.0.0.0/8 224.0.0.0/8'
144
+ range2 = '230.0.0.0/8 228.0.0.0/8 224.0.0.0/8'
145
+ range3 = 'none'
146
+ p1 = Pim.new(afi, 'default')
147
+ p2 = Pim.new(afi, 'red')
148
+ p1.ssm_range = (range1)
149
+ p2.ssm_range = (range2)
150
+ assert_equal(p1.ssm_range.split.sort.join(' '), range1.split.sort.join(' '))
151
+ assert_equal(p2.ssm_range.split.sort.join(' '), range2.split.sort.join(' '))
152
+ p2.ssm_range = (range3)
153
+ assert_equal(p2.ssm_range.split.sort.join(' '), range3.split.sort.join(' '))
154
+
155
+ p1.ssm_range = 'none'
156
+ assert_equal('none', p1.ssm_range)
157
+ p1.destroy
158
+ p2.destroy
159
+ end
160
+
161
+ # Tests multiple ssm ranges overwrite under different vrfs
162
+ #-----------------------------------------------
163
+ def test_ssm_range_multiple_overwrite
164
+ %w(ipv4).each do |afi|
165
+ create_multiple_ssm_range_overwrite_multiple_vrfs(afi)
166
+ end
167
+ end
168
+
169
+ # Creates single invalid ssm range under vrf default
170
+ #---------------------------------------------------
171
+ def create_single_invalid_ssm_range_single_vrf(afi)
172
+ range = '1.1.1.1/8'
173
+ p1 = Pim.new(afi, 'default')
174
+ assert_raises(CliError) do
175
+ p1.ssm_range = (range)
176
+ end
177
+ end
178
+
179
+ # Tests single invalid ssm range under vrf default
180
+ #---------------------------------------------------
181
+ def test_ssm_range_inv
182
+ %w(ipv4).each do |afi|
183
+ create_single_invalid_ssm_range_single_vrf(afi)
184
+ end
185
+ end
186
+
187
+ def test_bfd
188
+ %w(ipv4).each do |afi|
189
+ p1 = Pim.new(afi, 'default')
190
+ p2 = Pim.new(afi, 'red')
191
+ assert_equal(p1.default_bfd, p1.bfd)
192
+ assert_equal(p2.default_bfd, p1.bfd)
193
+ p1.bfd = true
194
+ p2.bfd = true
195
+ assert_equal(true, p1.bfd)
196
+ assert_equal(true, p2.bfd)
197
+ p1.bfd = p1.default_bfd
198
+ p2.bfd = p2.default_bfd
199
+ assert_equal(p1.default_bfd, p1.bfd)
200
+ assert_equal(p2.default_bfd, p1.bfd)
201
+ end
202
+ end
203
+ end
@@ -0,0 +1,147 @@
1
+ # Copyright (c) 2013-2016 Cisco and/or its affiliates.
2
+ #
3
+ # Smitha Gopalan, November 2015
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #-----------------------------------------------------------
17
+ # CLI: <afi> pim rp-address <rp-address> group-list <group>
18
+ # (under different VRFs)
19
+ #-----------------------------------------------------------
20
+ # Testcases: All Tests create and destroy all instances within a test
21
+ #
22
+ # 1. test_all_group_lists
23
+ #
24
+ # 2. test_single_rpaddr_single_invalid_grouplist_single_vrf:
25
+ # vrf default, ip pim rp-address 25.25.25.25 group-list 25.0.0.0/8
26
+ #-------------------------------------------------------------------------------
27
+
28
+ require_relative 'ciscotest'
29
+ require_relative '../lib/cisco_node_utils/pim_group_list'
30
+
31
+ include Cisco
32
+
33
+ # TestPim - Minitest for PimGrouplist
34
+ class TestPimGrpLst < CiscoTestCase
35
+ @skip_unless_supported = 'pim'
36
+
37
+ # Enables feature pim
38
+ #--------------------
39
+ def setup
40
+ super
41
+ config('no feature pim')
42
+ end
43
+
44
+ # Test Pim.group_lists
45
+ # - multiple vrfs, groups, rp_addrs
46
+ # - same rp_addr, different group
47
+ # - same rp_addr, different vrf
48
+ # - same group, different rp_addr
49
+ # - same group, different vrf
50
+ #--------------------------------------------
51
+ def all_group_lists(afi)
52
+ rp_addr1 = '11.11.11.11'
53
+ rp_addr2 = '22.22.22.22'
54
+ grouplist1 = '227.0.0.0/8'
55
+ grouplist2 = '228.0.0.0/8'
56
+
57
+ # Basic setup
58
+ vrf = 'default'
59
+ pd1 = PimGroupList.new(afi, vrf, rp_addr1, grouplist1)
60
+ pd2 = PimGroupList.new(afi, vrf, rp_addr2, grouplist2)
61
+ hash = PimGroupList.group_lists
62
+ assert(hash.key?(afi))
63
+ assert(hash[afi].key?(vrf))
64
+ assert_equal(2, hash[afi][vrf].keys.count,
65
+ "hash[#{afi}][#{vrf}] should have 2 group lists")
66
+ assert(hash[afi][vrf].key?([rp_addr1, grouplist1]),
67
+ "hash[#{afi}][#{vrf}] does not contain [#{rp_addr1}, #{grouplist1}]")
68
+ assert(hash[afi][vrf].key?([rp_addr2, grouplist2]),
69
+ "hash[#{afi}][#{vrf}] does not contain [#{rp_addr2}, #{grouplist2}]")
70
+
71
+ # vrf with same rp_addrs/groups as in default
72
+ vrf = 'red'
73
+ pd3 = PimGroupList.new(afi, vrf, rp_addr1, grouplist1)
74
+ pd4 = PimGroupList.new(afi, vrf, rp_addr2, grouplist2)
75
+ hash = PimGroupList.group_lists
76
+ assert_equal(2, hash[afi].keys.count,
77
+ "hash[#{afi}] does not have 2 vrfs")
78
+ assert(hash[afi].key?(vrf))
79
+ assert_equal(2, hash[afi][vrf].keys.count,
80
+ "hash[#{afi}][#{vrf}] should have 2 group lists")
81
+ assert(hash[afi][vrf].key?([rp_addr1, grouplist1]),
82
+ "hash[#{afi}][#{vrf}] does not contain [#{rp_addr1}, #{grouplist1}]")
83
+ assert(hash[afi][vrf].key?([rp_addr2, grouplist2]),
84
+ "hash[#{afi}][#{vrf}] does not contain [#{rp_addr2}, #{grouplist2}]")
85
+
86
+ # different vrf, same rps / diff groups, etc.
87
+ vrf = 'black'
88
+ rp_addr7 = '7.7.7.7'
89
+ pd5 = PimGroupList.new(afi, vrf, rp_addr1, grouplist1)
90
+ pd6 = PimGroupList.new(afi, vrf, rp_addr1, grouplist2)
91
+ pd7 = PimGroupList.new(afi, vrf, rp_addr7, grouplist2)
92
+ hash = PimGroupList.group_lists
93
+ assert_equal(3, hash[afi].keys.count,
94
+ "hash[#{afi}] does not have 3 vrfs")
95
+ assert(hash[afi].key?(vrf))
96
+ assert_equal(3, hash[afi][vrf].keys.count,
97
+ "hash[#{afi}][#{vrf}] should have 3 group lists")
98
+ assert(hash[afi][vrf].key?([rp_addr1, grouplist1]),
99
+ "hash[#{afi}][#{vrf}] does not contain [#{rp_addr1}, #{grouplist2}]")
100
+ assert(hash[afi][vrf].key?([rp_addr1, grouplist2]),
101
+ "hash[#{afi}][#{vrf}] does not contain [#{rp_addr1}, #{grouplist2}]")
102
+ assert(hash[afi][vrf].key?([rp_addr7, grouplist2]),
103
+ "hash[#{afi}][#{vrf}] does not contain [#{rp_addr7}, #{grouplist2}]")
104
+
105
+ # Test removal
106
+ vrf = 'default'
107
+ pd1.destroy
108
+ hash = PimGroupList.group_lists
109
+ assert_equal(1, hash[afi][vrf].keys.count,
110
+ "hash[#{afi}][#{vrf}] should have 1 group lists")
111
+ refute(hash[afi][vrf].key?([rp_addr1, grouplist1]),
112
+ "hash[#{afi}][#{vrf}] should not contain "\
113
+ "[#{rp_addr1}, #{grouplist1}]")
114
+
115
+ vrf = 'red'
116
+ pd3.destroy
117
+ hash = PimGroupList.group_lists
118
+ assert_equal(1, hash[afi][vrf].keys.count,
119
+ "hash[#{afi}][#{vrf}] should have 1 group lists")
120
+ refute(hash[afi][vrf].key?([rp_addr1, grouplist1]),
121
+ "hash[#{afi}][#{vrf}] should not contain "\
122
+ "[#{rp_addr1}, #{grouplist1}]")
123
+
124
+ vrf = 'black'
125
+ pd5.destroy
126
+ pd7.destroy
127
+ hash = PimGroupList.group_lists
128
+ assert_equal(1, hash[afi][vrf].keys.count,
129
+ "hash[#{afi}][#{vrf}] should have 1 group lists")
130
+ refute(hash[afi][vrf].key?([rp_addr1, grouplist1]),
131
+ "hash[#{afi}][#{vrf}] should not contain "\
132
+ "[#{rp_addr1}, #{grouplist1}]")
133
+ pd2.destroy
134
+ pd4.destroy
135
+ pd6.destroy
136
+ hash = PimGroupList.group_lists
137
+ assert_empty(hash[afi], 'hash[#{afi}] is not empty')
138
+ end
139
+
140
+ # Tests Pim.group_lists
141
+ #------------------------------------------
142
+ def test_all_group_lists
143
+ %w(ipv4).each do |afi|
144
+ all_group_lists(afi)
145
+ end
146
+ end
147
+ end
@@ -0,0 +1,155 @@
1
+ # Copyright (c) 2013-2016 Cisco and/or its affiliates.
2
+ #
3
+ # Smitha Gopalan, November 2015
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ # ---------------------------------------------------------------------
17
+ # Cli: <afi> pim rp-address <rp-address> (under different VRFs)
18
+ # ---------------------------------------------------------------------
19
+ # Testcases: All Tests create and destroy all instances within a test
20
+ #
21
+ # 1. test_all_rp_addrs
22
+ #
23
+ # 2. test_single_invalid_rpaddr_single_vrf:
24
+ # vrf default, ip pim rp-address 256.256.256.256
25
+ # ---------------------------------------------------------------------
26
+
27
+ require_relative 'ciscotest'
28
+ require_relative '../lib/cisco_node_utils/pim_rp_address'
29
+
30
+ include Cisco
31
+
32
+ # TestPimRpAddress - Minitest for PimRpAddress
33
+ class TestPimRpAddress < CiscoTestCase
34
+ @skip_unless_supported = 'pim'
35
+
36
+ # Enables feature pim
37
+ #--------------------
38
+ def setup
39
+ super
40
+ config('no feature pim')
41
+ end
42
+
43
+ # Test PimRpAddress.rp_addresses
44
+ # - multiple vrfs, rp_addrs
45
+ # - same rp_addr, different vrf
46
+ #--------------------------------------------
47
+ def all_rp_addrs(afi)
48
+ rp_addr1 = '11.11.11.11'
49
+ rp_addr2 = '22.22.22.22'
50
+
51
+ # Basic setup
52
+ vrf = 'default'
53
+ pd1 = PimRpAddress.new(afi, vrf, rp_addr1)
54
+ pd2 = PimRpAddress.new(afi, vrf, rp_addr2)
55
+ hash = PimRpAddress.rp_addresses
56
+ assert(hash.key?(afi))
57
+ assert(hash[afi].key?(vrf))
58
+ assert_equal(2, hash[afi][vrf].keys.count,
59
+ "hash[#{afi}][#{vrf}] should have 2 rp-address")
60
+ assert(hash[afi][vrf].key?(rp_addr1),
61
+ "hash[#{afi}][#{vrf}] does not contain #{rp_addr1}")
62
+ assert(hash[afi][vrf].key?(rp_addr2),
63
+ "hash[#{afi}][#{vrf}] does not contain #{rp_addr2}")
64
+
65
+ # vrf with same rp_addrs as in default
66
+ vrf = 'red'
67
+ pd3 = PimRpAddress.new(afi, vrf, rp_addr1)
68
+ pd4 = PimRpAddress.new(afi, vrf, rp_addr2)
69
+ hash = PimRpAddress.rp_addresses
70
+ assert_equal(2, hash[afi].keys.count,
71
+ "hash[#{afi}] does not have 2 vrfs")
72
+ assert(hash[afi].key?(vrf))
73
+ assert_equal(2, hash[afi][vrf].keys.count,
74
+ "hash[#{afi}][#{vrf}] should have 2 rp-address")
75
+ assert(hash[afi][vrf].key?(rp_addr1),
76
+ "hash[#{afi}][#{vrf}] does not contain #{rp_addr1}")
77
+ assert(hash[afi][vrf].key?(rp_addr2),
78
+ "hash[#{afi}][#{vrf}] does not contain #{rp_addr2}")
79
+
80
+ # different vrf, same/diff rps
81
+ vrf = 'black'
82
+ rp_addr7 = '7.7.7.7'
83
+ pd5 = PimRpAddress.new(afi, vrf, rp_addr1)
84
+ pd6 = PimRpAddress.new(afi, vrf, rp_addr2)
85
+ pd7 = PimRpAddress.new(afi, vrf, rp_addr7)
86
+ hash = PimRpAddress.rp_addresses
87
+ assert_equal(3, hash[afi].keys.count,
88
+ "hash[#{afi}] does not have 3 vrfs")
89
+ assert(hash[afi].key?(vrf))
90
+ assert_equal(3, hash[afi][vrf].keys.count,
91
+ "hash[#{afi}][#{vrf}] should have 3 rp-address")
92
+ assert(hash[afi][vrf].key?(rp_addr1),
93
+ "hash[#{afi}][#{vrf}] does not contain #{rp_addr1}")
94
+ assert(hash[afi][vrf].key?(rp_addr1),
95
+ "hash[#{afi}][#{vrf}] does not contain #{rp_addr2}")
96
+ assert(hash[afi][vrf].key?(rp_addr7),
97
+ "hash[#{afi}][#{vrf}] does not contain #{rp_addr7}")
98
+
99
+ # Test removal
100
+ vrf = 'default'
101
+ pd1.destroy
102
+ hash = PimRpAddress.rp_addresses
103
+ assert_equal(1, hash[afi][vrf].keys.count,
104
+ "hash[#{afi}][#{vrf}] should have 1 rp-address")
105
+ refute(hash[afi][vrf].key?(rp_addr1),
106
+ "hash[#{afi}][#{vrf}] should not contain #{rp_addr1}")
107
+
108
+ vrf = 'red'
109
+ pd3.destroy
110
+ hash = PimRpAddress.rp_addresses
111
+ assert_equal(1, hash[afi][vrf].keys.count,
112
+ "hash[#{afi}][#{vrf}] should have 1 rp-address")
113
+ refute(hash[afi][vrf].key?(rp_addr1),
114
+ "hash[#{afi}][#{vrf}] should not contain #{rp_addr1}")
115
+
116
+ vrf = 'black'
117
+ pd5.destroy
118
+ pd7.destroy
119
+ hash = PimRpAddress.rp_addresses
120
+ assert_equal(1, hash[afi][vrf].keys.count,
121
+ "hash[#{afi}][#{vrf}] should have 1 rp-address")
122
+ refute(hash[afi][vrf].key?([rp_addr1]),
123
+ "hash[#{afi}][#{vrf}] should not contain [#{rp_addr1}]")
124
+ pd2.destroy
125
+ pd4.destroy
126
+ pd6.destroy
127
+ hash = PimRpAddress.rp_addresses
128
+ assert_empty(hash[afi], 'hash[#{afi}] is not empty')
129
+ end
130
+
131
+ # Tests PimRpAddress.rp_addresses
132
+ #------------------------------------------
133
+ def test_all_rp_addrs
134
+ %w(ipv4).each do |afi|
135
+ all_rp_addrs(afi)
136
+ end
137
+ end
138
+
139
+ # Creates single invalid rp address under vrf default
140
+ #---------------------------------------------------
141
+ def create_single_invalid_rpaddr_single_vrf(afi)
142
+ rp_addr = '256.256.256.256'
143
+ assert_raises(CliError) do
144
+ PimRpAddress.new(afi, 'default', rp_addr)
145
+ end
146
+ end
147
+
148
+ # Tests single invalid rp address under vrf default
149
+ #---------------------------------------------------
150
+ def test_rpaddr
151
+ %w(ipv4).each do |afi|
152
+ create_single_invalid_rpaddr_single_vrf(afi)
153
+ end
154
+ end
155
+ end