cisco_node_utils 1.2.0 → 1.3.0

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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +13 -0
  5. data/.travis.yml +4 -1
  6. data/CHANGELOG.md +81 -2
  7. data/CONTRIBUTING.md +2 -17
  8. data/Gemfile +5 -0
  9. data/README.md +92 -47
  10. data/Rakefile +23 -1
  11. data/bin/git/hooks/hook_lib +7 -0
  12. data/bin/git/hooks/pre-commit/check_unstaged_changes +18 -0
  13. data/bin/git/hooks/pre-commit/rubocop +7 -2
  14. data/bin/git/hooks/pre-commit/validate-diffs +18 -4
  15. data/bin/git/hooks/pre-commit/validate-yaml +18 -0
  16. data/bin/git/update-hooks +64 -6
  17. data/cisco_node_utils.gemspec +9 -6
  18. data/docs/README-develop-best-practices.md +149 -50
  19. data/docs/README-develop-node-utils-APIs.md +92 -42
  20. data/docs/README-maintainers.md +7 -4
  21. data/docs/README-test-execution.md +57 -0
  22. data/docs/cisco_node_utils.yaml.example +30 -0
  23. data/docs/template-router.rb +4 -0
  24. data/ext/mkrf_conf.rb +63 -0
  25. data/lib/.rubocop.yml +2 -2
  26. data/lib/cisco_node_utils.rb +5 -0
  27. data/lib/cisco_node_utils/aaa_authentication_login.rb +5 -6
  28. data/lib/cisco_node_utils/aaa_authorization_service.rb +1 -1
  29. data/lib/cisco_node_utils/ace.rb +165 -12
  30. data/lib/cisco_node_utils/acl.rb +2 -1
  31. data/lib/cisco_node_utils/bgp.rb +184 -21
  32. data/lib/cisco_node_utils/bgp_af.rb +94 -249
  33. data/lib/cisco_node_utils/bgp_neighbor.rb +94 -14
  34. data/lib/cisco_node_utils/bgp_neighbor_af.rb +75 -8
  35. data/lib/cisco_node_utils/bridge_domain.rb +183 -0
  36. data/lib/cisco_node_utils/bridge_domain_vni.rb +206 -0
  37. data/lib/cisco_node_utils/cisco_cmn_utils.rb +85 -2
  38. data/lib/cisco_node_utils/client.rb +35 -0
  39. data/lib/cisco_node_utils/client/client.rb +234 -0
  40. data/lib/cisco_node_utils/client/grpc.rb +33 -0
  41. data/lib/cisco_node_utils/client/grpc/client.rb +311 -0
  42. data/lib/cisco_node_utils/client/grpc/ems.proto +148 -0
  43. data/lib/cisco_node_utils/client/grpc/ems.rb +111 -0
  44. data/lib/cisco_node_utils/client/grpc/ems_services.rb +49 -0
  45. data/lib/cisco_node_utils/client/nxapi.rb +31 -0
  46. data/lib/cisco_node_utils/client/nxapi/client.rb +305 -0
  47. data/lib/cisco_node_utils/client/utils.rb +164 -0
  48. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +222 -254
  49. data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +11 -8
  50. data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +22 -15
  51. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +11 -8
  52. data/lib/cisco_node_utils/cmd_ref/acl.yaml +21 -16
  53. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +239 -109
  54. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +114 -55
  55. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +76 -52
  56. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +106 -62
  57. data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +71 -0
  58. data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +33 -0
  59. data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +35 -14
  60. data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +25 -0
  61. data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +23 -17
  62. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +94 -83
  63. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +22 -17
  64. data/lib/cisco_node_utils/cmd_ref/feature.yaml +76 -26
  65. data/lib/cisco_node_utils/cmd_ref/images.yaml +3 -2
  66. data/lib/cisco_node_utils/cmd_ref/interface.yaml +381 -153
  67. data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +21 -11
  68. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +21 -21
  69. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +30 -21
  70. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +18 -13
  71. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +26 -31
  72. data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +83 -0
  73. data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +119 -0
  74. data/lib/cisco_node_utils/cmd_ref/memory.yaml +17 -6
  75. data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +10 -3
  76. data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +17 -5
  77. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +33 -29
  78. data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +12 -10
  79. data/lib/cisco_node_utils/cmd_ref/pim.yaml +16 -19
  80. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +40 -25
  81. data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +17 -12
  82. data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +71 -35
  83. data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +10 -5
  84. data/lib/cisco_node_utils/cmd_ref/show_system.yaml +6 -2
  85. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +47 -43
  86. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +13 -11
  87. data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +4 -2
  88. data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +23 -21
  89. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +26 -22
  90. data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +19 -17
  91. data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +18 -6
  92. data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +234 -0
  93. data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +24 -9
  94. data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +5 -3
  95. data/lib/cisco_node_utils/cmd_ref/system.yaml +4 -3
  96. data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +22 -20
  97. data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +27 -15
  98. data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +45 -16
  99. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +21 -11
  100. data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +3 -2
  101. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +60 -32
  102. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +118 -101
  103. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +54 -58
  104. data/lib/cisco_node_utils/cmd_ref/vrf_af.yaml +118 -0
  105. data/lib/cisco_node_utils/cmd_ref/vtp.yaml +19 -25
  106. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +28 -18
  107. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +34 -17
  108. data/lib/cisco_node_utils/cmd_ref/yum.yaml +6 -4
  109. data/lib/cisco_node_utils/command_reference.rb +261 -142
  110. data/lib/cisco_node_utils/constants.rb +33 -0
  111. data/lib/cisco_node_utils/encapsulation.rb +112 -0
  112. data/lib/cisco_node_utils/environment.rb +102 -0
  113. data/lib/cisco_node_utils/evpn_vni.rb +5 -3
  114. data/lib/cisco_node_utils/exceptions.rb +111 -0
  115. data/lib/cisco_node_utils/fabricpath_global.rb +52 -35
  116. data/lib/cisco_node_utils/fabricpath_topology.rb +44 -57
  117. data/lib/cisco_node_utils/feature.rb +165 -3
  118. data/lib/cisco_node_utils/interface.rb +1051 -260
  119. data/lib/cisco_node_utils/interface_channel_group.rb +11 -10
  120. data/lib/cisco_node_utils/interface_ospf.rb +1 -2
  121. data/lib/cisco_node_utils/interface_portchannel.rb +4 -12
  122. data/lib/cisco_node_utils/interface_service_vni.rb +7 -7
  123. data/lib/cisco_node_utils/itd_device_group.rb +248 -0
  124. data/lib/cisco_node_utils/itd_device_group_node.rb +144 -0
  125. data/lib/cisco_node_utils/itd_service.rb +523 -0
  126. data/lib/cisco_node_utils/logger.rb +75 -0
  127. data/lib/cisco_node_utils/node.rb +62 -192
  128. data/lib/cisco_node_utils/node_util.rb +56 -10
  129. data/lib/cisco_node_utils/overlay_global.rb +2 -2
  130. data/lib/cisco_node_utils/pim.rb +2 -13
  131. data/lib/cisco_node_utils/pim_group_list.rb +1 -1
  132. data/lib/cisco_node_utils/pim_rp_address.rb +1 -1
  133. data/lib/cisco_node_utils/platform.rb +52 -21
  134. data/lib/cisco_node_utils/portchannel_global.rb +89 -19
  135. data/lib/cisco_node_utils/radius_server.rb +168 -37
  136. data/lib/cisco_node_utils/router_ospf.rb +20 -35
  137. data/lib/cisco_node_utils/router_ospf_vrf.rb +4 -4
  138. data/lib/cisco_node_utils/snmpserver.rb +1 -6
  139. data/lib/cisco_node_utils/snmpuser.rb +6 -4
  140. data/lib/cisco_node_utils/stp_global.rb +676 -0
  141. data/lib/cisco_node_utils/syslog_server.rb +77 -18
  142. data/lib/cisco_node_utils/syslog_settings.rb +1 -1
  143. data/lib/cisco_node_utils/tacacs_server_group.rb +8 -4
  144. data/lib/cisco_node_utils/tacacs_server_host.rb +115 -25
  145. data/lib/cisco_node_utils/vdc.rb +12 -0
  146. data/lib/cisco_node_utils/version.rb +1 -1
  147. data/lib/cisco_node_utils/vlan.rb +147 -29
  148. data/lib/cisco_node_utils/vpc.rb +55 -3
  149. data/lib/cisco_node_utils/vrf.rb +72 -11
  150. data/lib/cisco_node_utils/vrf_af.rb +114 -29
  151. data/lib/cisco_node_utils/vtp.rb +34 -52
  152. data/lib/cisco_node_utils/vxlan_vtep.rb +34 -8
  153. data/lib/cisco_node_utils/vxlan_vtep_vni.rb +36 -4
  154. data/lib/minitest/environment_plugin.rb +31 -0
  155. data/lib/minitest/log_level_plugin.rb +41 -0
  156. data/spec/client_spec.rb +7 -0
  157. data/spec/environment_spec.rb +263 -0
  158. data/spec/grpc_client_spec.rb +23 -0
  159. data/spec/isolate/all_clients_spec.rb +9 -0
  160. data/spec/isolate/grpc_only_spec.rb +16 -0
  161. data/spec/isolate/no_clients_spec.rb +26 -0
  162. data/spec/isolate/nxapi_only_spec.rb +16 -0
  163. data/spec/nxapi_client_spec.rb +42 -0
  164. data/spec/schema.yaml +75 -0
  165. data/spec/shared_examples_for_clients.rb +14 -0
  166. data/spec/spec_helper.rb +91 -0
  167. data/spec/whitespace_spec.rb +10 -0
  168. data/spec/yaml_spec.rb +42 -0
  169. data/tests/.rubocop.yml +2 -2
  170. data/tests/CSCuxdublin-1.0.0-7.0.3.I3.1.lib32_n9000.rpm +0 -0
  171. data/tests/basetest.rb +96 -36
  172. data/tests/ciscotest.rb +220 -12
  173. data/tests/cmd_config.yaml +71 -49
  174. data/tests/cmd_config_invalid.yaml +1 -1
  175. data/tests/test_aaa_authentication_login.rb +1 -0
  176. data/tests/test_aaa_authentication_login_service.rb +9 -0
  177. data/tests/test_aaa_authorization_service.rb +173 -367
  178. data/tests/test_ace.rb +171 -100
  179. data/tests/test_acl.rb +10 -1
  180. data/tests/test_bgp_af.rb +395 -728
  181. data/tests/test_bgp_neighbor.rb +274 -115
  182. data/tests/test_bgp_neighbor_af.rb +178 -77
  183. data/tests/test_bridge_domain.rb +191 -0
  184. data/tests/test_bridge_domain_vni.rb +116 -0
  185. data/tests/test_client_utils.rb +111 -0
  186. data/tests/test_command_config.rb +9 -5
  187. data/tests/test_command_reference.rb +380 -102
  188. data/tests/test_dns_domain.rb +13 -3
  189. data/tests/test_domain_name.rb +13 -3
  190. data/tests/test_encapsulation.rb +77 -0
  191. data/tests/test_evpn_vni.rb +25 -7
  192. data/tests/test_fabricpath_global.rb +167 -163
  193. data/tests/test_fabricpath_topology.rb +12 -33
  194. data/tests/test_feature.rb +215 -0
  195. data/tests/test_grpc.rb +166 -0
  196. data/tests/test_interface.rb +585 -344
  197. data/tests/test_interface_bdi.rb +80 -0
  198. data/tests/test_interface_channel_group.rb +6 -3
  199. data/tests/test_interface_ospf.rb +26 -24
  200. data/tests/test_interface_portchannel.rb +1 -0
  201. data/tests/test_interface_private_vlan.rb +724 -0
  202. data/tests/test_interface_service_vni.rb +37 -66
  203. data/tests/test_interface_svi.rb +98 -101
  204. data/tests/test_interface_switchport.rb +419 -549
  205. data/tests/test_itd_device_group.rb +145 -0
  206. data/tests/test_itd_device_group_node.rb +199 -0
  207. data/tests/test_itd_service.rb +298 -0
  208. data/tests/test_logger.rb +43 -0
  209. data/tests/test_name_server.rb +11 -2
  210. data/tests/test_node.rb +16 -75
  211. data/tests/test_node_ext.rb +174 -163
  212. data/tests/test_node_util.rb +119 -0
  213. data/tests/test_ntp_config.rb +5 -1
  214. data/tests/test_ntp_server.rb +2 -2
  215. data/tests/test_nxapi.rb +221 -0
  216. data/tests/test_overlay_global.rb +47 -38
  217. data/tests/test_pim.rb +2 -0
  218. data/tests/test_pim_group_list.rb +2 -0
  219. data/tests/test_pim_rp_address.rb +2 -0
  220. data/tests/test_platform.rb +86 -39
  221. data/tests/test_portchannel_global.rb +211 -135
  222. data/tests/test_radius_global.rb +13 -5
  223. data/tests/test_radius_server.rb +256 -104
  224. data/tests/test_radius_server_group.rb +2 -0
  225. data/tests/test_router_bgp.rb +781 -485
  226. data/tests/test_router_ospf.rb +26 -103
  227. data/tests/test_router_ospf_vrf.rb +52 -57
  228. data/tests/test_snmp_notification_receiver.rb +2 -0
  229. data/tests/test_snmpcommunity.rb +2 -0
  230. data/tests/test_snmpgroup.rb +2 -0
  231. data/tests/test_snmpnotification.rb +40 -21
  232. data/tests/test_snmpserver.rb +2 -0
  233. data/tests/test_snmpuser.rb +2 -0
  234. data/tests/test_stp_global.rb +563 -0
  235. data/tests/test_syslog_server.rb +32 -8
  236. data/tests/test_syslog_settings.rb +22 -9
  237. data/tests/test_tacacs_server.rb +32 -27
  238. data/tests/test_tacacs_server_group.rb +100 -45
  239. data/tests/test_tacacs_server_host.rb +135 -43
  240. data/tests/test_vdc.rb +2 -16
  241. data/tests/test_vlan.rb +106 -54
  242. data/tests/test_vlan_mt_full.rb +11 -21
  243. data/tests/test_vlan_private.rb +669 -0
  244. data/tests/test_vpc.rb +312 -159
  245. data/tests/test_vrf.rb +122 -113
  246. data/tests/test_vrf_af.rb +238 -0
  247. data/tests/test_vtp.rb +58 -102
  248. data/tests/test_vxlan_vtep.rb +38 -17
  249. data/tests/test_vxlan_vtep_vni.rb +61 -9
  250. data/tests/test_yum.rb +49 -25
  251. metadata +122 -36
  252. data/lib/cisco_node_utils/cmd_ref/fex.yaml +0 -9
  253. data/lib/cisco_node_utils/cmd_ref/vni.yaml +0 -76
  254. data/lib/cisco_node_utils/vni.rb +0 -227
  255. data/tests/test_vni.rb +0 -106
@@ -20,6 +20,8 @@ require_relative '../lib/cisco_node_utils/radius_global'
20
20
 
21
21
  # TestRadiusGlobal - Minitest for RadiusGlobal node utility.
22
22
  class TestRadiusGlobal < CiscoTestCase
23
+ @skip_unless_supported = 'radius_global'
24
+
23
25
  def setup
24
26
  # setup runs at the beginning of each test
25
27
  super
@@ -63,11 +65,17 @@ class TestRadiusGlobal < CiscoTestCase
63
65
  assert_equal(global.timeout,
64
66
  2)
65
67
 
66
- global.key_set('44444444', nil)
67
- assert_equal(Cisco::RadiusGlobal.radius_global[id].key,
68
- '44444444')
69
- assert_equal(global.key,
70
- '44444444')
68
+ if platform == :nexus
69
+ global.key_set('44444444', nil)
70
+ assert_equal(global.key,
71
+ '44444444')
72
+ assert_equal(Cisco::RadiusGlobal.radius_global[id].key,
73
+ '44444444')
74
+ elsif platform == :ios_xr
75
+ global.key_set('QsEfThUkO', nil)
76
+ assert(!global.key.nil?)
77
+ assert(!Cisco::RadiusGlobal.radius_global[id].key.nil?)
78
+ end
71
79
 
72
80
  # Setting back to default and re-checking
73
81
  global.timeout = global.default_timeout
@@ -20,6 +20,8 @@ require_relative '../lib/cisco_node_utils/radius_server'
20
20
 
21
21
  # TestRadiusServer - Minitest for RadiusServer node utility.
22
22
  class TestRadiusServer < CiscoTestCase
23
+ @skip_unless_supported = 'radius_server'
24
+
23
25
  def setup
24
26
  # setup runs at the beginning of each test
25
27
  super
@@ -32,11 +34,32 @@ class TestRadiusServer < CiscoTestCase
32
34
  super
33
35
  end
34
36
 
37
+ def setup_duplicates
38
+ return if platform != :ios_xr
39
+ config('radius-server host 8.8.8.8 auth-port 11 acct-port 44',
40
+ 'radius-server host 8.8.8.8 auth-port 22 acct-port 55',
41
+ 'radius-server host 8.8.8.8 auth-port 33 acct-port 66')
42
+ end
43
+
44
+ def no_duplicates
45
+ return if platform != :ios_xr
46
+ config('no radius-server host 8.8.8.8 auth-port 11 acct-port 44',
47
+ 'no radius-server host 8.8.8.8 auth-port 22 acct-port 55',
48
+ 'no radius-server host 8.8.8.8 auth-port 33 acct-port 66')
49
+ end
50
+
35
51
  def no_radiusserver
36
52
  # Turn the feature off for a clean test.
37
- config('no radius-server host 8.8.8.8',
38
- 'no radius-server host 2004::3',
39
- 'no radius-server host 2005::7')
53
+
54
+ if platform == :ios_xr
55
+ config('no radius-server host 8.8.8.8 auth-port 55 acct-port 44',
56
+ 'no radius-server host 2004::3 auth-port 55 acct-port 44',
57
+ 'no radius-server host 2005::7 auth-port 55 acct-port 44')
58
+ else
59
+ config('no radius-server host 8.8.8.8',
60
+ 'no radius-server host 2004::3',
61
+ 'no radius-server host 2005::7')
62
+ end
40
63
  end
41
64
 
42
65
  # TESTS
@@ -45,89 +68,189 @@ class TestRadiusServer < CiscoTestCase
45
68
  id = '8.8.8.8'
46
69
  refute_includes(Cisco::RadiusServer.radiusservers, id)
47
70
 
48
- server = Cisco::RadiusServer.new(id, true)
71
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
72
+
49
73
  assert_includes(Cisco::RadiusServer.radiusservers, id)
50
74
  assert_equal(server, Cisco::RadiusServer.radiusservers[id])
51
75
 
52
- # Default checking
53
- assert_equal(server.default_acct_port, server.acct_port)
54
- assert_equal(server.default_auth_port, server.auth_port)
55
- assert_equal(server.default_accounting, server.accounting)
56
- assert_equal(server.default_authentication, server.authentication)
76
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
77
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
78
+
79
+ if platform != :ios_xr
80
+ # Default checking
81
+ assert_equal(server.default_accounting, server.accounting)
82
+ assert_equal(server.default_authentication, server.authentication)
57
83
 
58
- server.accounting = true
59
- assert(Cisco::RadiusServer.radiusservers[id].accounting)
84
+ server.accounting = true
85
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
60
86
 
61
- server.authentication = true
62
- assert(Cisco::RadiusServer.radiusservers[id].authentication)
87
+ server.authentication = true
88
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
63
89
 
64
- server.acct_port = 44
65
- assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
90
+ server.acct_port = 66
91
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
66
92
 
67
- server.auth_port = 55
68
- assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
93
+ server.auth_port = 77
94
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
95
+
96
+ server.key_set(nil, nil)
97
+ assert_equal(nil, Cisco::RadiusServer.radiusservers[id].key)
98
+
99
+ server.key_set('44444444', nil)
100
+ assert_equal('44444444', Cisco::RadiusServer.radiusservers[id].key)
101
+ else
102
+ assert_nil(server.accounting)
103
+ assert_raises(Cisco::UnsupportedError) do
104
+ server.accounting = true
105
+ end
106
+
107
+ assert_nil(server.authentication)
108
+ assert_raises(Cisco::UnsupportedError) do
109
+ server.authentication = true
110
+ end
111
+ end
69
112
 
70
113
  server.retransmit_count = 3
71
114
  assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
72
115
 
73
- server.key_set('44444444', nil)
74
- assert_equal('44444444', Cisco::RadiusServer.radiusservers[id].key)
116
+ if platform != :ios_xr
117
+ # Setting back to default and re-checking
118
+ server.acct_port = server.default_acct_port
119
+ server.auth_port = server.default_auth_port
120
+ server.accounting = server.default_accounting
121
+ server.authentication = server.default_authentication
122
+ assert_equal(server.default_acct_port, server.acct_port)
123
+ assert_equal(server.default_auth_port, server.auth_port)
124
+ assert_equal(server.default_accounting, server.accounting)
125
+ assert_equal(server.default_authentication, server.authentication)
126
+ end
127
+
128
+ server.destroy
129
+ refute_includes(Cisco::RadiusServer.radiusservers, id)
130
+ end
131
+
132
+ def test_create_destroy_single_with_duplicates
133
+ setup_duplicates
134
+
135
+ id = '8.8.8.8'
136
+
137
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
138
+
139
+ assert_includes(Cisco::RadiusServer.radiusservers, id)
140
+ assert_equal(server, Cisco::RadiusServer.radiusservers[id])
141
+
142
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
143
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
144
+
145
+ if platform != :ios_xr
146
+ # Default checking
147
+ assert_equal(server.default_accounting, server.accounting)
148
+ assert_equal(server.default_authentication, server.authentication)
149
+
150
+ server.accounting = true
151
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
152
+
153
+ server.authentication = true
154
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
75
155
 
76
- # Setting back to default and re-checking
77
- server.acct_port = server.default_acct_port
78
- server.auth_port = server.default_auth_port
79
- server.accounting = server.default_accounting
80
- server.authentication = server.default_authentication
81
- assert_equal(server.default_acct_port, server.acct_port)
82
- assert_equal(server.default_auth_port, server.auth_port)
83
- assert_equal(server.default_accounting, server.accounting)
84
- assert_equal(server.default_authentication, server.authentication)
156
+ server.acct_port = 66
157
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
158
+
159
+ server.auth_port = 77
160
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
161
+
162
+ server.key_set('44444444', nil)
163
+ assert_equal('44444444', Cisco::RadiusServer.radiusservers[id].key)
164
+ else
165
+ assert_nil(server.accounting)
166
+ assert_raises(Cisco::UnsupportedError) do
167
+ server.accounting = true
168
+ end
169
+
170
+ assert_nil(server.authentication)
171
+ assert_raises(Cisco::UnsupportedError) do
172
+ server.authentication = true
173
+ end
174
+ end
175
+
176
+ server.retransmit_count = 3
177
+ assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
178
+
179
+ if platform != :ios_xr
180
+ # Setting back to default and re-checking
181
+ server.acct_port = server.default_acct_port
182
+ server.auth_port = server.default_auth_port
183
+ server.accounting = server.default_accounting
184
+ server.authentication = server.default_authentication
185
+ assert_equal(server.default_acct_port, server.acct_port)
186
+ assert_equal(server.default_auth_port, server.auth_port)
187
+ assert_equal(server.default_accounting, server.accounting)
188
+ assert_equal(server.default_authentication, server.authentication)
189
+ end
85
190
 
86
191
  server.destroy
87
192
  refute_includes(Cisco::RadiusServer.radiusservers, id)
193
+
194
+ no_duplicates
88
195
  end
89
196
 
90
197
  def test_create_destroy_single_ipv6
91
198
  id = '2004::3'
92
199
  refute_includes(Cisco::RadiusServer.radiusservers, id)
93
200
 
94
- server = Cisco::RadiusServer.new(id, true)
201
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
202
+
95
203
  assert_includes(Cisco::RadiusServer.radiusservers, id)
96
204
  assert_equal(server, Cisco::RadiusServer.radiusservers[id])
97
205
 
98
- # Default checking
99
- assert_equal(server.default_acct_port, server.acct_port)
100
- assert_equal(server.default_auth_port, server.auth_port)
101
- assert_equal(server.default_accounting, server.accounting)
102
- assert_equal(server.default_authentication, server.authentication)
206
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
207
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
103
208
 
104
- server.accounting = true
105
- assert(Cisco::RadiusServer.radiusservers[id].accounting)
209
+ if platform != :ios_xr
210
+ # Default checking
211
+ assert_equal(server.default_accounting, server.accounting)
212
+ assert_equal(server.default_authentication, server.authentication)
106
213
 
107
- server.authentication = true
108
- assert(Cisco::RadiusServer.radiusservers[id].authentication)
214
+ server.accounting = true
215
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
109
216
 
110
- server.acct_port = 44
111
- assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
217
+ server.authentication = true
218
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
112
219
 
113
- server.auth_port = 55
114
- assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
220
+ server.acct_port = 66
221
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
222
+
223
+ server.auth_port = 77
224
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
225
+
226
+ server.key_set('44444444', nil)
227
+ assert_equal('44444444', Cisco::RadiusServer.radiusservers[id].key)
228
+ else
229
+ assert_nil(server.accounting)
230
+ assert_raises(Cisco::UnsupportedError) do
231
+ server.accounting = true
232
+ end
233
+
234
+ assert_nil(server.authentication)
235
+ assert_raises(Cisco::UnsupportedError) do
236
+ server.authentication = true
237
+ end
238
+ end
115
239
 
116
240
  server.retransmit_count = 3
117
241
  assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
118
242
 
119
- server.key_set('44444444', nil)
120
- assert_equal('44444444', Cisco::RadiusServer.radiusservers[id].key)
121
-
122
- # Setting back to default and re-checking
123
- server.acct_port = server.default_acct_port
124
- server.auth_port = server.default_auth_port
125
- server.accounting = server.default_accounting
126
- server.authentication = server.default_authentication
127
- assert_equal(server.default_acct_port, server.acct_port)
128
- assert_equal(server.default_auth_port, server.auth_port)
129
- assert_equal(server.default_accounting, server.accounting)
130
- assert_equal(server.default_authentication, server.authentication)
243
+ if platform != :ios_xr
244
+ # Setting back to default and re-checking
245
+ server.acct_port = server.default_acct_port
246
+ server.auth_port = server.default_auth_port
247
+ server.accounting = server.default_accounting
248
+ server.authentication = server.default_authentication
249
+ assert_equal(server.default_acct_port, server.acct_port)
250
+ assert_equal(server.default_auth_port, server.auth_port)
251
+ assert_equal(server.default_accounting, server.accounting)
252
+ assert_equal(server.default_authentication, server.authentication)
253
+ end
131
254
 
132
255
  server.destroy
133
256
  refute_includes(Cisco::RadiusServer.radiusservers, id)
@@ -140,77 +263,106 @@ class TestRadiusServer < CiscoTestCase
140
263
  refute_includes(Cisco::RadiusServer.radiusservers, id)
141
264
  refute_includes(Cisco::RadiusServer.radiusservers, id2)
142
265
 
143
- server = Cisco::RadiusServer.new(id, true)
144
- server2 = Cisco::RadiusServer.new(id2, true)
266
+ server = Cisco::RadiusServer.new(id, true, 55, 44)
267
+ server2 = Cisco::RadiusServer.new(id2, true, 55, 44)
268
+
145
269
  assert_includes(Cisco::RadiusServer.radiusservers, id)
146
270
  assert_equal(server, Cisco::RadiusServer.radiusservers[id])
147
271
  assert_includes(Cisco::RadiusServer.radiusservers, id2)
148
272
  assert_equal(server2, Cisco::RadiusServer.radiusservers[id2])
149
273
 
150
- # Default checking
151
- assert_equal(server.default_acct_port, server.acct_port)
152
- assert_equal(server.default_auth_port, server.auth_port)
153
- assert_equal(server.default_accounting, server.accounting)
154
- assert_equal(server.default_authentication, server.authentication)
155
- assert_equal(server2.default_acct_port, server2.acct_port)
156
- assert_equal(server2.default_auth_port, server2.auth_port)
157
- assert_equal(server2.default_accounting, server2.accounting)
158
- assert_equal(server2.default_authentication, server2.authentication)
274
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
275
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
276
+
277
+ if platform != :ios_xr
278
+ # Default checking
279
+ assert_equal(server.default_accounting, server.accounting)
280
+ assert_equal(server.default_authentication, server.authentication)
281
+ assert_equal(server2.default_accounting, server2.accounting)
282
+ assert_equal(server2.default_authentication, server2.authentication)
159
283
 
160
- server.accounting = true
161
- assert(Cisco::RadiusServer.radiusservers[id].accounting)
284
+ server.accounting = true
285
+ assert(Cisco::RadiusServer.radiusservers[id].accounting)
162
286
 
163
- server.authentication = true
164
- assert(Cisco::RadiusServer.radiusservers[id].authentication)
287
+ server.authentication = true
288
+ assert(Cisco::RadiusServer.radiusservers[id].authentication)
165
289
 
166
- server.acct_port = 44
167
- assert_equal(44, Cisco::RadiusServer.radiusservers[id].acct_port)
290
+ server.acct_port = 66
291
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id].acct_port)
168
292
 
169
- server.auth_port = 55
170
- assert_equal(55, Cisco::RadiusServer.radiusservers[id].auth_port)
293
+ server.auth_port = 77
294
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id].auth_port)
295
+
296
+ server.key_set('44444444', nil)
297
+ assert_equal('44444444', Cisco::RadiusServer.radiusservers[id].key)
298
+ assert_equal('44444444', server.key)
299
+ else
300
+ assert_nil(server.accounting)
301
+ assert_raises(Cisco::UnsupportedError) do
302
+ server.accounting = true
303
+ end
304
+
305
+ assert_nil(server.authentication)
306
+ assert_raises(Cisco::UnsupportedError) do
307
+ server.authentication = true
308
+ end
309
+ end
171
310
 
172
311
  server.retransmit_count = 3
173
312
  assert_equal(3, Cisco::RadiusServer.radiusservers[id].retransmit_count)
174
313
 
175
- server.key_set('44444444', nil)
176
- assert_equal('44444444', Cisco::RadiusServer.radiusservers[id].key)
177
- assert_equal('44444444', server.key)
314
+ assert_equal(44, Cisco::RadiusServer.radiusservers[id2].acct_port)
315
+ assert_equal(55, Cisco::RadiusServer.radiusservers[id2].auth_port)
178
316
 
179
- server2.accounting = true
180
- assert(Cisco::RadiusServer.radiusservers[id2].accounting)
317
+ if platform != :ios_xr
318
+ server2.accounting = true
319
+ assert(Cisco::RadiusServer.radiusservers[id2].accounting)
181
320
 
182
- server2.authentication = true
183
- assert(Cisco::RadiusServer.radiusservers[id2].authentication)
321
+ server2.authentication = true
322
+ assert(Cisco::RadiusServer.radiusservers[id2].authentication)
184
323
 
185
- server2.acct_port = 44
186
- assert_equal(44, Cisco::RadiusServer.radiusservers[id2].acct_port)
324
+ server2.acct_port = 66
325
+ assert_equal(66, Cisco::RadiusServer.radiusservers[id2].acct_port)
187
326
 
188
- server2.auth_port = 55
189
- assert_equal(55, Cisco::RadiusServer.radiusservers[id2].auth_port)
327
+ server2.auth_port = 77
328
+ assert_equal(77, Cisco::RadiusServer.radiusservers[id2].auth_port)
329
+
330
+ server2.key_set('44444444', nil)
331
+ assert_equal('44444444', Cisco::RadiusServer.radiusservers[id2].key)
332
+ else
333
+ assert_nil(server.accounting)
334
+ assert_raises(Cisco::UnsupportedError) do
335
+ server2.accounting = true
336
+ end
337
+
338
+ assert_nil(server.authentication)
339
+ assert_raises(Cisco::UnsupportedError) do
340
+ server2.authentication = true
341
+ end
342
+ end
190
343
 
191
344
  server2.retransmit_count = 3
192
345
  assert_equal(3, Cisco::RadiusServer.radiusservers[id2].retransmit_count)
193
346
 
194
- server2.key_set('44444444', nil)
195
- assert_equal('44444444', Cisco::RadiusServer.radiusservers[id2].key)
196
-
197
- # Setting back to default and re-checking
198
- server.acct_port = server.default_acct_port
199
- server.auth_port = server.default_auth_port
200
- server.accounting = server.default_accounting
201
- server.authentication = server.default_authentication
202
- server2.acct_port = server2.default_acct_port
203
- server2.auth_port = server2.default_auth_port
204
- server2.accounting = server2.default_accounting
205
- server2.authentication = server2.default_authentication
206
- assert_equal(server.default_acct_port, server.acct_port)
207
- assert_equal(server.default_auth_port, server.auth_port)
208
- assert_equal(server.default_accounting, server.accounting)
209
- assert_equal(server.default_authentication, server.authentication)
210
- assert_equal(server2.default_acct_port, server2.acct_port)
211
- assert_equal(server2.default_auth_port, server2.auth_port)
212
- assert_equal(server2.default_accounting, server2.accounting)
213
- assert_equal(server2.default_authentication, server2.authentication)
347
+ if platform != :ios_xr
348
+ # Setting back to default and re-checking
349
+ server.acct_port = server.default_acct_port
350
+ server.auth_port = server.default_auth_port
351
+ server.accounting = server.default_accounting
352
+ server.authentication = server.default_authentication
353
+ server2.acct_port = server2.default_acct_port
354
+ server2.auth_port = server2.default_auth_port
355
+ server2.accounting = server2.default_accounting
356
+ server2.authentication = server2.default_authentication
357
+ assert_equal(server.default_acct_port, server.acct_port)
358
+ assert_equal(server.default_auth_port, server.auth_port)
359
+ assert_equal(server.default_accounting, server.accounting)
360
+ assert_equal(server.default_authentication, server.authentication)
361
+ assert_equal(server2.default_acct_port, server2.acct_port)
362
+ assert_equal(server2.default_auth_port, server2.auth_port)
363
+ assert_equal(server2.default_accounting, server2.accounting)
364
+ assert_equal(server2.default_authentication, server2.authentication)
365
+ end
214
366
 
215
367
  server.destroy
216
368
  server2.destroy