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,656 @@
1
+ # NXAPI New test for feature private-vlan
2
+ # Davide Celotto Febraury 2016
3
+ # Copyright (c) 2016 Cisco and/or its affiliates.
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
+ require_relative 'ciscotest'
18
+ require_relative '../lib/cisco_node_utils/vlan'
19
+
20
+ include Cisco
21
+
22
+ # TestVlan - Minitest for Vlan node utility
23
+ class TestVlanPVlan < CiscoTestCase
24
+ @skip_unless_supported = 'vlan'
25
+
26
+ @@cleaned = false # rubocop:disable Style/ClassVars
27
+ def cleanup
28
+ remove_all_vlans
29
+ config_no_warn('no feature vtp')
30
+ config_no_warn('no feature private-vlan')
31
+ end
32
+
33
+ def setup
34
+ super
35
+ cleanup unless @@cleaned
36
+ @@cleaned = true # rubocop:disable Style/ClassVars
37
+ end
38
+
39
+ def teardown
40
+ cleanup
41
+ end
42
+
43
+ def test_type_default
44
+ config_no_warn('no feature vtp')
45
+ config_no_warn('feature private-vlan')
46
+ v1 = Vlan.new(100)
47
+ pv_type = ''
48
+ if validate_property_excluded?('vlan', 'pvlan_type')
49
+ assert_nil(v1.pvlan_type)
50
+ else
51
+ assert_equal(pv_type, v1.pvlan_type)
52
+ end
53
+ end
54
+
55
+ def test_association_default
56
+ config_no_warn('no feature vtp')
57
+ config_no_warn('feature private-vlan')
58
+ v1 = Vlan.new(100)
59
+ if validate_property_excluded?('vlan', 'pvlan_type')
60
+ assert_nil(v1.pvlan_type)
61
+ return
62
+ else
63
+ result = []
64
+ assert_equal(result, v1.pvlan_association)
65
+ end
66
+ end
67
+
68
+ def test_type_primary
69
+ v1 = Vlan.new(100)
70
+ pv_type = 'primary'
71
+ if validate_property_excluded?('vlan', 'pvlan_type')
72
+ assert_nil(v1.pvlan_type)
73
+ assert_raises(Cisco::UnsupportedError) do
74
+ v1.pvlan_type = pv_type
75
+ end
76
+ else
77
+ v1.pvlan_type = pv_type
78
+ assert_equal(pv_type, v1.pvlan_type)
79
+ end
80
+ end
81
+
82
+ def test_no_pvlan_type_primary
83
+ v1 = Vlan.new(200)
84
+ pv_type = 'primary'
85
+ if validate_property_excluded?('vlan', 'pvlan_type')
86
+ assert_nil(v1.pvlan_type)
87
+ assert_raises(Cisco::UnsupportedError) do
88
+ v1.pvlan_type = pv_type
89
+ end
90
+ return
91
+ else
92
+ v1.pvlan_type = pv_type
93
+ assert_equal(pv_type, v1.pvlan_type)
94
+ pv_type = ''
95
+ v1.pvlan_type = pv_type
96
+ assert_equal(pv_type, v1.pvlan_type)
97
+ end
98
+ end
99
+
100
+ def test_multi_pvlan_type_primary
101
+ v1 = Vlan.new(100)
102
+ v2 = Vlan.new(101)
103
+ v3 = Vlan.new(200)
104
+ v4 = Vlan.new(201)
105
+ v5 = Vlan.new(203)
106
+ pv_type = 'primary'
107
+ if validate_property_excluded?('vlan', 'pvlan_type')
108
+ assert_nil(v1.pvlan_type)
109
+ assert_raises(Cisco::UnsupportedError) do
110
+ v1.pvlan_type = pv_type
111
+ end
112
+ return
113
+ else
114
+ v1.pvlan_type = pv_type
115
+ v2.pvlan_type = pv_type
116
+ v3.pvlan_type = pv_type
117
+ v4.pvlan_type = pv_type
118
+ v5.pvlan_type = pv_type
119
+
120
+ assert_equal(pv_type, v1.pvlan_type)
121
+ assert_equal(pv_type, v2.pvlan_type)
122
+ assert_equal(pv_type, v3.pvlan_type)
123
+ assert_equal(pv_type, v4.pvlan_type)
124
+ assert_equal(pv_type, v5.pvlan_type)
125
+ end
126
+ end
127
+
128
+ def test_type_isolated
129
+ v1 = Vlan.new(100)
130
+ pv_type = 'isolated'
131
+ if validate_property_excluded?('vlan', 'pvlan_type')
132
+ assert_nil(v1.pvlan_type)
133
+ assert_raises(Cisco::UnsupportedError) do
134
+ v1.pvlan_type = pv_type
135
+ end
136
+ else
137
+ v1.pvlan_type = pv_type
138
+ assert_equal(pv_type, v1.pvlan_type)
139
+ end
140
+ end
141
+
142
+ def test_type_community
143
+ v1 = Vlan.new(100)
144
+ pv_type = 'community'
145
+ if validate_property_excluded?('vlan', 'pvlan_type')
146
+ assert_nil(v1.pvlan_type)
147
+ assert_raises(Cisco::UnsupportedError) do
148
+ v1.pvlan_type = pv_type
149
+ end
150
+ else
151
+ v1.pvlan_type = pv_type
152
+ assert_equal(pv_type, v1.pvlan_type)
153
+ end
154
+ end
155
+
156
+ def test_type_isolated_primary
157
+ v1 = Vlan.new(100)
158
+ pv_type = 'isolated'
159
+ if validate_property_excluded?('vlan', 'pvlan_type')
160
+ assert_nil(v1.pvlan_type)
161
+ assert_raises(Cisco::UnsupportedError) do
162
+ v1.pvlan_type = pv_type
163
+ end
164
+ return
165
+ else
166
+ v1.pvlan_type = pv_type
167
+ assert_equal(pv_type, v1.pvlan_type)
168
+ v2 = Vlan.new(200)
169
+ pv_type = 'primary'
170
+ v2.pvlan_type = pv_type
171
+ assert_equal(pv_type, v2.pvlan_type)
172
+ end
173
+ end
174
+
175
+ def test_type_isolated_community_primary
176
+ v1 = Vlan.new(100)
177
+ pv_type = 'isolated'
178
+ if validate_property_excluded?('vlan', 'pvlan_type')
179
+ assert_nil(v1.pvlan_type)
180
+ assert_raises(Cisco::UnsupportedError) do
181
+ v1.pvlan_type = pv_type
182
+ end
183
+ return
184
+ else
185
+ v1.pvlan_type = pv_type
186
+ assert_equal(pv_type, v1.pvlan_type)
187
+ v2 = Vlan.new(200)
188
+ pv_type = 'primary'
189
+ v2.pvlan_type = pv_type
190
+ assert_equal(pv_type, v2.pvlan_type)
191
+ v3 = Vlan.new(300)
192
+ pv_type = 'community'
193
+ v3.pvlan_type = pv_type
194
+ assert_equal(pv_type, v3.pvlan_type)
195
+ end
196
+ end
197
+
198
+ def test_type_change_isolated_to_primary
199
+ v1 = Vlan.new(100)
200
+ pv_type = 'isolated'
201
+ if validate_property_excluded?('vlan', 'pvlan_type')
202
+ assert_nil(v1.pvlan_type)
203
+ assert_raises(Cisco::UnsupportedError) do
204
+ v1.pvlan_type = pv_type
205
+ end
206
+ return
207
+ else
208
+ v1.pvlan_type = pv_type
209
+ assert_equal(pv_type, v1.pvlan_type)
210
+ pv_type = 'primary'
211
+ v1.pvlan_type = pv_type
212
+ assert_equal(pv_type, v1.pvlan_type)
213
+ end
214
+ end
215
+
216
+ def test_type_change_isolated_to_community
217
+ v1 = Vlan.new(100)
218
+ pv_type = 'isolated'
219
+ if validate_property_excluded?('vlan', 'pvlan_type')
220
+ assert_nil(v1.pvlan_type)
221
+ assert_raises(Cisco::UnsupportedError) do
222
+ v1.pvlan_type = pv_type
223
+ end
224
+ return
225
+ else
226
+ v1.pvlan_type = pv_type
227
+ assert_equal(pv_type, v1.pvlan_type)
228
+ pv_type = 'community'
229
+ v1.pvlan_type = pv_type
230
+ assert_equal(pv_type, v1.pvlan_type)
231
+ end
232
+ end
233
+
234
+ def test_type_change_community_to_isolated
235
+ v1 = Vlan.new(100)
236
+ pv_type = 'community'
237
+ if validate_property_excluded?('vlan', 'pvlan_type')
238
+ assert_nil(v1.pvlan_type)
239
+ assert_raises(Cisco::UnsupportedError) do
240
+ v1.pvlan_type = pv_type
241
+ end
242
+ return
243
+ else
244
+ v1.pvlan_type = pv_type
245
+ assert_equal(pv_type, v1.pvlan_type)
246
+ pv_type = 'isolated'
247
+ v1.pvlan_type = pv_type
248
+ assert_equal(pv_type, v1.pvlan_type)
249
+ end
250
+ end
251
+
252
+ def test_type_change_community_to_primary
253
+ v1 = Vlan.new(100)
254
+ pv_type = 'community'
255
+ if validate_property_excluded?('vlan', 'pvlan_type')
256
+ assert_nil(v1.pvlan_type)
257
+ assert_raises(Cisco::UnsupportedError) do
258
+ v1.pvlan_type = pv_type
259
+ end
260
+ return
261
+ else
262
+ v1.pvlan_type = pv_type
263
+ assert_equal(pv_type, v1.pvlan_type)
264
+ pv_type = 'primary'
265
+ v1.pvlan_type = pv_type
266
+ assert_equal(pv_type, v1.pvlan_type)
267
+ end
268
+ end
269
+
270
+ def test_type_change_primary_to_isolated
271
+ v1 = Vlan.new(100)
272
+ pv_type = 'primary'
273
+ if validate_property_excluded?('vlan', 'pvlan_type')
274
+ assert_nil(v1.pvlan_type)
275
+ assert_raises(Cisco::UnsupportedError) do
276
+ v1.pvlan_type = pv_type
277
+ end
278
+ return
279
+ else
280
+ v1.pvlan_type = pv_type
281
+ assert_equal(pv_type, v1.pvlan_type)
282
+ pv_type = 'isolated'
283
+ v1.pvlan_type = pv_type
284
+ assert_equal(pv_type, v1.pvlan_type)
285
+ end
286
+ end
287
+
288
+ def test_type_change_primary_to_community
289
+ v1 = Vlan.new(100)
290
+ pv_type = 'primary'
291
+ if validate_property_excluded?('vlan', 'pvlan_type')
292
+ assert_nil(v1.pvlan_type)
293
+ assert_raises(Cisco::UnsupportedError) do
294
+ v1.pvlan_type = pv_type
295
+ end
296
+ return
297
+ else
298
+ v1.pvlan_type = pv_type
299
+ assert_equal(pv_type, v1.pvlan_type)
300
+ pv_type = 'community'
301
+ v1.pvlan_type = pv_type
302
+ assert_equal(pv_type, v1.pvlan_type)
303
+ end
304
+ end
305
+
306
+ def test_isolate_association
307
+ vlan_list = %w(100 101)
308
+ result = ['101']
309
+ v1 = Vlan.new(vlan_list[0])
310
+ v2 = Vlan.new(vlan_list[1])
311
+ pv_type = 'primary'
312
+ if validate_property_excluded?('vlan', 'pvlan_type')
313
+ assert_nil(v1.pvlan_type)
314
+ assert_raises(Cisco::UnsupportedError) do
315
+ v1.pvlan_type = pv_type
316
+ end
317
+ return
318
+ else
319
+ v1.pvlan_type = pv_type
320
+ assert_equal(pv_type, v1.pvlan_type)
321
+ pv_type = 'isolated'
322
+ v2.pvlan_type = pv_type
323
+ assert_equal(pv_type, v2.pvlan_type)
324
+
325
+ v1.pvlan_association = ['101']
326
+
327
+ assert_equal(result, v1.pvlan_association)
328
+ end
329
+ end
330
+
331
+ def test_community_association
332
+ vlan_list = %w(100 101)
333
+ result = ['101']
334
+ v1 = Vlan.new(vlan_list[0])
335
+ v2 = Vlan.new(vlan_list[1])
336
+ pv_type = 'primary'
337
+ if validate_property_excluded?('vlan', 'pvlan_type')
338
+ assert_nil(v1.pvlan_type)
339
+ assert_raises(Cisco::UnsupportedError) do
340
+ v1.pvlan_type = pv_type
341
+ end
342
+ return
343
+ else
344
+ v1.pvlan_type = pv_type
345
+ assert_equal(pv_type, v1.pvlan_type)
346
+ pv_type = 'community'
347
+ v2.pvlan_type = pv_type
348
+ assert_equal(pv_type, v2.pvlan_type)
349
+
350
+ v1.pvlan_association = ['101']
351
+
352
+ assert_equal(result, v1.pvlan_association)
353
+ end
354
+ end
355
+
356
+ def test_association_failure
357
+ vlan_list = %w(100 101 200)
358
+ result = %w(101 200)
359
+ v1 = Vlan.new(vlan_list[0])
360
+ v2 = Vlan.new(vlan_list[1])
361
+ v3 = Vlan.new(vlan_list[2])
362
+ pv_type = 'primary'
363
+ if validate_property_excluded?('vlan', 'pvlan_type')
364
+ assert_nil(v1.pvlan_type)
365
+ assert_raises(Cisco::UnsupportedError) do
366
+ v1.pvlan_type = pv_type
367
+ end
368
+ return
369
+ else
370
+ v1.pvlan_type = pv_type
371
+ assert_equal(pv_type, v1.pvlan_type)
372
+ pv_type = 'isolated'
373
+ v2.pvlan_type = pv_type
374
+ assert_equal(pv_type, v2.pvlan_type)
375
+ pv_type = 'community'
376
+ v3.pvlan_type = pv_type
377
+ assert_equal(pv_type, v3.pvlan_type)
378
+
379
+ v1.pvlan_association = %w(101 200)
380
+
381
+ assert_equal(result, v1.pvlan_association)
382
+
383
+ pv_type = 'isolated'
384
+ assert_raises(CliError, 'vlan misconf did not raise CliError') do
385
+ v3.pvlan_type = pv_type
386
+ end
387
+
388
+ assert_equal(result, v1.pvlan_association)
389
+
390
+ end
391
+ end
392
+
393
+ def test_association_ops
394
+ vlan_list = %w(100 101 200)
395
+ result = %w(101 200)
396
+
397
+ v1 = Vlan.new(vlan_list[0])
398
+ v2 = Vlan.new(vlan_list[1])
399
+
400
+ pv_type = 'primary'
401
+ if validate_property_excluded?('vlan', 'pvlan_type')
402
+ assert_nil(v1.pvlan_type)
403
+ assert_raises(Cisco::UnsupportedError) do
404
+ v1.pvlan_type = pv_type
405
+ end
406
+ return
407
+ else
408
+ v1.pvlan_type = pv_type
409
+ assert_equal(pv_type, v1.pvlan_type)
410
+
411
+ pv_type = 'isolated'
412
+ v2.pvlan_type = pv_type
413
+ assert_equal(pv_type, v2.pvlan_type)
414
+
415
+ v1.pvlan_association = %w(101 200)
416
+
417
+ assert_equal(result, v1.pvlan_association)
418
+ end
419
+ end
420
+
421
+ def test_association_vlan_not_configured
422
+ vlan_list = %w(100 101 200)
423
+ result = %w(101 200)
424
+ v1 = Vlan.new(vlan_list[0])
425
+ v2 = Vlan.new(vlan_list[1])
426
+ pv_type = 'primary'
427
+ if validate_property_excluded?('vlan', 'pvlan_type')
428
+ assert_nil(v1.pvlan_type)
429
+ assert_raises(Cisco::UnsupportedError) do
430
+ v1.pvlan_type = pv_type
431
+ end
432
+ return
433
+ else
434
+ v1.pvlan_type = pv_type
435
+ assert_equal(pv_type, v1.pvlan_type)
436
+ pv_type = 'isolated'
437
+ v2.pvlan_type = pv_type
438
+ assert_equal(pv_type, v2.pvlan_type)
439
+
440
+ v1.pvlan_association = %w(101 200)
441
+ assert_equal(result, v1.pvlan_association)
442
+ end
443
+ end
444
+
445
+ def test_association_add_vlan
446
+ vlan_list = %w(100 101)
447
+ result = ['101']
448
+ v1 = Vlan.new(vlan_list[0])
449
+ v2 = Vlan.new(vlan_list[1])
450
+ pv_type = 'primary'
451
+ if validate_property_excluded?('vlan', 'pvlan_type')
452
+ assert_nil(v1.pvlan_type)
453
+ assert_raises(Cisco::UnsupportedError) do
454
+ v1.pvlan_type = pv_type
455
+ end
456
+ return
457
+ else
458
+ v1.pvlan_type = pv_type
459
+ assert_equal(pv_type, v1.pvlan_type)
460
+ pv_type = 'isolated'
461
+ v2.pvlan_type = pv_type
462
+ assert_equal(pv_type, v2.pvlan_type)
463
+
464
+ v1.pvlan_association = ['101']
465
+ assert_equal(result, v1.pvlan_association)
466
+ end
467
+ end
468
+
469
+ def test_association_remove_vlan
470
+ vlan_list = %w(100 101 200)
471
+ result = %w(101 200)
472
+ v1 = Vlan.new(vlan_list[0])
473
+ v2 = Vlan.new(vlan_list[1])
474
+ v3 = Vlan.new(vlan_list[2])
475
+ pv_type = 'primary'
476
+ if validate_property_excluded?('vlan', 'pvlan_type')
477
+ assert_nil(v1.pvlan_type)
478
+ assert_raises(Cisco::UnsupportedError) do
479
+ v1.pvlan_type = pv_type
480
+ end
481
+ return
482
+ else
483
+ v1.pvlan_type = pv_type
484
+ assert_equal(pv_type, v1.pvlan_type)
485
+ pv_type = 'isolated'
486
+ v2.pvlan_type = pv_type
487
+ assert_equal(pv_type, v2.pvlan_type)
488
+
489
+ pv_type = 'community'
490
+ v3.pvlan_type = pv_type
491
+ assert_equal(pv_type, v3.pvlan_type)
492
+
493
+ v1.pvlan_association = %w(101 200)
494
+ assert_equal(result, v1.pvlan_association)
495
+
496
+ # v1.pvlan_association_remove_vlans = '101'
497
+ # result = '200'
498
+ # assert_equal(result, vlan_list(v1))
499
+
500
+ end
501
+ end
502
+
503
+ def test_no_pvlan_association
504
+ vlan_list = %w(100 101 200)
505
+ result = %w(101 200)
506
+ v1 = Vlan.new(vlan_list[0])
507
+ v2 = Vlan.new(vlan_list[1])
508
+ v3 = Vlan.new(vlan_list[2])
509
+
510
+ pv_type = 'primary'
511
+ if validate_property_excluded?('vlan', 'pvlan_type')
512
+ assert_nil(v1.pvlan_type)
513
+ assert_raises(Cisco::UnsupportedError) do
514
+ v1.pvlan_type = pv_type
515
+ end
516
+ return
517
+ else
518
+ v1.pvlan_type = pv_type
519
+ assert_equal(pv_type, v1.pvlan_type)
520
+
521
+ pv_type = 'isolated'
522
+ v2.pvlan_type = pv_type
523
+ assert_equal(pv_type, v2.pvlan_type)
524
+
525
+ pv_type = 'community'
526
+ v3.pvlan_type = pv_type
527
+ assert_equal(pv_type, v3.pvlan_type)
528
+
529
+ v1.pvlan_association = %w(101 200)
530
+ assert_equal(result, v1.pvlan_association)
531
+
532
+ v1.pvlan_association = ['200']
533
+ result = ['200']
534
+ assert_equal(result, v1.pvlan_association)
535
+
536
+ end
537
+ end
538
+
539
+ def test_no_pvlan_association_all
540
+ vlan_list = %w(100 101 200)
541
+ result = %w(101 200)
542
+ v1 = Vlan.new(vlan_list[0])
543
+ v2 = Vlan.new(vlan_list[1])
544
+ v3 = Vlan.new(vlan_list[2])
545
+
546
+ pv_type = 'primary'
547
+ if validate_property_excluded?('vlan', 'pvlan_type')
548
+ assert_nil(v1.pvlan_type)
549
+ assert_raises(Cisco::UnsupportedError) do
550
+ v1.pvlan_type = pv_type
551
+ end
552
+ return
553
+ else
554
+ v1.pvlan_type = pv_type
555
+ assert_equal(pv_type, v1.pvlan_type)
556
+
557
+ pv_type = 'isolated'
558
+ v2.pvlan_type = pv_type
559
+ assert_equal(pv_type, v2.pvlan_type)
560
+
561
+ pv_type = 'community'
562
+ v3.pvlan_type = pv_type
563
+ assert_equal(pv_type, v3.pvlan_type)
564
+
565
+ v1.pvlan_association = %w(101 200)
566
+ assert_equal(result, v1.pvlan_association)
567
+ v1.pvlan_association = []
568
+ result = []
569
+ assert_equal(result, v1.pvlan_association)
570
+
571
+ end
572
+ end
573
+
574
+ def test_isolate_community_association
575
+ vlan_list = %w(100 101 200)
576
+ result = %w(101 200)
577
+ v1 = Vlan.new(vlan_list[0])
578
+ v2 = Vlan.new(vlan_list[1])
579
+ v3 = Vlan.new(vlan_list[2])
580
+ pv_type = 'primary'
581
+ if validate_property_excluded?('vlan', 'pvlan_type')
582
+ assert_nil(v1.pvlan_type)
583
+ assert_raises(Cisco::UnsupportedError) do
584
+ v1.pvlan_type = pv_type
585
+ end
586
+ return
587
+ else
588
+ v1.pvlan_type = pv_type
589
+ assert_equal(pv_type, v1.pvlan_type)
590
+ pv_type = 'isolated'
591
+ v2.pvlan_type = pv_type
592
+ assert_equal(pv_type, v2.pvlan_type)
593
+ pv_type = 'community'
594
+ v3.pvlan_type = pv_type
595
+ assert_equal(pv_type, v3.pvlan_type)
596
+
597
+ v1.pvlan_association = %w(101 200)
598
+
599
+ assert_equal(result, v1.pvlan_association)
600
+ end
601
+ end
602
+
603
+ def test_multi_isolate_community_association
604
+ vlan_list = %w(100 101 102 104 105 200 201 202)
605
+ v1 = Vlan.new(vlan_list[0])
606
+
607
+ pv_type = 'primary'
608
+ if validate_property_excluded?('vlan', 'pvlan_type')
609
+ assert_nil(v1.pvlan_type)
610
+ assert_raises(Cisco::UnsupportedError) { v1.pvlan_type = pv_type }
611
+ return
612
+ end
613
+
614
+ v2 = Vlan.new(vlan_list[1])
615
+ v3 = Vlan.new(vlan_list[2])
616
+ v4 = Vlan.new(vlan_list[3])
617
+ v5 = Vlan.new(vlan_list[4])
618
+ v6 = Vlan.new(vlan_list[5])
619
+ v7 = Vlan.new(vlan_list[6])
620
+
621
+ v1.pvlan_type = pv_type
622
+ assert_equal(pv_type, v1.pvlan_type)
623
+
624
+ pv_type = 'isolated'
625
+ v2.pvlan_type = pv_type
626
+ assert_equal(pv_type, v2.pvlan_type)
627
+
628
+ pv_type = 'isolated'
629
+ v3.pvlan_type = pv_type
630
+ assert_equal(pv_type, v3.pvlan_type)
631
+
632
+ pv_type = 'community'
633
+ v4.pvlan_type = pv_type
634
+ assert_equal(pv_type, v4.pvlan_type)
635
+
636
+ pv_type = 'community'
637
+ v5.pvlan_type = pv_type
638
+ assert_equal(pv_type, v5.pvlan_type)
639
+
640
+ pv_type = 'community'
641
+ v6.pvlan_type = pv_type
642
+ assert_equal(pv_type, v6.pvlan_type)
643
+
644
+ pv_type = 'primary'
645
+ v7.pvlan_type = pv_type
646
+ assert_equal(pv_type, v7.pvlan_type)
647
+
648
+ v1.pvlan_association = %w(101 104 105 200 202)
649
+ result = %w(101 104-105 200 202)
650
+ assert_equal(result, v1.pvlan_association)
651
+
652
+ v1.pvlan_association = %w(101 103 104-105 108)
653
+ result = %w(101 103-105 108)
654
+ assert_equal(result, v1.pvlan_association)
655
+ end
656
+ end