cisco_node_utils 1.10.0 → 2.0.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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/CHANGELOG.md +25 -0
- data/lib/cisco_node_utils/bgp.rb +1 -1
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +11 -3
- data/lib/cisco_node_utils/client/nxapi/client.rb +40 -6
- data/lib/cisco_node_utils/cmd_ref/acl.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/banner.yaml +5 -1
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +8 -1
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +5 -0
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/route_map.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/vtp.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +30 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +9 -2
- data/lib/cisco_node_utils/command_reference.rb +2 -2
- data/lib/cisco_node_utils/dhcp_relay_global.rb +1 -5
- data/lib/cisco_node_utils/feature.rb +30 -4
- data/lib/cisco_node_utils/interface.rb +3 -3
- data/lib/cisco_node_utils/interface_service_vni.rb +1 -1
- data/lib/cisco_node_utils/node.rb +11 -22
- data/lib/cisco_node_utils/node_util.rb +1 -1
- data/lib/cisco_node_utils/radius_global.rb +3 -3
- data/lib/cisco_node_utils/radius_server.rb +1 -2
- data/lib/cisco_node_utils/route_map.rb +1 -1
- data/lib/cisco_node_utils/router_ospf_vrf.rb +49 -5
- data/lib/cisco_node_utils/tacacs_global.rb +1 -2
- data/lib/cisco_node_utils/tacacs_server.rb +1 -2
- data/lib/cisco_node_utils/tacacs_server_host.rb +1 -2
- data/lib/cisco_node_utils/version.rb +1 -1
- data/lib/cisco_node_utils/vlan.rb +1 -1
- data/lib/cisco_node_utils/vxlan_vtep.rb +89 -4
- data/lib/cisco_node_utils/vxlan_vtep_vni.rb +32 -1
- data/spec/schema.yaml +2 -0
- data/tests/basetest.rb +40 -4
- data/tests/ciscotest.rb +15 -5
- data/tests/cmd_config.yaml +0 -2
- data/tests/test_acl.rb +1 -1
- data/tests/test_bgp_af.rb +6 -0
- data/tests/test_feature.rb +30 -4
- data/tests/test_interface.rb +5 -7
- data/tests/test_interface_ospf.rb +5 -1
- data/tests/test_interface_private_vlan.rb +18 -1
- data/tests/test_interface_svi.rb +1 -1
- data/tests/test_interface_switchport.rb +4 -7
- data/tests/test_node_ext.rb +1 -1
- data/tests/test_nxapi.rb +18 -8
- data/tests/test_radius_global.rb +3 -2
- data/tests/test_route_map.rb +2 -4
- data/tests/test_router_bgp.rb +10 -14
- data/tests/test_router_ospf_vrf.rb +61 -0
- data/tests/test_snmpserver.rb +1 -1
- data/tests/test_tacacs_global.rb +4 -2
- data/tests/test_upgrade.rb +1 -1
- data/tests/test_vrf.rb +2 -0
- data/tests/test_vrf_af.rb +2 -0
- data/tests/test_vtp.rb +6 -4
- data/tests/test_vxlan_vtep.rb +93 -1
- data/tests/test_vxlan_vtep_vni.rb +35 -1
- data/tests/yum_package.yaml +5 -0
- metadata +3 -3
data/tests/test_route_map.rb
CHANGED
@@ -152,11 +152,9 @@ class TestRouteMap < CiscoTestCase
|
|
152
152
|
def test_match_src_proto
|
153
153
|
rm = create_route_map
|
154
154
|
assert_equal(rm.default_match_src_proto, rm.match_src_proto)
|
155
|
-
array = %w(tcp udp igmp)
|
155
|
+
array = %w(tcp udp igmp).sort
|
156
156
|
rm.match_src_proto = array
|
157
|
-
|
158
|
-
# Sorting arrays to check equality.
|
159
|
-
assert_equal(array.sort, rm.match_src_proto.sort)
|
157
|
+
assert_equal(array, rm.match_src_proto)
|
160
158
|
rm.match_src_proto = rm.default_match_src_proto
|
161
159
|
assert_equal(rm.default_match_src_proto, rm.match_src_proto)
|
162
160
|
end
|
data/tests/test_router_bgp.rb
CHANGED
@@ -55,7 +55,8 @@ def setup_default
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def setup_vrf
|
58
|
-
|
58
|
+
# nexus does not support multiple BGP instances; VRF AS must be same as default AS
|
59
|
+
@asnum = platform == :nexus ? 55 : 99
|
59
60
|
@vrf = 'yamllll'
|
60
61
|
create_bgp_vrf(@asnum, @vrf)
|
61
62
|
end
|
@@ -256,24 +257,18 @@ class TestRouterBgp < CiscoTestCase
|
|
256
257
|
end
|
257
258
|
|
258
259
|
def test_nsr
|
260
|
+
skip_if_UnsupportedCmdRef('bgp', 'nsr')
|
259
261
|
nsr(setup_default)
|
260
262
|
nsr(setup_vrf)
|
261
263
|
end
|
262
264
|
|
263
265
|
def nsr(bgp)
|
264
|
-
if
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
else
|
271
|
-
assert_nil(bgp.default_nsr,
|
272
|
-
'default bgp nsr should return nil on XR with non-default' \
|
273
|
-
' vrf')
|
274
|
-
assert_nil(bgp.nsr,
|
275
|
-
'bgp nsr should return nil on XR with non-default vrf')
|
276
|
-
end
|
266
|
+
if platform == :ios_xr && !@vrf[/default/]
|
267
|
+
assert_nil(bgp.default_nsr,
|
268
|
+
'default bgp nsr should return nil on XR with non-default' \
|
269
|
+
' vrf')
|
270
|
+
assert_nil(bgp.nsr,
|
271
|
+
'bgp nsr should return nil on XR with non-default vrf')
|
277
272
|
assert_raises(Cisco::UnsupportedError) do
|
278
273
|
bgp.nsr = true
|
279
274
|
end
|
@@ -1100,6 +1095,7 @@ class TestRouterBgp < CiscoTestCase
|
|
1100
1095
|
assert_nil(bgp.reconnect_interval,
|
1101
1096
|
'reconnect_interval should return nil on XR')
|
1102
1097
|
else
|
1098
|
+
skip_if_UnsupportedCmdRef('bgp', 'reconnect_interval')
|
1103
1099
|
skip_incompat_version?('bgp', 'reconnect_interval')
|
1104
1100
|
assert_equal(bgp.default_reconnect_interval, bgp.reconnect_interval,
|
1105
1101
|
"reconnect_interval should be set to default value of '60'")
|
@@ -32,6 +32,67 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
32
32
|
super
|
33
33
|
end
|
34
34
|
|
35
|
+
def test_redistribute
|
36
|
+
routers = %w(alpha beta)
|
37
|
+
vrfs = %w(default zed)
|
38
|
+
routers.each do |rtr|
|
39
|
+
vrfs.each do |vrf|
|
40
|
+
dbg = sprintf('[RTR %s VRF %s]', rtr, vrf)
|
41
|
+
af = RouterOspfVrf.new(rtr, vrf)
|
42
|
+
redistribute_cmd(af, dbg)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def redistribute_cmd(af, dbg)
|
48
|
+
# rubocop:disable Style/WordArray
|
49
|
+
# Initial 'should' state
|
50
|
+
master = [['direct', 'rm_direct'],
|
51
|
+
['lisp', 'rm_lisp'],
|
52
|
+
['static', 'rm_static'],
|
53
|
+
['eigrp 1', 'rm_eigrp'],
|
54
|
+
['isis 2', 'rm_isis'],
|
55
|
+
['ospf 3', 'rm_ospf'],
|
56
|
+
['rip 4', 'rm_rip'],
|
57
|
+
['bgp 5', 'rm_bgp']]
|
58
|
+
# rubocop:enable Style/WordArray
|
59
|
+
|
60
|
+
# Test: Add all protocols w/route-maps when no cmds are present
|
61
|
+
should = master.clone
|
62
|
+
af.redistribute = should
|
63
|
+
result = af.redistribute
|
64
|
+
assert_equal(should.sort, result.sort,
|
65
|
+
"#{dbg} Test 1. From empty, to all protocols")
|
66
|
+
|
67
|
+
# Test: remove half of the protocols
|
68
|
+
should.shift(4)
|
69
|
+
af.redistribute = should
|
70
|
+
result = af.redistribute
|
71
|
+
assert_equal(should.sort, result.sort,
|
72
|
+
"#{dbg} Test 2. Remove half of the protocols")
|
73
|
+
|
74
|
+
# Test: restore the removed protocols
|
75
|
+
should = master.clone
|
76
|
+
af.redistribute = should
|
77
|
+
result = af.redistribute
|
78
|
+
assert_equal(should.sort, result.sort,
|
79
|
+
"#{dbg} Test 3. Restore the removed protocols")
|
80
|
+
|
81
|
+
# Test: Change route-maps on existing commands
|
82
|
+
should = master.map { |prot_only, rm| [prot_only, "#{rm}_2"] }
|
83
|
+
af.redistribute = should
|
84
|
+
result = af.redistribute
|
85
|
+
assert_equal(should.sort, result.sort,
|
86
|
+
"#{dbg} Test 4. Change route-maps on existing commands")
|
87
|
+
|
88
|
+
# Test: 'default'
|
89
|
+
should = af.default_redistribute
|
90
|
+
af.redistribute = should
|
91
|
+
result = af.redistribute
|
92
|
+
assert_equal(should.sort, result.sort,
|
93
|
+
"#{dbg} Test 5. 'Default'")
|
94
|
+
end
|
95
|
+
|
35
96
|
def assert_match_vrf_line(routername, vrfname, cmd=nil)
|
36
97
|
match_vrf_line(routername, vrfname, cmd, true)
|
37
98
|
end
|
data/tests/test_snmpserver.rb
CHANGED
@@ -155,7 +155,7 @@ class TestSnmpServer < CiscoTestCase
|
|
155
155
|
end
|
156
156
|
|
157
157
|
def test_packet_size
|
158
|
-
skip_legacy_defect?('7.0.3.I2.2e|7.0.3.I2.5|7.0.3.I3.1',
|
158
|
+
skip_legacy_defect?('7.0.3.I2.2e|7.0.3.I2.5|7.0.3.I3.1|7.3.2.D',
|
159
159
|
'CSCuz14217: CLI shows default snmp packet-size incorrectly as 0')
|
160
160
|
|
161
161
|
if validate_property_excluded?('snmp_server', 'packet_size')
|
data/tests/test_tacacs_global.rb
CHANGED
@@ -75,7 +75,8 @@ class TestTacacsGlobal < CiscoTestCase
|
|
75
75
|
global.encryption_key_set(nil, key)
|
76
76
|
# Device encypts key - verify return value
|
77
77
|
assert_equal(7, global.key_format)
|
78
|
-
|
78
|
+
key = 'WAWY_NZB'
|
79
|
+
assert_equal(key, global.key)
|
79
80
|
|
80
81
|
skip_versions = ['7.0.3.(I2|I3)', '7.0.3.I4.[1-7]']
|
81
82
|
if step_unless_legacy_defect(skip_versions, 'CSCvh72911: Cannot configure tacacs-server key 6')
|
@@ -85,7 +86,8 @@ class TestTacacsGlobal < CiscoTestCase
|
|
85
86
|
key = 'JDYkqyIFWeBvzpljSfWmRZrmRSRE8'
|
86
87
|
global.encryption_key_set(key_format, key)
|
87
88
|
assert_equal(key_format, global.key_format)
|
88
|
-
|
89
|
+
|
90
|
+
assert_equal(key, global.key)
|
89
91
|
end
|
90
92
|
|
91
93
|
# Remove global key
|
data/tests/test_upgrade.rb
CHANGED
data/tests/test_vrf.rb
CHANGED
data/tests/test_vrf_af.rb
CHANGED
@@ -210,6 +210,8 @@ class TestVrfAf < CiscoTestCase
|
|
210
210
|
should = v.default_route_target_import
|
211
211
|
route_target_tester(v, af, opts, should, 'Test 4')
|
212
212
|
v.destroy
|
213
|
+
rescue RuntimeError => e
|
214
|
+
hardware_supports_feature?(e.message)
|
213
215
|
end
|
214
216
|
|
215
217
|
def route_target_tester(v, af, opts, should, test_id)
|
data/tests/test_vtp.rb
CHANGED
@@ -175,14 +175,16 @@ class TestVtp < CiscoTestCase
|
|
175
175
|
end
|
176
176
|
|
177
177
|
# this fails on n7k running 7.3(0)D1.1 image but it
|
178
|
-
# is fixed in later releases. The bugID is CSCuy87970
|
178
|
+
# is fixed in some later releases. The bugID is CSCuy87970
|
179
179
|
# which is already verified.
|
180
180
|
def test_password_special_characters
|
181
|
-
skip_legacy_defect?('7.3.
|
181
|
+
skip_legacy_defect?('7.3.[012].(N1|D1)',
|
182
182
|
'CSCuy87970: NXAPI incorrect backslash escape')
|
183
|
+
# N6k output may triple-escape forward slashes. For now simplify pattern.
|
184
|
+
test_pass = node.product_id[/N[56]/] ? 'hello!//#%$x' : 'hello!//\\#%$x'
|
183
185
|
vtp = vtp_domain('password')
|
184
|
-
vtp.password =
|
185
|
-
assert_equal(
|
186
|
+
vtp.password = test_pass
|
187
|
+
assert_equal(test_pass, vtp.password)
|
186
188
|
end
|
187
189
|
|
188
190
|
def test_filename_valid
|
data/tests/test_vxlan_vtep.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2013-
|
1
|
+
# Copyright (c) 2013-2018 Cisco and/or its affiliates.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -24,9 +24,11 @@ include Cisco
|
|
24
24
|
class TestVxlanVtep < CiscoTestCase
|
25
25
|
@skip_unless_supported = 'vxlan_vtep'
|
26
26
|
@@pre_clean_needed = true # rubocop:disable Style/ClassVars
|
27
|
+
@@feature_unsupported = false # rubocop:disable Style/ClassVars
|
27
28
|
|
28
29
|
def setup
|
29
30
|
super
|
31
|
+
skip('setup: Feature is unsupported on this device') if @@feature_unsupported
|
30
32
|
skip('Platform does not support MT-full or MT-lite') unless
|
31
33
|
VxlanVtep.mt_full_support || VxlanVtep.mt_lite_support
|
32
34
|
Interface.interfaces(:nve).each { |_nve, obj| obj.destroy }
|
@@ -34,6 +36,10 @@ class TestVxlanVtep < CiscoTestCase
|
|
34
36
|
feature_cleanup if @@pre_clean_needed
|
35
37
|
Feature.nv_overlay_enable
|
36
38
|
@@pre_clean_needed = false # rubocop:disable Style/ClassVars
|
39
|
+
rescue RuntimeError => e
|
40
|
+
# Skip locally to shortcut the dependencies above for the next test
|
41
|
+
@@feature_unsupported = hardware_supports_feature?(e.message, status_only: true) # rubocop:disable Style/ClassVars
|
42
|
+
@@feature_unsupported ? skip(e.message) : raise(e.message)
|
37
43
|
end
|
38
44
|
|
39
45
|
def teardown
|
@@ -232,4 +238,90 @@ class TestVxlanVtep < CiscoTestCase
|
|
232
238
|
vtep.source_interface_hold_down_time = val
|
233
239
|
assert_equal(val, vtep.source_interface_hold_down_time)
|
234
240
|
end
|
241
|
+
|
242
|
+
def test_global_ingress_replication_bgp
|
243
|
+
skip_incompat_version?('vxlan_vtep', 'global_ingress_replication_bgp')
|
244
|
+
|
245
|
+
vtep = VxlanVtep.new('nve1')
|
246
|
+
vtep.host_reachability = 'evpn'
|
247
|
+
if validate_property_excluded?('vxlan_vtep', 'global_ingress_replication_bgp')
|
248
|
+
assert_raises(Cisco::UnsupportedError) { vtep.global_ingress_replication_bgp = true }
|
249
|
+
return
|
250
|
+
end
|
251
|
+
|
252
|
+
# Test: Check global_ingress_replication_bgp is not configured.
|
253
|
+
refute(vtep.global_ingress_replication_bgp, 'global_ingress_replication_bgp should be disabled')
|
254
|
+
|
255
|
+
# Test: Enable global_ingress_replication_bgp
|
256
|
+
vtep.global_ingress_replication_bgp = true
|
257
|
+
assert(vtep.global_ingress_replication_bgp, 'global_ingress_replication_bgp should be enabled')
|
258
|
+
# Test: Default
|
259
|
+
vtep.global_ingress_replication_bgp = vtep.default_global_ingress_replication_bgp
|
260
|
+
refute(vtep.global_ingress_replication_bgp, 'global_ingress_replication_bgp should be disabled')
|
261
|
+
end
|
262
|
+
|
263
|
+
def test_global_suppress_arp
|
264
|
+
skip_incompat_version?('vxlan_vtep', 'global_suppress_arp')
|
265
|
+
|
266
|
+
vtep = VxlanVtep.new('nve1')
|
267
|
+
vtep.host_reachability = 'evpn'
|
268
|
+
if validate_property_excluded?('vxlan_vtep', 'global_suppress_arp')
|
269
|
+
assert_raises(Cisco::UnsupportedError) { vtep.global_suppress_arp = true }
|
270
|
+
return
|
271
|
+
end
|
272
|
+
|
273
|
+
# Test: Check global_suppress_arp is not configured.
|
274
|
+
refute(vtep.global_suppress_arp, 'global_suppress_arp should be disabled')
|
275
|
+
|
276
|
+
# Test: Enable global_suppress_arp
|
277
|
+
begin
|
278
|
+
vtep.global_suppress_arp = true
|
279
|
+
rescue CliError => e
|
280
|
+
skip(e.to_s) if /ERROR: Please configure TCAM/.match(e.to_s)
|
281
|
+
end
|
282
|
+
assert(vtep.global_suppress_arp, 'global_suppress_arp should be enabled')
|
283
|
+
# Test: Default
|
284
|
+
vtep.global_suppress_arp = vtep.default_global_suppress_arp
|
285
|
+
refute(vtep.global_suppress_arp, 'global_suppress_arp should be disabled')
|
286
|
+
end
|
287
|
+
|
288
|
+
def test_global_mcast_group_l2
|
289
|
+
vtep = VxlanVtep.new('nve1')
|
290
|
+
if validate_property_excluded?('vxlan_vtep', 'global_mcast_group_l2')
|
291
|
+
assert_raises(Cisco::UnsupportedError) do
|
292
|
+
vtep.global_mcast_group_l2 = '225.1.1.1'
|
293
|
+
end
|
294
|
+
return
|
295
|
+
end
|
296
|
+
skip_incompat_version?('vxlan_vtep', 'global_mcast_group_l2')
|
297
|
+
|
298
|
+
assert_equal(vtep.global_mcast_group_l2, vtep.default_global_mcast_group_l2)
|
299
|
+
vtep.global_mcast_group_l2 = '225.1.1.1'
|
300
|
+
assert_equal('225.1.1.1', vtep.global_mcast_group_l2)
|
301
|
+
vtep.global_mcast_group_l2 = vtep.default_global_mcast_group_l2
|
302
|
+
assert_equal(vtep.global_mcast_group_l2, vtep.default_global_mcast_group_l2)
|
303
|
+
end
|
304
|
+
|
305
|
+
def test_global_mcast_group_l3
|
306
|
+
vtep = VxlanVtep.new('nve1')
|
307
|
+
if validate_property_excluded?('vxlan_vtep', 'global_mcast_group_l3')
|
308
|
+
assert_raises(Cisco::UnsupportedError) do
|
309
|
+
vtep.global_mcast_group_l3 = '225.1.1.1'
|
310
|
+
end
|
311
|
+
return
|
312
|
+
end
|
313
|
+
skip_incompat_version?('vxlan_vtep', 'global_mcast_group_l3')
|
314
|
+
|
315
|
+
assert_equal(vtep.global_mcast_group_l3, vtep.default_global_mcast_group_l3)
|
316
|
+
|
317
|
+
begin
|
318
|
+
# global_mcast_group_l3 is only supported on certain vxlan capable N9ks
|
319
|
+
vtep.global_mcast_group_l3 = '225.1.1.1'
|
320
|
+
rescue CliError => e
|
321
|
+
skip(e.to_s) if /TRM not supported on this platform/.match(e.to_s)
|
322
|
+
end
|
323
|
+
assert_equal('225.1.1.1', vtep.global_mcast_group_l3)
|
324
|
+
vtep.global_mcast_group_l3 = vtep.default_global_mcast_group_l3
|
325
|
+
assert_equal(vtep.global_mcast_group_l3, vtep.default_global_mcast_group_l3)
|
326
|
+
end
|
235
327
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2013-
|
1
|
+
# Copyright (c) 2013-2018 Cisco and/or its affiliates.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -23,15 +23,21 @@ include Cisco
|
|
23
23
|
class TestVxlanVtepVni < CiscoTestCase
|
24
24
|
@skip_unless_supported = 'vxlan_vtep_vni'
|
25
25
|
@@pre_clean_needed = true # rubocop:disable Style/ClassVars
|
26
|
+
@@feature_unsupported = false # rubocop:disable Style/ClassVars
|
26
27
|
|
27
28
|
def setup
|
28
29
|
super
|
30
|
+
skip('setup: Feature is unsupported on this device') if @@feature_unsupported
|
29
31
|
vdc_limit_f3_no_intf_needed(:set) if VxlanVtep.mt_full_support
|
30
32
|
Interface.interfaces(:nve).each { |_nve, obj| obj.destroy }
|
31
33
|
feature_cleanup if @@pre_clean_needed
|
32
34
|
Feature.nv_overlay_enable
|
33
35
|
config_no_warn('feature vn-segment-vlan-based') if VxlanVtep.mt_lite_support
|
34
36
|
@@pre_clean_needed = false # rubocop:disable Style/ClassVars
|
37
|
+
rescue RuntimeError => e
|
38
|
+
# Skip locally to shortcut the dependencies above for the next test
|
39
|
+
@@feature_unsupported = hardware_supports_feature?(e.message, status_only: true) # rubocop:disable Style/ClassVars
|
40
|
+
@@feature_unsupported ? skip(e.message) : raise(e.message)
|
35
41
|
end
|
36
42
|
|
37
43
|
def teardown
|
@@ -237,6 +243,34 @@ class TestVxlanVtepVni < CiscoTestCase
|
|
237
243
|
refute(vni.suppress_arp, 'suppress_arp should be disabled')
|
238
244
|
end
|
239
245
|
|
246
|
+
def test_suppress_arp_disable
|
247
|
+
skip_incompat_version?('vxlan_vtep_vni', 'suppress_arp_disable')
|
248
|
+
vni = VxlanVtepVni.new('nve1', '6000')
|
249
|
+
VxlanVtep.new('nve1').host_reachability = 'evpn'
|
250
|
+
|
251
|
+
if validate_property_excluded?('vxlan_vtep_vni', 'suppress_arp_disable')
|
252
|
+
assert_raises(Cisco::UnsupportedError) { vni.suppress_arp_disable = true }
|
253
|
+
return
|
254
|
+
end
|
255
|
+
|
256
|
+
# Test: Check suppress_arp_disable is not configured.
|
257
|
+
refute(vni.suppress_arp_disable, 'suppress_arp_disable should be disabled')
|
258
|
+
|
259
|
+
begin
|
260
|
+
# Test: Enable suppress_arp_disable
|
261
|
+
vni.suppress_arp_disable = true
|
262
|
+
assert(vni.suppress_arp_disable, 'suppress_arp_disable should be enabled')
|
263
|
+
rescue CliError => e
|
264
|
+
msg = 'TCAM reconfiguration required followed by reload' \
|
265
|
+
" Skipping test case.\n#{e}"
|
266
|
+
skip(msg) if /ERROR: Please configure TCAM/.match(e.to_s)
|
267
|
+
end
|
268
|
+
|
269
|
+
# Test: Default
|
270
|
+
vni.suppress_arp_disable = vni.default_suppress_arp_disable
|
271
|
+
refute(vni.suppress_arp_disable, 'suppress_arp_disable should be disabled')
|
272
|
+
end
|
273
|
+
|
240
274
|
def test_suppress_uuc
|
241
275
|
vni = VxlanVtepVni.new('nve1', '6000')
|
242
276
|
VxlanVtep.new('nve1').host_reachability = 'evpn'
|
data/tests/yum_package.yaml
CHANGED
@@ -43,6 +43,11 @@
|
|
43
43
|
name: 'nxos.sample-n9k_EOR'
|
44
44
|
version: '1.0.0-7.0.3.I4.6'
|
45
45
|
|
46
|
+
7_0_3_I4_8_:
|
47
|
+
filename: 'nxos.sample-n9k_EOR-1.0.0-7.0.3.I4.8.lib32_n9000.rpm'
|
48
|
+
name: 'nxos.sample-n9k_EOR'
|
49
|
+
version: '1.0.0-7.0.3.I4.8'
|
50
|
+
|
46
51
|
7_0_3_I5_1_:
|
47
52
|
filename: 'nxos.sample-n9k_ALL-1.0.0-7.0.3.I5.1.lib32_n9000.rpm'
|
48
53
|
name: 'nxos.sample-n9k_ALL'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cisco_node_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Gries
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date:
|
18
|
+
date: 2019-02-14 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: bundler
|
@@ -517,7 +517,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
517
517
|
version: 2.1.0
|
518
518
|
requirements: []
|
519
519
|
rubyforge_project:
|
520
|
-
rubygems_version: 2.2.
|
520
|
+
rubygems_version: 2.5.2.1
|
521
521
|
signing_key:
|
522
522
|
specification_version: 4
|
523
523
|
summary: Utilities for management of Cisco network nodes
|