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,286 @@
1
+ # Copyright (c) 2013-2016 Cisco and/or its affiliates.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require_relative 'ciscotest'
16
+ require_relative '../lib/cisco_node_utils/dhcp_relay_global'
17
+
18
+ include Cisco
19
+ # TestDhcpRelayGlobal - Minitest for general functionality
20
+ # of the DhcpRelayGlobal class.
21
+ class TestDhcpRelayGlobal < CiscoTestCase
22
+ @skip_unless_supported = 'dhcp_relay_global'
23
+ DEFAULT_NAME = 'default'
24
+
25
+ # Tests
26
+
27
+ def setup
28
+ super
29
+ config_no_warn('no feature dhcp')
30
+ end
31
+
32
+ def teardown
33
+ config_no_warn('no feature dhcp') if first_or_last_teardown
34
+ super
35
+ end
36
+
37
+ def create_dhcp_relay_global
38
+ DhcpRelayGlobal.new
39
+ end
40
+
41
+ def test_collection_empty
42
+ drg = DhcpRelayGlobal.globals
43
+ assert_empty(drg)
44
+ end
45
+
46
+ def test_destroy
47
+ drg = create_dhcp_relay_global
48
+ assert_equal(true, Feature.dhcp_enabled?)
49
+
50
+ drg.destroy
51
+ [:ipv4_information_option,
52
+ :ipv4_information_option_trust,
53
+ :ipv4_information_option_vpn,
54
+ :ipv4_information_trust_all,
55
+ :ipv4_relay,
56
+ :ipv4_smart_relay,
57
+ :ipv4_src_addr_hsrp,
58
+ :ipv4_src_intf,
59
+ :ipv4_sub_option_circuit_id_custom,
60
+ :ipv4_sub_option_circuit_id_string,
61
+ :ipv4_sub_option_cisco,
62
+ :ipv6_option_cisco,
63
+ :ipv6_option_vpn,
64
+ :ipv6_relay,
65
+ :ipv6_src_intf,
66
+ ].each do |prop|
67
+ assert_equal(drg.send("default_#{prop}"), drg.send("#{prop}")) if
68
+ drg.send("#{prop}")
69
+ end
70
+ end
71
+
72
+ def test_ipv4_information_option
73
+ drg = create_dhcp_relay_global
74
+ assert_equal(drg.default_ipv4_information_option, drg.ipv4_information_option)
75
+ drg.ipv4_information_option = true
76
+ assert_equal(true, drg.ipv4_information_option)
77
+ drg.ipv4_information_option = drg.default_ipv4_information_option
78
+ assert_equal(drg.default_ipv4_information_option, drg.ipv4_information_option)
79
+ end
80
+
81
+ def test_ipv4_information_option_trust
82
+ drg = create_dhcp_relay_global
83
+ if validate_property_excluded?('dhcp_relay_global',
84
+ 'ipv4_information_option_trust')
85
+ assert_nil(drg.ipv4_information_option_trust)
86
+ assert_raises(Cisco::UnsupportedError) do
87
+ drg.ipv4_information_option_trust = true
88
+ end
89
+ return
90
+ end
91
+ assert_equal(drg.default_ipv4_information_option_trust,
92
+ drg.ipv4_information_option_trust)
93
+ drg.ipv4_information_option_trust = true
94
+ assert_equal(true, drg.ipv4_information_option_trust)
95
+ drg.ipv4_information_option_trust = drg.default_ipv4_information_option_trust
96
+ assert_equal(drg.default_ipv4_information_option_trust,
97
+ drg.ipv4_information_option_trust)
98
+ end
99
+
100
+ def test_ipv4_information_option_vpn
101
+ drg = create_dhcp_relay_global
102
+ assert_equal(drg.default_ipv4_information_option_vpn,
103
+ drg.ipv4_information_option_vpn)
104
+ drg.ipv4_information_option_vpn = true
105
+ assert_equal(true, drg.ipv4_information_option_vpn)
106
+ drg.ipv4_information_option_vpn = drg.default_ipv4_information_option_vpn
107
+ assert_equal(drg.default_ipv4_information_option_vpn,
108
+ drg.ipv4_information_option_vpn)
109
+ end
110
+
111
+ def test_ipv4_information_trust_all
112
+ drg = create_dhcp_relay_global
113
+ if validate_property_excluded?('dhcp_relay_global',
114
+ 'ipv4_information_trust_all')
115
+ assert_nil(drg.ipv4_information_trust_all)
116
+ assert_raises(Cisco::UnsupportedError) do
117
+ drg.ipv4_information_trust_all = true
118
+ end
119
+ return
120
+ end
121
+ assert_equal(drg.default_ipv4_information_trust_all,
122
+ drg.ipv4_information_trust_all)
123
+ drg.ipv4_information_trust_all = true
124
+ assert_equal(true, drg.ipv4_information_trust_all)
125
+ drg.ipv4_information_trust_all = drg.default_ipv4_information_trust_all
126
+ assert_equal(drg.default_ipv4_information_trust_all,
127
+ drg.ipv4_information_trust_all)
128
+ end
129
+
130
+ def test_ipv4_relay
131
+ drg = create_dhcp_relay_global
132
+ assert_equal(drg.default_ipv4_relay, drg.ipv4_relay)
133
+ drg.ipv4_relay = true
134
+ assert_equal(true, drg.ipv4_relay)
135
+ drg.ipv4_relay = false
136
+ assert_equal(false, drg.ipv4_relay)
137
+ drg.ipv4_relay = drg.default_ipv4_relay
138
+ assert_equal(drg.default_ipv4_relay, drg.ipv4_relay)
139
+ end
140
+
141
+ def test_ipv4_smart_relay
142
+ drg = create_dhcp_relay_global
143
+ assert_equal(drg.default_ipv4_smart_relay, drg.ipv4_smart_relay)
144
+ drg.ipv4_smart_relay = true
145
+ assert_equal(true, drg.ipv4_smart_relay)
146
+ drg.ipv4_smart_relay = drg.default_ipv4_smart_relay
147
+ assert_equal(drg.default_ipv4_smart_relay, drg.ipv4_smart_relay)
148
+ end
149
+
150
+ def test_ipv4_src_addr_hsrp
151
+ drg = create_dhcp_relay_global
152
+ if validate_property_excluded?('dhcp_relay_global',
153
+ 'ipv4_src_addr_hsrp')
154
+ assert_nil(drg.ipv4_src_addr_hsrp)
155
+ assert_raises(Cisco::UnsupportedError) do
156
+ drg.ipv4_src_addr_hsrp = true
157
+ end
158
+ return
159
+ end
160
+ assert_equal(drg.default_ipv4_src_addr_hsrp,
161
+ drg.ipv4_src_addr_hsrp)
162
+ drg.ipv4_src_addr_hsrp = true
163
+ assert_equal(true, drg.ipv4_src_addr_hsrp)
164
+ drg.ipv4_src_addr_hsrp = drg.default_ipv4_src_addr_hsrp
165
+ assert_equal(drg.default_ipv4_src_addr_hsrp,
166
+ drg.ipv4_src_addr_hsrp)
167
+ end
168
+
169
+ def test_ipv4_src_intf
170
+ drg = create_dhcp_relay_global
171
+ if validate_property_excluded?('dhcp_relay_global', 'ipv4_src_intf')
172
+ assert_nil(drg.ipv4_src_intf)
173
+ assert_raises(Cisco::UnsupportedError) do
174
+ drg.ipv4_src_intf = 'port-channel200'
175
+ end
176
+ return
177
+ end
178
+ assert_equal(drg.default_ipv4_src_intf, drg.ipv4_src_intf)
179
+ drg.ipv4_src_intf = 'port-channel200'
180
+ assert_equal('port-channel200', drg.ipv4_src_intf)
181
+ drg.ipv4_src_intf = drg.default_ipv4_src_intf
182
+ assert_equal(drg.default_ipv4_src_intf, drg.ipv4_src_intf)
183
+ end
184
+
185
+ def test_ipv4_sub_option_circuit_id_custom
186
+ skip_nexus_i2_image?
187
+ drg = create_dhcp_relay_global
188
+ if validate_property_excluded?('dhcp_relay_global',
189
+ 'ipv4_sub_option_circuit_id_custom')
190
+ assert_nil(drg.ipv4_sub_option_circuit_id_custom)
191
+ assert_raises(Cisco::UnsupportedError) do
192
+ drg.ipv4_sub_option_circuit_id_custom = true
193
+ end
194
+ return
195
+ end
196
+ assert_equal(drg.default_ipv4_sub_option_circuit_id_custom,
197
+ drg.ipv4_sub_option_circuit_id_custom)
198
+ drg.ipv4_sub_option_circuit_id_custom = true
199
+ assert_equal(true, drg.ipv4_sub_option_circuit_id_custom)
200
+ drg.ipv4_sub_option_circuit_id_custom = drg.default_ipv4_sub_option_circuit_id_custom
201
+ assert_equal(drg.default_ipv4_sub_option_circuit_id_custom,
202
+ drg.ipv4_sub_option_circuit_id_custom)
203
+ end
204
+
205
+ def test_ipv4_sub_option_circuit_id_string
206
+ drg = create_dhcp_relay_global
207
+ if validate_property_excluded?('dhcp_relay_global', 'ipv4_sub_option_circuit_id_string')
208
+ assert_nil(drg.ipv4_sub_option_circuit_id_string)
209
+ assert_raises(Cisco::UnsupportedError) do
210
+ drg.ipv4_sub_option_circuit_id_string = '%p%p'
211
+ end
212
+ return
213
+ end
214
+ skip_incompat_version?('dhcp_relay_global', 'ipv4_sub_option_circuit_id_string')
215
+ assert_equal(drg.default_ipv4_sub_option_circuit_id_string, drg.ipv4_sub_option_circuit_id_string)
216
+ str = '%p%p'
217
+ drg.ipv4_sub_option_circuit_id_string = str
218
+ assert_match(/#{str}/, drg.ipv4_sub_option_circuit_id_string)
219
+ drg.ipv4_sub_option_circuit_id_string = drg.default_ipv4_sub_option_circuit_id_string
220
+ assert_equal(drg.default_ipv4_sub_option_circuit_id_string, drg.ipv4_sub_option_circuit_id_string)
221
+ end
222
+
223
+ def test_ipv4_sub_option_cisco
224
+ drg = create_dhcp_relay_global
225
+ assert_equal(drg.default_ipv4_sub_option_cisco, drg.ipv4_sub_option_cisco)
226
+ drg.ipv4_sub_option_cisco = true
227
+ assert_equal(true, drg.ipv4_sub_option_cisco)
228
+ drg.ipv4_sub_option_cisco = drg.default_ipv4_sub_option_cisco
229
+ assert_equal(drg.default_ipv4_sub_option_cisco, drg.ipv4_sub_option_cisco)
230
+ end
231
+
232
+ def test_ipv6_option_cisco
233
+ drg = create_dhcp_relay_global
234
+ if validate_property_excluded?('dhcp_relay_global',
235
+ 'ipv6_option_cisco')
236
+ assert_nil(drg.ipv6_option_cisco)
237
+ assert_raises(Cisco::UnsupportedError) do
238
+ drg.ipv6_option_cisco = true
239
+ end
240
+ return
241
+ end
242
+ assert_equal(drg.default_ipv6_option_cisco,
243
+ drg.ipv6_option_cisco)
244
+ drg.ipv6_option_cisco = true
245
+ assert_equal(true, drg.ipv6_option_cisco)
246
+ drg.ipv6_option_cisco = drg.default_ipv6_option_cisco
247
+ assert_equal(drg.default_ipv6_option_cisco,
248
+ drg.ipv6_option_cisco)
249
+ end
250
+
251
+ def test_ipv6_option_vpn
252
+ drg = create_dhcp_relay_global
253
+ assert_equal(drg.default_ipv6_option_vpn, drg.ipv6_option_vpn)
254
+ drg.ipv6_option_vpn = true
255
+ assert_equal(true, drg.ipv6_option_vpn)
256
+ drg.ipv6_option_vpn = drg.default_ipv6_option_vpn
257
+ assert_equal(drg.default_ipv6_option_vpn, drg.ipv6_option_vpn)
258
+ end
259
+
260
+ def test_ipv6_relay
261
+ drg = create_dhcp_relay_global
262
+ assert_equal(drg.default_ipv6_relay, drg.ipv6_relay)
263
+ drg.ipv6_relay = true
264
+ assert_equal(true, drg.ipv6_relay)
265
+ drg.ipv6_relay = false
266
+ assert_equal(false, drg.ipv6_relay)
267
+ drg.ipv6_relay = drg.default_ipv6_relay
268
+ assert_equal(drg.default_ipv6_relay, drg.ipv6_relay)
269
+ end
270
+
271
+ def test_ipv6_src_intf
272
+ drg = create_dhcp_relay_global
273
+ if validate_property_excluded?('dhcp_relay_global', 'ipv6_src_intf')
274
+ assert_nil(drg.ipv6_src_intf)
275
+ assert_raises(Cisco::UnsupportedError) do
276
+ drg.ipv6_src_intf = 'loopback2'
277
+ end
278
+ return
279
+ end
280
+ assert_equal(drg.default_ipv6_src_intf, drg.ipv6_src_intf)
281
+ drg.ipv6_src_intf = 'loopback2 '
282
+ assert_equal('loopback2', drg.ipv6_src_intf)
283
+ drg.ipv6_src_intf = drg.default_ipv6_src_intf
284
+ assert_equal(drg.default_ipv6_src_intf, drg.ipv6_src_intf)
285
+ end
286
+ end
@@ -0,0 +1,123 @@
1
+ #
2
+ # Minitest for DnsDomain 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/dns_domain'
20
+
21
+ # TestDnsDomain - Minitest for DnsDomain node utility.
22
+ class TestDnsDomain < CiscoTestCase
23
+ @skip_unless_supported = 'dnsclient'
24
+
25
+ def setup
26
+ # setup runs at the beginning of each test
27
+ super
28
+ @backup_resolve = backup_resolv_file
29
+ no_dnsdomain_tests
30
+ end
31
+
32
+ def teardown
33
+ # teardown runs at the end of each test
34
+ no_dnsdomain_tests
35
+ restore_resolv_file(@backup_resolve)
36
+ super
37
+ end
38
+
39
+ def no_dnsdomain_tests
40
+ # Turn the feature off for a clean test.
41
+ if platform == :ios_xr
42
+ config('no domain list aoeu.com',
43
+ 'no domain list asdf.com',
44
+ 'no vrf test')
45
+ else
46
+ config('no ip domain-list aoeu.com',
47
+ 'no ip domain-list asdf.com',
48
+ 'no vrf context test')
49
+ end
50
+ end
51
+
52
+ # TESTS
53
+
54
+ def test_create_destroy_single
55
+ id = 'aoeu.com'
56
+ refute_includes(Cisco::DnsDomain.dnsdomains, id)
57
+
58
+ ns = Cisco::DnsDomain.new(id)
59
+ assert_includes(Cisco::DnsDomain.dnsdomains, id)
60
+ assert_equal(Cisco::DnsDomain.dnsdomains[id], ns)
61
+
62
+ ns.destroy
63
+ refute_includes(Cisco::DnsDomain.dnsdomains, id)
64
+ end
65
+
66
+ def test_create_destroy_multiple
67
+ id1 = 'aoeu.com'
68
+ id2 = 'asdf.com'
69
+ refute_includes(Cisco::DnsDomain.dnsdomains, id1)
70
+ refute_includes(Cisco::DnsDomain.dnsdomains, id2)
71
+
72
+ ns1 = Cisco::DnsDomain.new(id1)
73
+ ns2 = Cisco::DnsDomain.new(id2)
74
+ assert_includes(Cisco::DnsDomain.dnsdomains, id1)
75
+ assert_includes(Cisco::DnsDomain.dnsdomains, id2)
76
+ assert_equal(Cisco::DnsDomain.dnsdomains[id1], ns1)
77
+ assert_equal(Cisco::DnsDomain.dnsdomains[id2], ns2)
78
+
79
+ ns1.destroy
80
+ refute_includes(Cisco::DnsDomain.dnsdomains, id1)
81
+ assert_includes(Cisco::DnsDomain.dnsdomains, id2)
82
+ ns2.destroy
83
+ refute_includes(Cisco::DnsDomain.dnsdomains, id2)
84
+ end
85
+
86
+ def test_create_destroy_single_vrf
87
+ id = 'aoeu.com'
88
+ vrf = 'test'
89
+ non_vrf = Cisco::DnsDomain.new(id)
90
+ assert_includes(Cisco::DnsDomain.dnsdomains, id)
91
+ refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id)
92
+
93
+ ns = Cisco::DnsDomain.new(id, vrf)
94
+ assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id)
95
+ assert_equal(Cisco::DnsDomain.dnsdomains(vrf)[id], ns)
96
+
97
+ ns.destroy
98
+ refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id)
99
+ assert_includes(Cisco::DnsDomain.dnsdomains, id)
100
+ non_vrf.destroy
101
+ end
102
+
103
+ def test_create_destroy_multiple_vrf
104
+ id1 = 'aoeu.com'
105
+ id2 = 'asdf.com'
106
+ vrf = 'test'
107
+ refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id1)
108
+ refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
109
+
110
+ ns1 = Cisco::DnsDomain.new(id1, vrf)
111
+ ns2 = Cisco::DnsDomain.new(id2, vrf)
112
+ assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id1)
113
+ assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
114
+ assert_equal(Cisco::DnsDomain.dnsdomains(vrf)[id1], ns1)
115
+ assert_equal(Cisco::DnsDomain.dnsdomains(vrf)[id2], ns2)
116
+
117
+ ns1.destroy
118
+ refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id1)
119
+ assert_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
120
+ ns2.destroy
121
+ refute_includes(Cisco::DnsDomain.dnsdomains(vrf), id2)
122
+ end
123
+ end
@@ -0,0 +1,96 @@
1
+ #
2
+ # Minitest for DomainName 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/domain_name'
20
+
21
+ # TestDomainName - Minitest for DomainName node utility.
22
+ class TestDomainName < CiscoTestCase
23
+ @skip_unless_supported = 'dnsclient'
24
+
25
+ def setup
26
+ # setup runs at the beginning of each test
27
+ super
28
+ @backup_resolve = backup_resolv_file
29
+ no_domainname_test_xyz
30
+ end
31
+
32
+ def teardown
33
+ # teardown runs at the end of each test
34
+ no_domainname_test_xyz
35
+ restore_resolv_file(@backup_resolve)
36
+ super
37
+ end
38
+
39
+ def no_domainname_test_xyz
40
+ # Turn the feature off for a clean test.
41
+ if platform == :ios_xr
42
+ config('no domain name test.abc',
43
+ 'no domain name test.xyz',
44
+ 'no vrf test')
45
+ else
46
+ config('no ip domain-name test.abc',
47
+ 'no ip domain-name test.xyz',
48
+ 'no vrf context test')
49
+ end
50
+ end
51
+
52
+ # TESTS
53
+
54
+ def test_create_replace_destroy
55
+ name1 = 'test.abc'
56
+ name2 = 'test.xyz'
57
+ refute_includes(Cisco::DomainName.domainnames, name1)
58
+ refute_includes(Cisco::DomainName.domainnames, name2)
59
+
60
+ domain = Cisco::DomainName.new(name1)
61
+ assert_includes(Cisco::DomainName.domainnames, name1)
62
+ refute_includes(Cisco::DomainName.domainnames, name2)
63
+ assert_equal(Cisco::DomainName.domainnames[name1], domain)
64
+
65
+ domain = Cisco::DomainName.new(name2)
66
+ refute_includes(Cisco::DomainName.domainnames, name1)
67
+ assert_includes(Cisco::DomainName.domainnames, name2)
68
+ assert_equal(Cisco::DomainName.domainnames[name2], domain)
69
+
70
+ domain.destroy
71
+ refute_includes(Cisco::DomainName.domainnames, name1)
72
+ refute_includes(Cisco::DomainName.domainnames, name2)
73
+ end
74
+
75
+ def test_create_replace_destroy_vrf
76
+ name1 = 'test.abc'
77
+ name2 = 'test.xyz'
78
+ vrf = 'test'
79
+ refute_includes(Cisco::DomainName.domainnames(vrf), name1)
80
+ refute_includes(Cisco::DomainName.domainnames(vrf), name2)
81
+
82
+ domain = Cisco::DomainName.new(name1, vrf)
83
+ assert_includes(Cisco::DomainName.domainnames(vrf), name1)
84
+ refute_includes(Cisco::DomainName.domainnames(vrf), name2)
85
+ assert_equal(Cisco::DomainName.domainnames(vrf)[name1], domain)
86
+
87
+ domain = Cisco::DomainName.new(name2, vrf)
88
+ refute_includes(Cisco::DomainName.domainnames(vrf), name1)
89
+ assert_includes(Cisco::DomainName.domainnames(vrf), name2)
90
+ assert_equal(Cisco::DomainName.domainnames(vrf)[name2], domain)
91
+
92
+ domain.destroy
93
+ refute_includes(Cisco::DomainName.domainnames(vrf), name1)
94
+ refute_includes(Cisco::DomainName.domainnames(vrf), name2)
95
+ end
96
+ end
@@ -0,0 +1,75 @@
1
+ # Copyright (c) 2014-2016 Cisco and/or its affiliates.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require_relative 'ciscotest'
16
+ require_relative '../lib/cisco_node_utils/encapsulation'
17
+ require_relative '../lib/cisco_node_utils/vdc'
18
+
19
+ # TestEncapsulation - Minitest for Encapsulation node utility class
20
+ class TestEncapsulation < CiscoTestCase
21
+ @skip_unless_supported = 'encapsulation'
22
+ @@pre_clean_needed = true # rubocop:disable Style/ClassVars
23
+
24
+ def setup
25
+ super
26
+ vdc_limit_f3_no_intf_needed(:set)
27
+ return unless @@pre_clean_needed
28
+ cleanup
29
+ @@pre_clean_needed = false # rubocop:disable Style/ClassVars
30
+ end
31
+
32
+ def teardown
33
+ vdc_limit_f3_no_intf_needed(:clear) if first_or_last_teardown
34
+ cleanup
35
+ super
36
+ end
37
+
38
+ def cleanup
39
+ config_no_warn('no feature vni')
40
+ Encapsulation.encaps.each do |_encap, obj|
41
+ obj.destroy
42
+ end
43
+ end
44
+
45
+ # TESTS
46
+
47
+ def test_create_destroy
48
+ profile = 'cisco'
49
+ e = Encapsulation.new(profile)
50
+ assert(Encapsulation.encaps[profile], "profile '#{profile}' not found")
51
+ e.destroy
52
+ end
53
+
54
+ def test_dot1q_map
55
+ e = Encapsulation.new('cisco')
56
+ assert_equal(e.default_dot1q_map, e.dot1q_map)
57
+
58
+ map = ['100-110,150', '5000-5010,5050']
59
+ e.dot1q_map = map
60
+ assert_equal(map, e.dot1q_map)
61
+
62
+ e.dot1q_map = e.default_dot1q_map
63
+ assert_equal(e.default_dot1q_map, e.dot1q_map)
64
+
65
+ e.destroy
66
+ end
67
+
68
+ def test_dot1q_map_negative
69
+ e = Encapsulation.new('cisco')
70
+ assert_raises(CliError) do
71
+ # Test for range imbalance (3 vlans to only 2 vnis)
72
+ e.dot1q_map = ['101-103', '5101-5102']
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,65 @@
1
+ # Evpn Multicast Unit Tests
2
+ #
3
+ # Rahul Shenoy, January, 2018
4
+ #
5
+ # Copyright (c) 2018 Cisco and/or its affiliates.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+
19
+ require_relative 'ciscotest'
20
+ require_relative '../lib/cisco_node_utils/evpn_multicast'
21
+ require_relative '../lib/cisco_node_utils/feature'
22
+
23
+ # TestEvpnMulticast - Minitest for EvpnMulticast class
24
+ class TestEvpnMulticast < CiscoTestCase
25
+ @skip_unless_supported = 'evpn_multicast'
26
+
27
+ def setup
28
+ # Disable feature ngmvpn before each test to
29
+ # ensure we are starting with a clean slate for each test.
30
+ super
31
+ skip_incompat_version?('feature', 'ngmvpn')
32
+ config_no_warn('no feature ngmvpn')
33
+ config_no_warn('no advertise evpn multicast')
34
+ end
35
+
36
+ def teardown
37
+ # disable feature ngmvpn and advertise evpn multicast
38
+ # after each test
39
+ config_no_warn('no feature ngmvpn')
40
+ config_no_warn('no advertise evpn multicast')
41
+ super
42
+ end
43
+
44
+ def test_create_and_destroy
45
+ mc = EvpnMulticast.new
46
+ assert_equal('advertise evpn multicast', mc.multicast,
47
+ 'Error: failed to enable evpn multicast')
48
+ assert(Feature.ngmvpn_enabled?,
49
+ 'Error: failed to enable feature ngmvpn')
50
+ mc.destroy
51
+ assert_equal('', mc.multicast,
52
+ 'Error: failed to disable evpn multicast')
53
+ end
54
+
55
+ def test_multicast
56
+ mc = EvpnMulticast.new
57
+ mc.multicast = false
58
+ assert_equal('', mc.multicast,
59
+ 'Error: failed to disable evpn multicast')
60
+ mc.multicast = true
61
+ assert_equal('advertise evpn multicast', mc.multicast,
62
+ 'Error: failed to enable evpn multicast')
63
+ mc.destroy
64
+ end
65
+ end