cisco_node_utils 1.7.0 → 1.8.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/CHANGELOG.md +36 -0
- data/CONTRIBUTING.md +2 -2
- data/README.md +2 -1
- data/cisco_node_utils.gemspec +1 -0
- data/docs/README-develop-node-utils-APIs.md +2 -1
- data/lib/cisco_node_utils/aaa_authentication_login_service.rb +2 -2
- data/lib/cisco_node_utils/ace.rb +2 -0
- data/lib/cisco_node_utils/bgp.rb +34 -91
- data/lib/cisco_node_utils/bridge_domain.rb +8 -13
- data/lib/cisco_node_utils/client/nxapi/client.rb +10 -3
- data/lib/cisco_node_utils/cmd_ref/DEPRECATED.yaml +12 -12
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +2 -1
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +1 -0
- data/lib/cisco_node_utils/cmd_ref/bfd_global.yaml +3 -3
- data/lib/cisco_node_utils/cmd_ref/bgp.yaml +5 -15
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +1 -0
- data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +14 -36
- data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/dhcp_relay_global.yaml +5 -3
- data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +3 -3
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +25 -15
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +5 -0
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +9 -0
- data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/object_group.yaml +32 -0
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +9 -7
- data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/route_map.yaml +26 -25
- data/lib/cisco_node_utils/cmd_ref/show_version.yaml +11 -3
- data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +4 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +5 -1
- data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +8 -8
- data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +3 -2
- data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +21 -1
- data/lib/cisco_node_utils/cmd_ref/tacacs_global.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +1 -1
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +5 -4
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +9 -9
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +1 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +1 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +3 -5
- data/lib/cisco_node_utils/command_reference.rb +11 -1
- data/lib/cisco_node_utils/interface.rb +46 -8
- data/lib/cisco_node_utils/interface_ospf.rb +2 -2
- data/lib/cisco_node_utils/interface_portchannel.rb +2 -2
- data/lib/cisco_node_utils/node.rb +9 -0
- data/lib/cisco_node_utils/ntp_auth_key.rb +1 -1
- data/lib/cisco_node_utils/object_group.rb +75 -0
- data/lib/cisco_node_utils/object_group_entry.rb +143 -0
- data/lib/cisco_node_utils/portchannel_global.rb +2 -2
- data/lib/cisco_node_utils/radius_global.rb +25 -1
- data/lib/cisco_node_utils/router_ospf.rb +3 -3
- data/lib/cisco_node_utils/syslog_server.rb +38 -42
- data/lib/cisco_node_utils/syslog_settings.rb +74 -3
- data/lib/cisco_node_utils/tacacs_global.rb +47 -14
- data/lib/cisco_node_utils/tacacs_server.rb +1 -5
- data/lib/cisco_node_utils/version.rb +1 -1
- data/lib/cisco_node_utils/vpc.rb +1 -4
- data/lib/cisco_node_utils/vtp.rb +4 -2
- data/spec/schema.yaml +3 -0
- data/tests/ciscotest.rb +16 -9
- data/tests/test_ace.rb +2 -0
- data/tests/test_bgp_af.rb +10 -2
- data/tests/test_bgp_neighbor_af.rb +6 -2
- data/tests/test_bridge_domain.rb +7 -0
- data/tests/test_feature.rb +2 -2
- data/tests/test_interface.rb +30 -4
- data/tests/test_node_ext.rb +2 -2
- data/tests/test_object_group.rb +122 -0
- data/tests/test_platform.rb +1 -1
- data/tests/test_portchannel_global.rb +1 -0
- data/tests/test_radius_global.rb +22 -2
- data/tests/test_route_map.rb +11 -8
- data/tests/test_router_bgp.rb +7 -132
- data/tests/test_router_ospf_area.rb +6 -6
- data/tests/test_snmpuser.rb +19 -11
- data/tests/test_syslog_server.rb +11 -31
- data/tests/test_syslog_settings.rb +46 -5
- data/tests/test_tacacs_global.rb +42 -18
- data/tests/test_vpc.rb +3 -0
- data/tests/test_vxlan_vtep_vni.rb +0 -3
- data/tests/yum_package.yaml +5 -0
- metadata +21 -3
|
@@ -52,16 +52,16 @@ class TestRouterOspfArea < CiscoTestCase
|
|
|
52
52
|
av.stub = true
|
|
53
53
|
assert_equal(2, RouterOspfArea.areas['Wolfpack'].size)
|
|
54
54
|
av.destroy
|
|
55
|
-
# on
|
|
55
|
+
# on n(3|9)k-f (only), we cannot remove "area <area> default-cost 1",
|
|
56
56
|
# unless the entire ospf router is removed. The default value of
|
|
57
57
|
# default_cost is 1 and so this is just a cosmetic issue but
|
|
58
58
|
# need to skip the below test as the size will be wrong.
|
|
59
59
|
# platform as the size will be wrong. bug ID: CSCva04066
|
|
60
60
|
assert_equal(1, RouterOspfArea.areas['Wolfpack'].size) unless
|
|
61
|
-
/
|
|
61
|
+
/N(3|9)K.*-F/ =~ node.product_id
|
|
62
62
|
ad.destroy
|
|
63
63
|
assert_empty(RouterOspfArea.areas) unless
|
|
64
|
-
/
|
|
64
|
+
/N(3|9)K.*-F/ =~ node.product_id
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def test_authentication
|
|
@@ -237,21 +237,21 @@ class TestRouterOspfArea < CiscoTestCase
|
|
|
237
237
|
assert_equal(ad.default_nssa_no_redistribution, ad.nssa_no_redistribution)
|
|
238
238
|
assert_equal(ad.default_nssa_no_summary, ad.nssa_no_summary)
|
|
239
239
|
assert_equal(ad.default_nssa_route_map, ad.nssa_route_map)
|
|
240
|
-
# on
|
|
240
|
+
# on n(3|9)k-f (only), we cannot configure
|
|
241
241
|
# "area <area> nssa default-information-originate",
|
|
242
242
|
# properly if we reset it first. It is only configuring nssa
|
|
243
243
|
# but not the other parameters. bug ID: CSCva11482
|
|
244
244
|
hash[:nssa_route_map] = 'aaa'
|
|
245
245
|
ad.nssa_set(hash)
|
|
246
246
|
assert_equal(true, ad.nssa)
|
|
247
|
-
if node.product_id[/
|
|
247
|
+
if node.product_id[/N(3|9)K-F/]
|
|
248
248
|
refute(ad.nssa_default_originate)
|
|
249
249
|
else
|
|
250
250
|
assert(ad.nssa_default_originate)
|
|
251
251
|
end
|
|
252
252
|
assert_equal(ad.default_nssa_no_redistribution, ad.nssa_no_redistribution)
|
|
253
253
|
assert_equal(ad.default_nssa_no_summary, ad.nssa_no_summary)
|
|
254
|
-
if node.product_id[/
|
|
254
|
+
if node.product_id[/N(3|9)K-F/]
|
|
255
255
|
refute_equal('aaa', ad.nssa_route_map)
|
|
256
256
|
else
|
|
257
257
|
assert_equal('aaa', ad.nssa_route_map)
|
data/tests/test_snmpuser.rb
CHANGED
|
@@ -44,18 +44,26 @@ class TestSnmpUser < CiscoTestCase
|
|
|
44
44
|
|
|
45
45
|
def remove_test_users
|
|
46
46
|
SnmpUser.users.values.each do |obj|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
obj.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
obj.
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
begin
|
|
48
|
+
# Delete users that are in current but also added by these tests.
|
|
49
|
+
if @@current_users.keys.include?(obj.name) && @test_users.include?(obj.name)
|
|
50
|
+
obj.destroy
|
|
51
|
+
# Delete users that are part of test.
|
|
52
|
+
elsif @test_users.include? obj.name
|
|
53
|
+
obj.destroy
|
|
54
|
+
# Do not delete users in current but not in test.
|
|
55
|
+
elsif @@current_users.keys.include? obj.name
|
|
56
|
+
next
|
|
57
|
+
else
|
|
58
|
+
# Delete if not in current or test.
|
|
59
|
+
obj.destroy
|
|
60
|
+
end
|
|
61
|
+
rescue CliError => e
|
|
62
|
+
puts e.message
|
|
63
|
+
puts "retry deleting the user #{obj.name}"
|
|
64
|
+
config("snmp-server user #{obj.name}")
|
|
65
|
+
config("no snmp-server user #{obj.name}")
|
|
55
66
|
next
|
|
56
|
-
else
|
|
57
|
-
# Delete if not in current or test.
|
|
58
|
-
obj.destroy
|
|
59
67
|
end
|
|
60
68
|
end
|
|
61
69
|
end
|
data/tests/test_syslog_server.rb
CHANGED
|
@@ -53,10 +53,9 @@ class TestSyslogServer < CiscoTestCase
|
|
|
53
53
|
id = '1.2.3.4'
|
|
54
54
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
55
55
|
|
|
56
|
-
server = Cisco::SyslogServer.new(id,
|
|
56
|
+
server = Cisco::SyslogServer.new({ 'name' => id, 'vrf' => 'default' }, true)
|
|
57
57
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
58
58
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
59
|
-
assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
|
|
60
59
|
|
|
61
60
|
server.destroy
|
|
62
61
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
@@ -66,10 +65,9 @@ class TestSyslogServer < CiscoTestCase
|
|
|
66
65
|
id = '2003::2'
|
|
67
66
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
68
67
|
|
|
69
|
-
server = Cisco::SyslogServer.new(id,
|
|
68
|
+
server = Cisco::SyslogServer.new({ 'name' => id, 'vrf' => 'default' }, true)
|
|
70
69
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
71
70
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
72
|
-
assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
|
|
73
71
|
|
|
74
72
|
server.destroy
|
|
75
73
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
@@ -81,14 +79,13 @@ class TestSyslogServer < CiscoTestCase
|
|
|
81
79
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
82
80
|
refute_includes(Cisco::SyslogServer.syslogservers, id2)
|
|
83
81
|
|
|
84
|
-
server = Cisco::SyslogServer.new(id,
|
|
85
|
-
server2 = Cisco::SyslogServer.new(id2,
|
|
82
|
+
server = Cisco::SyslogServer.new({ 'name' => id, 'vrf' => 'default' }, true)
|
|
83
|
+
server2 = Cisco::SyslogServer.new({ 'name' => id2, 'vrf' => 'default' },
|
|
84
|
+
true)
|
|
86
85
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
87
86
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
88
|
-
assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
|
|
89
87
|
assert_includes(Cisco::SyslogServer.syslogservers, id2)
|
|
90
88
|
assert_equal(server2, Cisco::SyslogServer.syslogservers[id2])
|
|
91
|
-
assert_equal(3, Cisco::SyslogServer.syslogservers[id2].level)
|
|
92
89
|
|
|
93
90
|
server.destroy
|
|
94
91
|
server2.destroy
|
|
@@ -96,7 +93,7 @@ class TestSyslogServer < CiscoTestCase
|
|
|
96
93
|
refute_includes(Cisco::SyslogServer.syslogservers, id2)
|
|
97
94
|
end
|
|
98
95
|
|
|
99
|
-
def
|
|
96
|
+
def test_create_options
|
|
100
97
|
if platform == :ios_xr
|
|
101
98
|
config('vrf red')
|
|
102
99
|
else
|
|
@@ -104,33 +101,16 @@ class TestSyslogServer < CiscoTestCase
|
|
|
104
101
|
end
|
|
105
102
|
|
|
106
103
|
id = '1.2.3.4'
|
|
104
|
+
options = { 'name' => id, 'level' => '4', 'port' => '2154', 'vrf' => 'red' }
|
|
107
105
|
|
|
108
106
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
109
107
|
|
|
110
|
-
server = Cisco::SyslogServer.new(
|
|
108
|
+
server = Cisco::SyslogServer.new(options, true)
|
|
111
109
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
112
110
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
113
|
-
assert_equal(4, Cisco::SyslogServer.syslogservers[id].level)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def test_create_destroy_single_vrf_ipv6
|
|
120
|
-
if platform == :ios_xr
|
|
121
|
-
config('vrf red')
|
|
122
|
-
else
|
|
123
|
-
config('vrf context red')
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
id = '2003::2'
|
|
127
|
-
|
|
128
|
-
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
129
|
-
|
|
130
|
-
server = Cisco::SyslogServer.new(id, 5, 'red', true)
|
|
131
|
-
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
132
|
-
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
133
|
-
assert_equal(5, Cisco::SyslogServer.syslogservers[id].level)
|
|
111
|
+
assert_equal('4', Cisco::SyslogServer.syslogservers[id].level)
|
|
112
|
+
assert_equal('2154', Cisco::SyslogServer.syslogservers[id].port)
|
|
113
|
+
assert_equal('red', Cisco::SyslogServer.syslogservers[id].vrf)
|
|
134
114
|
|
|
135
115
|
server.destroy
|
|
136
116
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
@@ -24,24 +24,27 @@ class TestSyslogSettings < CiscoTestCase
|
|
|
24
24
|
return if platform != :nexus
|
|
25
25
|
# setup runs at the beginning of each test
|
|
26
26
|
super
|
|
27
|
-
|
|
27
|
+
default_syslogsettings
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def teardown
|
|
31
31
|
return if platform != :nexus
|
|
32
32
|
# teardown runs at the end of each test
|
|
33
|
-
|
|
33
|
+
default_syslogsettings
|
|
34
34
|
super
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
def
|
|
37
|
+
def default_syslogsettings
|
|
38
38
|
# Turn the feature off for a clean test.
|
|
39
|
-
config('no logging timestamp seconds'
|
|
39
|
+
config('no logging timestamp seconds',
|
|
40
|
+
'logging console 2',
|
|
41
|
+
'logging monitor 5',
|
|
42
|
+
'no logging source-interface')
|
|
40
43
|
end
|
|
41
44
|
|
|
42
45
|
# TESTS
|
|
43
46
|
|
|
44
|
-
def
|
|
47
|
+
def test_timestamp
|
|
45
48
|
syslog_setting = Cisco::SyslogSettings.new('default')
|
|
46
49
|
|
|
47
50
|
if platform == :ios_xr
|
|
@@ -62,6 +65,44 @@ class TestSyslogSettings < CiscoTestCase
|
|
|
62
65
|
assert_equal('milliseconds',
|
|
63
66
|
syslog_setting.timestamp,
|
|
64
67
|
)
|
|
68
|
+
syslog_setting.time_stamp_units = 'seconds'
|
|
69
|
+
assert_equal('seconds',
|
|
70
|
+
syslog_setting.time_stamp_units,
|
|
71
|
+
)
|
|
65
72
|
end
|
|
66
73
|
end
|
|
74
|
+
|
|
75
|
+
def test_console
|
|
76
|
+
syslog_setting = Cisco::SyslogSettings.new('default')
|
|
77
|
+
|
|
78
|
+
# Some systems return the value and othesr get it from yaml - normalize
|
|
79
|
+
assert_equal(syslog_setting.default_console, syslog_setting.console.to_i)
|
|
80
|
+
assert_equal(2, syslog_setting.console)
|
|
81
|
+
syslog_setting.console = '1'
|
|
82
|
+
assert_equal('1', syslog_setting.console)
|
|
83
|
+
syslog_setting.console = nil
|
|
84
|
+
assert_equal('unset', syslog_setting.console)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test_monitor
|
|
88
|
+
syslog_setting = Cisco::SyslogSettings.new('default')
|
|
89
|
+
|
|
90
|
+
# Some systems return the value and othesr get it from yaml - normalize
|
|
91
|
+
assert_equal(syslog_setting.default_monitor, syslog_setting.monitor.to_i)
|
|
92
|
+
assert_equal('5', syslog_setting.monitor)
|
|
93
|
+
syslog_setting.monitor = '7'
|
|
94
|
+
assert_equal('7', syslog_setting.monitor)
|
|
95
|
+
syslog_setting.monitor = nil
|
|
96
|
+
assert_equal('unset', syslog_setting.monitor)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_source_interface
|
|
100
|
+
syslog_setting = Cisco::SyslogSettings.new('default')
|
|
101
|
+
|
|
102
|
+
assert_nil(syslog_setting.source_interface)
|
|
103
|
+
syslog_setting.source_interface = 'mgmt0'
|
|
104
|
+
assert_equal('mgmt0', syslog_setting.source_interface)
|
|
105
|
+
syslog_setting.source_interface = nil
|
|
106
|
+
assert_nil(syslog_setting.source_interface)
|
|
107
|
+
end
|
|
67
108
|
end
|
data/tests/test_tacacs_global.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Minitest for TacacsGlobal class
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2014-
|
|
4
|
+
# Copyright (c) 2014-2017 Cisco and/or its affiliates.
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
# you may not use this file except in compliance with the License.
|
|
@@ -31,7 +31,7 @@ class TestTacacsGlobal < CiscoTestCase
|
|
|
31
31
|
|
|
32
32
|
def teardown
|
|
33
33
|
# teardown runs at the end of each test
|
|
34
|
-
no_tacacs_global
|
|
34
|
+
no_tacacs_global if platform == :ios_xr
|
|
35
35
|
config_no_warn('no feature tacacs+') if platform == :nexus
|
|
36
36
|
super
|
|
37
37
|
end
|
|
@@ -50,31 +50,55 @@ class TestTacacsGlobal < CiscoTestCase
|
|
|
50
50
|
assert_includes(Cisco::TacacsGlobal.tacacs_global, id)
|
|
51
51
|
assert_equal(global, Cisco::TacacsGlobal.tacacs_global[id])
|
|
52
52
|
|
|
53
|
-
#
|
|
53
|
+
# No timeout when TACACS is not enabled
|
|
54
|
+
assert_nil(global.timeout)
|
|
55
|
+
|
|
56
|
+
# Turn on TACACS and verify default Timeout
|
|
57
|
+
config_no_warn('feature tacacs+') if platform == :nexus
|
|
54
58
|
assert_equal(global.default_timeout, global.timeout)
|
|
55
59
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
assert_equal(
|
|
60
|
+
# Timeout update
|
|
61
|
+
global.timeout = 10
|
|
62
|
+
assert_equal(10, Cisco::TacacsGlobal.tacacs_global[id].timeout)
|
|
63
|
+
assert_equal(10, global.timeout)
|
|
64
|
+
|
|
65
|
+
# Do not unset timout if TACACS is enabled
|
|
66
|
+
assert_raises(ArgumentError) do
|
|
67
|
+
global.timeout = nil
|
|
68
|
+
end
|
|
59
69
|
|
|
60
|
-
#
|
|
61
|
-
|
|
70
|
+
# Check there is no default key
|
|
71
|
+
assert_equal('', global.key)
|
|
72
|
+
|
|
73
|
+
# first key change - unencrypted key
|
|
62
74
|
key = 'TEST_NEW'
|
|
63
|
-
global.encryption_key_set(
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
global.encryption_key_set(nil, key)
|
|
76
|
+
# Device encypts key - verify return value
|
|
77
|
+
assert_equal(7, global.key_format)
|
|
78
|
+
assert_equal('"WAWY_NZB"', global.key)
|
|
66
79
|
|
|
67
|
-
# second change
|
|
80
|
+
# second key change - modify key to type6
|
|
68
81
|
key_format = 6
|
|
69
|
-
|
|
70
82
|
# Must use a valid type6 password: CSCvb36266
|
|
71
83
|
key = 'JDYkqyIFWeBvzpljSfWmRZrmRSRE8'
|
|
72
84
|
global.encryption_key_set(key_format, key)
|
|
73
|
-
|
|
74
|
-
|
|
85
|
+
assert_equal(key_format, global.key_format)
|
|
86
|
+
assert_equal("\"#{key}\"", global.key)
|
|
75
87
|
|
|
76
|
-
#
|
|
77
|
-
global.
|
|
78
|
-
assert_equal(
|
|
88
|
+
# Remove global key
|
|
89
|
+
global.encryption_key_set('', '')
|
|
90
|
+
assert_equal('', global.key)
|
|
91
|
+
|
|
92
|
+
# Default source interface
|
|
93
|
+
assert_nil(global.source_interface)
|
|
94
|
+
|
|
95
|
+
# Set source interface
|
|
96
|
+
interface = 'loopback0'
|
|
97
|
+
global.source_interface = interface
|
|
98
|
+
assert_equal(interface, global.source_interface)
|
|
99
|
+
|
|
100
|
+
# Remove source interface
|
|
101
|
+
global.source_interface = nil
|
|
102
|
+
assert_nil(global.source_interface)
|
|
79
103
|
end
|
|
80
104
|
end
|
data/tests/test_vpc.rb
CHANGED
|
@@ -138,6 +138,9 @@ class TestVpc < CiscoTestCase
|
|
|
138
138
|
assert(vpc.layer3_peer_routing, 'layer3_peer_routing not getting set')
|
|
139
139
|
vpc.layer3_peer_routing = false
|
|
140
140
|
refute(vpc.layer3_peer_routing, 'layer3_peer_routing not getting disabled')
|
|
141
|
+
# reset peer gateway
|
|
142
|
+
vpc.peer_gateway = false
|
|
143
|
+
assert_equal(vpc.default_peer_gateway, vpc.peer_gateway)
|
|
141
144
|
end
|
|
142
145
|
|
|
143
146
|
def test_peer_keepalive
|
|
@@ -120,7 +120,6 @@ class TestVxlanVtepVni < CiscoTestCase
|
|
|
120
120
|
return
|
|
121
121
|
end
|
|
122
122
|
|
|
123
|
-
skip_incompat_version?('vxlan_vtep_vni', 'ingress_replication')
|
|
124
123
|
# Test non-default values
|
|
125
124
|
vni.ingress_replication = 'static'
|
|
126
125
|
assert_equal('static', vni.ingress_replication)
|
|
@@ -158,7 +157,6 @@ class TestVxlanVtepVni < CiscoTestCase
|
|
|
158
157
|
|
|
159
158
|
# Test the case where an existing ingress_replication is removed before
|
|
160
159
|
# configuring multicast_group
|
|
161
|
-
skip_incompat_version?('vxlan_vtep_vni', 'ingress_replication')
|
|
162
160
|
unless validate_property_excluded?('vxlan_vtep_vni', 'ingress_replication')
|
|
163
161
|
vni1.ingress_replication = 'static'
|
|
164
162
|
assert_equal('static', vni1.ingress_replication)
|
|
@@ -185,7 +183,6 @@ class TestVxlanVtepVni < CiscoTestCase
|
|
|
185
183
|
return
|
|
186
184
|
end
|
|
187
185
|
|
|
188
|
-
skip_incompat_version?('vxlan_vtep_vni', 'peer_list')
|
|
189
186
|
peer_list = ['1.1.1.1', '2.2.2.2', '3.3.3.3', '4.4.4.4']
|
|
190
187
|
|
|
191
188
|
# Test: all peers when current is empty
|
data/tests/yum_package.yaml
CHANGED
|
@@ -63,6 +63,11 @@
|
|
|
63
63
|
name: 'nxos.sample-n9k_ALL'
|
|
64
64
|
version: '1.0.0-7.0.3.I6.1'
|
|
65
65
|
|
|
66
|
+
7_0_3_I7_1_:
|
|
67
|
+
filename: 'nxos.sample-n9k_ALL-1.0.0-7.0.3.I7.1.lib32_n9000.rpm'
|
|
68
|
+
name: 'nxos.sample-n9k_ALL'
|
|
69
|
+
version: '1.0.0-7.0.3.I7.1'
|
|
70
|
+
|
|
66
71
|
7_0_3_F1_1_:
|
|
67
72
|
filename: 'nxos.sample-n8k_EOR-1.0.0-7.0.3.F1.1.lib32_nxos.rpm'
|
|
68
73
|
name: 'nxos.sample-n8k_EOR'
|
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: 1.
|
|
4
|
+
version: 1.8.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: 2017-
|
|
18
|
+
date: 2017-12-13 00:00:00.000000000 Z
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
name: bundler
|
|
@@ -59,6 +59,20 @@ dependencies:
|
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
61
|
version: '5.0'
|
|
62
|
+
- !ruby/object:Gem::Dependency
|
|
63
|
+
name: net-telnet
|
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.1.1
|
|
69
|
+
type: :development
|
|
70
|
+
prerelease: false
|
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 0.1.1
|
|
62
76
|
- !ruby/object:Gem::Dependency
|
|
63
77
|
name: rake
|
|
64
78
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -227,6 +241,7 @@ files:
|
|
|
227
241
|
- lib/cisco_node_utils/cmd_ref/ntp_auth_key.yaml
|
|
228
242
|
- lib/cisco_node_utils/cmd_ref/ntp_config.yaml
|
|
229
243
|
- lib/cisco_node_utils/cmd_ref/ntp_server.yaml
|
|
244
|
+
- lib/cisco_node_utils/cmd_ref/object_group.yaml
|
|
230
245
|
- lib/cisco_node_utils/cmd_ref/ospf.yaml
|
|
231
246
|
- lib/cisco_node_utils/cmd_ref/ospf_area.yaml
|
|
232
247
|
- lib/cisco_node_utils/cmd_ref/ospf_area_vlink.yaml
|
|
@@ -297,6 +312,8 @@ files:
|
|
|
297
312
|
- lib/cisco_node_utils/ntp_auth_key.rb
|
|
298
313
|
- lib/cisco_node_utils/ntp_config.rb
|
|
299
314
|
- lib/cisco_node_utils/ntp_server.rb
|
|
315
|
+
- lib/cisco_node_utils/object_group.rb
|
|
316
|
+
- lib/cisco_node_utils/object_group_entry.rb
|
|
300
317
|
- lib/cisco_node_utils/overlay_global.rb
|
|
301
318
|
- lib/cisco_node_utils/pim.rb
|
|
302
319
|
- lib/cisco_node_utils/pim_group_list.rb
|
|
@@ -412,6 +429,7 @@ files:
|
|
|
412
429
|
- tests/test_ntp_config.rb
|
|
413
430
|
- tests/test_ntp_server.rb
|
|
414
431
|
- tests/test_nxapi.rb
|
|
432
|
+
- tests/test_object_group.rb
|
|
415
433
|
- tests/test_overlay_global.rb
|
|
416
434
|
- tests/test_pim.rb
|
|
417
435
|
- tests/test_pim_group_list.rb
|
|
@@ -475,7 +493,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
475
493
|
version: 2.1.0
|
|
476
494
|
requirements: []
|
|
477
495
|
rubyforge_project:
|
|
478
|
-
rubygems_version: 2.
|
|
496
|
+
rubygems_version: 2.4.6
|
|
479
497
|
signing_key:
|
|
480
498
|
specification_version: 4
|
|
481
499
|
summary: Utilities for management of Cisco network nodes
|