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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rspec +2 -0
- data/.rubocop.yml +13 -0
- data/.travis.yml +4 -1
- data/CHANGELOG.md +81 -2
- data/CONTRIBUTING.md +2 -17
- data/Gemfile +5 -0
- data/README.md +92 -47
- data/Rakefile +23 -1
- data/bin/git/hooks/hook_lib +7 -0
- data/bin/git/hooks/pre-commit/check_unstaged_changes +18 -0
- data/bin/git/hooks/pre-commit/rubocop +7 -2
- data/bin/git/hooks/pre-commit/validate-diffs +18 -4
- data/bin/git/hooks/pre-commit/validate-yaml +18 -0
- data/bin/git/update-hooks +64 -6
- data/cisco_node_utils.gemspec +9 -6
- data/docs/README-develop-best-practices.md +149 -50
- data/docs/README-develop-node-utils-APIs.md +92 -42
- data/docs/README-maintainers.md +7 -4
- data/docs/README-test-execution.md +57 -0
- data/docs/cisco_node_utils.yaml.example +30 -0
- data/docs/template-router.rb +4 -0
- data/ext/mkrf_conf.rb +63 -0
- data/lib/.rubocop.yml +2 -2
- data/lib/cisco_node_utils.rb +5 -0
- data/lib/cisco_node_utils/aaa_authentication_login.rb +5 -6
- data/lib/cisco_node_utils/aaa_authorization_service.rb +1 -1
- data/lib/cisco_node_utils/ace.rb +165 -12
- data/lib/cisco_node_utils/acl.rb +2 -1
- data/lib/cisco_node_utils/bgp.rb +184 -21
- data/lib/cisco_node_utils/bgp_af.rb +94 -249
- data/lib/cisco_node_utils/bgp_neighbor.rb +94 -14
- data/lib/cisco_node_utils/bgp_neighbor_af.rb +75 -8
- data/lib/cisco_node_utils/bridge_domain.rb +183 -0
- data/lib/cisco_node_utils/bridge_domain_vni.rb +206 -0
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +85 -2
- data/lib/cisco_node_utils/client.rb +35 -0
- data/lib/cisco_node_utils/client/client.rb +234 -0
- data/lib/cisco_node_utils/client/grpc.rb +33 -0
- data/lib/cisco_node_utils/client/grpc/client.rb +311 -0
- data/lib/cisco_node_utils/client/grpc/ems.proto +148 -0
- data/lib/cisco_node_utils/client/grpc/ems.rb +111 -0
- data/lib/cisco_node_utils/client/grpc/ems_services.rb +49 -0
- data/lib/cisco_node_utils/client/nxapi.rb +31 -0
- data/lib/cisco_node_utils/client/nxapi/client.rb +305 -0
- data/lib/cisco_node_utils/client/utils.rb +164 -0
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +222 -254
- data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +11 -8
- data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +22 -15
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +11 -8
- data/lib/cisco_node_utils/cmd_ref/acl.yaml +21 -16
- data/lib/cisco_node_utils/cmd_ref/bgp.yaml +239 -109
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +114 -55
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +76 -52
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +106 -62
- data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +71 -0
- data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +35 -14
- data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +23 -17
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +94 -83
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +22 -17
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +76 -26
- data/lib/cisco_node_utils/cmd_ref/images.yaml +3 -2
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +381 -153
- data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +21 -11
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +21 -21
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +30 -21
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +18 -13
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +26 -31
- data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +83 -0
- data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +119 -0
- data/lib/cisco_node_utils/cmd_ref/memory.yaml +17 -6
- data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +10 -3
- data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +17 -5
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +33 -29
- data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +12 -10
- data/lib/cisco_node_utils/cmd_ref/pim.yaml +16 -19
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +40 -25
- data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +17 -12
- data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +71 -35
- data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +10 -5
- data/lib/cisco_node_utils/cmd_ref/show_system.yaml +6 -2
- data/lib/cisco_node_utils/cmd_ref/show_version.yaml +47 -43
- data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +13 -11
- data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +4 -2
- data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +23 -21
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +26 -22
- data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +19 -17
- data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +18 -6
- data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +234 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +24 -9
- data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +5 -3
- data/lib/cisco_node_utils/cmd_ref/system.yaml +4 -3
- data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +22 -20
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +27 -15
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +45 -16
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +21 -11
- data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +3 -2
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +60 -32
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +118 -101
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +54 -58
- data/lib/cisco_node_utils/cmd_ref/vrf_af.yaml +118 -0
- data/lib/cisco_node_utils/cmd_ref/vtp.yaml +19 -25
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +28 -18
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +34 -17
- data/lib/cisco_node_utils/cmd_ref/yum.yaml +6 -4
- data/lib/cisco_node_utils/command_reference.rb +261 -142
- data/lib/cisco_node_utils/constants.rb +33 -0
- data/lib/cisco_node_utils/encapsulation.rb +112 -0
- data/lib/cisco_node_utils/environment.rb +102 -0
- data/lib/cisco_node_utils/evpn_vni.rb +5 -3
- data/lib/cisco_node_utils/exceptions.rb +111 -0
- data/lib/cisco_node_utils/fabricpath_global.rb +52 -35
- data/lib/cisco_node_utils/fabricpath_topology.rb +44 -57
- data/lib/cisco_node_utils/feature.rb +165 -3
- data/lib/cisco_node_utils/interface.rb +1051 -260
- data/lib/cisco_node_utils/interface_channel_group.rb +11 -10
- data/lib/cisco_node_utils/interface_ospf.rb +1 -2
- data/lib/cisco_node_utils/interface_portchannel.rb +4 -12
- data/lib/cisco_node_utils/interface_service_vni.rb +7 -7
- data/lib/cisco_node_utils/itd_device_group.rb +248 -0
- data/lib/cisco_node_utils/itd_device_group_node.rb +144 -0
- data/lib/cisco_node_utils/itd_service.rb +523 -0
- data/lib/cisco_node_utils/logger.rb +75 -0
- data/lib/cisco_node_utils/node.rb +62 -192
- data/lib/cisco_node_utils/node_util.rb +56 -10
- data/lib/cisco_node_utils/overlay_global.rb +2 -2
- data/lib/cisco_node_utils/pim.rb +2 -13
- data/lib/cisco_node_utils/pim_group_list.rb +1 -1
- data/lib/cisco_node_utils/pim_rp_address.rb +1 -1
- data/lib/cisco_node_utils/platform.rb +52 -21
- data/lib/cisco_node_utils/portchannel_global.rb +89 -19
- data/lib/cisco_node_utils/radius_server.rb +168 -37
- data/lib/cisco_node_utils/router_ospf.rb +20 -35
- data/lib/cisco_node_utils/router_ospf_vrf.rb +4 -4
- data/lib/cisco_node_utils/snmpserver.rb +1 -6
- data/lib/cisco_node_utils/snmpuser.rb +6 -4
- data/lib/cisco_node_utils/stp_global.rb +676 -0
- data/lib/cisco_node_utils/syslog_server.rb +77 -18
- data/lib/cisco_node_utils/syslog_settings.rb +1 -1
- data/lib/cisco_node_utils/tacacs_server_group.rb +8 -4
- data/lib/cisco_node_utils/tacacs_server_host.rb +115 -25
- data/lib/cisco_node_utils/vdc.rb +12 -0
- data/lib/cisco_node_utils/version.rb +1 -1
- data/lib/cisco_node_utils/vlan.rb +147 -29
- data/lib/cisco_node_utils/vpc.rb +55 -3
- data/lib/cisco_node_utils/vrf.rb +72 -11
- data/lib/cisco_node_utils/vrf_af.rb +114 -29
- data/lib/cisco_node_utils/vtp.rb +34 -52
- data/lib/cisco_node_utils/vxlan_vtep.rb +34 -8
- data/lib/cisco_node_utils/vxlan_vtep_vni.rb +36 -4
- data/lib/minitest/environment_plugin.rb +31 -0
- data/lib/minitest/log_level_plugin.rb +41 -0
- data/spec/client_spec.rb +7 -0
- data/spec/environment_spec.rb +263 -0
- data/spec/grpc_client_spec.rb +23 -0
- data/spec/isolate/all_clients_spec.rb +9 -0
- data/spec/isolate/grpc_only_spec.rb +16 -0
- data/spec/isolate/no_clients_spec.rb +26 -0
- data/spec/isolate/nxapi_only_spec.rb +16 -0
- data/spec/nxapi_client_spec.rb +42 -0
- data/spec/schema.yaml +75 -0
- data/spec/shared_examples_for_clients.rb +14 -0
- data/spec/spec_helper.rb +91 -0
- data/spec/whitespace_spec.rb +10 -0
- data/spec/yaml_spec.rb +42 -0
- data/tests/.rubocop.yml +2 -2
- data/tests/CSCuxdublin-1.0.0-7.0.3.I3.1.lib32_n9000.rpm +0 -0
- data/tests/basetest.rb +96 -36
- data/tests/ciscotest.rb +220 -12
- data/tests/cmd_config.yaml +71 -49
- data/tests/cmd_config_invalid.yaml +1 -1
- data/tests/test_aaa_authentication_login.rb +1 -0
- data/tests/test_aaa_authentication_login_service.rb +9 -0
- data/tests/test_aaa_authorization_service.rb +173 -367
- data/tests/test_ace.rb +171 -100
- data/tests/test_acl.rb +10 -1
- data/tests/test_bgp_af.rb +395 -728
- data/tests/test_bgp_neighbor.rb +274 -115
- data/tests/test_bgp_neighbor_af.rb +178 -77
- data/tests/test_bridge_domain.rb +191 -0
- data/tests/test_bridge_domain_vni.rb +116 -0
- data/tests/test_client_utils.rb +111 -0
- data/tests/test_command_config.rb +9 -5
- data/tests/test_command_reference.rb +380 -102
- data/tests/test_dns_domain.rb +13 -3
- data/tests/test_domain_name.rb +13 -3
- data/tests/test_encapsulation.rb +77 -0
- data/tests/test_evpn_vni.rb +25 -7
- data/tests/test_fabricpath_global.rb +167 -163
- data/tests/test_fabricpath_topology.rb +12 -33
- data/tests/test_feature.rb +215 -0
- data/tests/test_grpc.rb +166 -0
- data/tests/test_interface.rb +585 -344
- data/tests/test_interface_bdi.rb +80 -0
- data/tests/test_interface_channel_group.rb +6 -3
- data/tests/test_interface_ospf.rb +26 -24
- data/tests/test_interface_portchannel.rb +1 -0
- data/tests/test_interface_private_vlan.rb +724 -0
- data/tests/test_interface_service_vni.rb +37 -66
- data/tests/test_interface_svi.rb +98 -101
- data/tests/test_interface_switchport.rb +419 -549
- data/tests/test_itd_device_group.rb +145 -0
- data/tests/test_itd_device_group_node.rb +199 -0
- data/tests/test_itd_service.rb +298 -0
- data/tests/test_logger.rb +43 -0
- data/tests/test_name_server.rb +11 -2
- data/tests/test_node.rb +16 -75
- data/tests/test_node_ext.rb +174 -163
- data/tests/test_node_util.rb +119 -0
- data/tests/test_ntp_config.rb +5 -1
- data/tests/test_ntp_server.rb +2 -2
- data/tests/test_nxapi.rb +221 -0
- data/tests/test_overlay_global.rb +47 -38
- data/tests/test_pim.rb +2 -0
- data/tests/test_pim_group_list.rb +2 -0
- data/tests/test_pim_rp_address.rb +2 -0
- data/tests/test_platform.rb +86 -39
- data/tests/test_portchannel_global.rb +211 -135
- data/tests/test_radius_global.rb +13 -5
- data/tests/test_radius_server.rb +256 -104
- data/tests/test_radius_server_group.rb +2 -0
- data/tests/test_router_bgp.rb +781 -485
- data/tests/test_router_ospf.rb +26 -103
- data/tests/test_router_ospf_vrf.rb +52 -57
- data/tests/test_snmp_notification_receiver.rb +2 -0
- data/tests/test_snmpcommunity.rb +2 -0
- data/tests/test_snmpgroup.rb +2 -0
- data/tests/test_snmpnotification.rb +40 -21
- data/tests/test_snmpserver.rb +2 -0
- data/tests/test_snmpuser.rb +2 -0
- data/tests/test_stp_global.rb +563 -0
- data/tests/test_syslog_server.rb +32 -8
- data/tests/test_syslog_settings.rb +22 -9
- data/tests/test_tacacs_server.rb +32 -27
- data/tests/test_tacacs_server_group.rb +100 -45
- data/tests/test_tacacs_server_host.rb +135 -43
- data/tests/test_vdc.rb +2 -16
- data/tests/test_vlan.rb +106 -54
- data/tests/test_vlan_mt_full.rb +11 -21
- data/tests/test_vlan_private.rb +669 -0
- data/tests/test_vpc.rb +312 -159
- data/tests/test_vrf.rb +122 -113
- data/tests/test_vrf_af.rb +238 -0
- data/tests/test_vtp.rb +58 -102
- data/tests/test_vxlan_vtep.rb +38 -17
- data/tests/test_vxlan_vtep_vni.rb +61 -9
- data/tests/test_yum.rb +49 -25
- metadata +122 -36
- data/lib/cisco_node_utils/cmd_ref/fex.yaml +0 -9
- data/lib/cisco_node_utils/cmd_ref/vni.yaml +0 -76
- data/lib/cisco_node_utils/vni.rb +0 -227
- data/tests/test_vni.rb +0 -106
data/tests/test_syslog_server.rb
CHANGED
|
@@ -34,9 +34,17 @@ class TestSyslogServer < CiscoTestCase
|
|
|
34
34
|
|
|
35
35
|
def no_syslogserver
|
|
36
36
|
# Turn the feature off for a clean test.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
if platform == :ios_xr
|
|
38
|
+
config('no logging 1.2.3.4',
|
|
39
|
+
'no logging 1.2.3.4 vrf red',
|
|
40
|
+
'no logging 2003::2',
|
|
41
|
+
'no logging 2003::2 vrf red',
|
|
42
|
+
'no vrf red')
|
|
43
|
+
else
|
|
44
|
+
config('no logging server 1.2.3.4',
|
|
45
|
+
'no logging server 2003::2',
|
|
46
|
+
'no vrf context red')
|
|
47
|
+
end
|
|
40
48
|
end
|
|
41
49
|
|
|
42
50
|
# TESTS
|
|
@@ -48,6 +56,7 @@ class TestSyslogServer < CiscoTestCase
|
|
|
48
56
|
server = Cisco::SyslogServer.new(id, 2, 'default', true)
|
|
49
57
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
50
58
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
59
|
+
assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
|
|
51
60
|
|
|
52
61
|
server.destroy
|
|
53
62
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
@@ -60,6 +69,7 @@ class TestSyslogServer < CiscoTestCase
|
|
|
60
69
|
server = Cisco::SyslogServer.new(id, 2, 'default', true)
|
|
61
70
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
62
71
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
72
|
+
assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
|
|
63
73
|
|
|
64
74
|
server.destroy
|
|
65
75
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
@@ -72,11 +82,13 @@ class TestSyslogServer < CiscoTestCase
|
|
|
72
82
|
refute_includes(Cisco::SyslogServer.syslogservers, id2)
|
|
73
83
|
|
|
74
84
|
server = Cisco::SyslogServer.new(id, 2, 'default', true)
|
|
75
|
-
server2 = Cisco::SyslogServer.new(id2,
|
|
85
|
+
server2 = Cisco::SyslogServer.new(id2, 3, 'default', true)
|
|
76
86
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
77
87
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
88
|
+
assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
|
|
78
89
|
assert_includes(Cisco::SyslogServer.syslogservers, id2)
|
|
79
90
|
assert_equal(server2, Cisco::SyslogServer.syslogservers[id2])
|
|
91
|
+
assert_equal(3, Cisco::SyslogServer.syslogservers[id2].level)
|
|
80
92
|
|
|
81
93
|
server.destroy
|
|
82
94
|
server2.destroy
|
|
@@ -85,28 +97,40 @@ class TestSyslogServer < CiscoTestCase
|
|
|
85
97
|
end
|
|
86
98
|
|
|
87
99
|
def test_create_destroy_single_vrf_ipv4
|
|
88
|
-
|
|
100
|
+
if platform == :ios_xr
|
|
101
|
+
config('vrf red')
|
|
102
|
+
else
|
|
103
|
+
config('vrf context red')
|
|
104
|
+
end
|
|
105
|
+
|
|
89
106
|
id = '1.2.3.4'
|
|
90
107
|
|
|
91
108
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
92
109
|
|
|
93
|
-
server = Cisco::SyslogServer.new(id,
|
|
110
|
+
server = Cisco::SyslogServer.new(id, 4, 'red', true)
|
|
94
111
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
95
112
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
113
|
+
assert_equal(4, Cisco::SyslogServer.syslogservers[id].level)
|
|
96
114
|
|
|
97
115
|
server.destroy
|
|
98
116
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
99
117
|
end
|
|
100
118
|
|
|
101
119
|
def test_create_destroy_single_vrf_ipv6
|
|
102
|
-
|
|
120
|
+
if platform == :ios_xr
|
|
121
|
+
config('vrf red')
|
|
122
|
+
else
|
|
123
|
+
config('vrf context red')
|
|
124
|
+
end
|
|
125
|
+
|
|
103
126
|
id = '2003::2'
|
|
104
127
|
|
|
105
128
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
106
129
|
|
|
107
|
-
server = Cisco::SyslogServer.new(id,
|
|
130
|
+
server = Cisco::SyslogServer.new(id, 5, 'red', true)
|
|
108
131
|
assert_includes(Cisco::SyslogServer.syslogservers, id)
|
|
109
132
|
assert_equal(server, Cisco::SyslogServer.syslogservers[id])
|
|
133
|
+
assert_equal(5, Cisco::SyslogServer.syslogservers[id].level)
|
|
110
134
|
|
|
111
135
|
server.destroy
|
|
112
136
|
refute_includes(Cisco::SyslogServer.syslogservers, id)
|
|
@@ -21,12 +21,14 @@ require_relative '../lib/cisco_node_utils/syslog_settings'
|
|
|
21
21
|
# TestSyslogSetting - Minitest for SyslogSetting node utility.
|
|
22
22
|
class TestSyslogSettings < CiscoTestCase
|
|
23
23
|
def setup
|
|
24
|
+
return if platform != :nexus
|
|
24
25
|
# setup runs at the beginning of each test
|
|
25
26
|
super
|
|
26
27
|
no_syslogsettings
|
|
27
28
|
end
|
|
28
29
|
|
|
29
30
|
def teardown
|
|
31
|
+
return if platform != :nexus
|
|
30
32
|
# teardown runs at the end of each test
|
|
31
33
|
no_syslogsettings
|
|
32
34
|
super
|
|
@@ -41,14 +43,25 @@ class TestSyslogSettings < CiscoTestCase
|
|
|
41
43
|
|
|
42
44
|
def test_syslogsettings_create
|
|
43
45
|
syslog_setting = Cisco::SyslogSettings.new('default')
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
|
|
47
|
+
if platform == :ios_xr
|
|
48
|
+
assert_nil(syslog_setting.timestamp)
|
|
49
|
+
assert_raises(Cisco::UnsupportedError) do
|
|
50
|
+
syslog_setting.timestamp = 'milliseconds'
|
|
51
|
+
end
|
|
52
|
+
else
|
|
53
|
+
assert_includes(Cisco::SyslogSettings.syslogsettings, 'default')
|
|
54
|
+
assert_equal(syslog_setting,
|
|
55
|
+
Cisco::SyslogSettings.syslogsettings['default'],
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
syslog_setting.timestamp = 'milliseconds'
|
|
59
|
+
assert_equal('milliseconds',
|
|
60
|
+
Cisco::SyslogSettings.syslogsettings['default'].timestamp,
|
|
61
|
+
)
|
|
62
|
+
assert_equal('milliseconds',
|
|
63
|
+
syslog_setting.timestamp,
|
|
64
|
+
)
|
|
65
|
+
end
|
|
53
66
|
end
|
|
54
67
|
end
|
data/tests/test_tacacs_server.rb
CHANGED
|
@@ -17,6 +17,8 @@ require_relative '../lib/cisco_node_utils/tacacs_server'
|
|
|
17
17
|
|
|
18
18
|
# TestTacacsServer - Minitest for TacacsServer node utility
|
|
19
19
|
class TestTacacsServer < CiscoTestCase
|
|
20
|
+
@skip_unless_supported = 'tacacs_server'
|
|
21
|
+
|
|
20
22
|
def assert_tacacsserver_feature
|
|
21
23
|
assert_show_match(command: 'show run all | no-more',
|
|
22
24
|
pattern: /feature tacacs\+/)
|
|
@@ -33,16 +35,22 @@ class TestTacacsServer < CiscoTestCase
|
|
|
33
35
|
# 'directed-request' command is under 'show run aaa all'
|
|
34
36
|
@default_show_command = 'show run tacacs all | no-more ; ' \
|
|
35
37
|
'show run aaa all | no-more'
|
|
38
|
+
config_no_warn('no feature tacacs+')
|
|
36
39
|
end
|
|
37
40
|
|
|
38
|
-
def
|
|
41
|
+
def teardown
|
|
42
|
+
config_no_warn('no feature tacacs+')
|
|
43
|
+
super
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_create_valid
|
|
39
47
|
tacacs = TacacsServer.new
|
|
40
48
|
assert_tacacsserver_feature
|
|
41
49
|
tacacs.destroy
|
|
42
50
|
end
|
|
43
51
|
|
|
44
|
-
def
|
|
45
|
-
|
|
52
|
+
def test_get_encryption_type
|
|
53
|
+
config_no_warn('feature tacacs+')
|
|
46
54
|
encryption_type = TACACS_SERVER_ENC_UNKNOWN
|
|
47
55
|
# Get encryption password when not configured
|
|
48
56
|
tacacs = TacacsServer.new
|
|
@@ -72,16 +80,14 @@ class TestTacacsServer < CiscoTestCase
|
|
|
72
80
|
tacacs.destroy
|
|
73
81
|
end
|
|
74
82
|
|
|
75
|
-
def
|
|
83
|
+
def test_get_default_encryption
|
|
76
84
|
# Ruby can use defines, but only they're not initialized from an enum
|
|
77
85
|
assert_equal(TACACS_SERVER_ENC_NONE,
|
|
78
86
|
TacacsServer.default_encryption_type,
|
|
79
87
|
'Error: Tacacs Server, default encryption incorrect')
|
|
80
88
|
end
|
|
81
89
|
|
|
82
|
-
def
|
|
83
|
-
# Get encryption password when not configured
|
|
84
|
-
config('no feature tacacs+')
|
|
90
|
+
def test_get_encryption_password
|
|
85
91
|
tacacs = TacacsServer.new
|
|
86
92
|
assert_equal(node.config_get_default('tacacs_server',
|
|
87
93
|
'encryption_password'),
|
|
@@ -102,14 +108,14 @@ class TestTacacsServer < CiscoTestCase
|
|
|
102
108
|
tacacs.destroy
|
|
103
109
|
end
|
|
104
110
|
|
|
105
|
-
def
|
|
111
|
+
def test_get_default_encryption_password
|
|
106
112
|
assert_equal(node.config_get_default('tacacs_server',
|
|
107
113
|
'encryption_password'),
|
|
108
114
|
TacacsServer.default_encryption_password,
|
|
109
115
|
'Error: Tacacs Server, default encryption password incorrect')
|
|
110
116
|
end
|
|
111
117
|
|
|
112
|
-
def
|
|
118
|
+
def test_key_set
|
|
113
119
|
enc_type = TACACS_SERVER_ENC_NONE
|
|
114
120
|
# This one is needed since the 'sh run' will always display the type
|
|
115
121
|
# differently than the used encryption config type.
|
|
@@ -135,8 +141,7 @@ class TestTacacsServer < CiscoTestCase
|
|
|
135
141
|
tacacs.destroy
|
|
136
142
|
end
|
|
137
143
|
|
|
138
|
-
def
|
|
139
|
-
config('no feature tacacs+')
|
|
144
|
+
def test_key_unconfigure
|
|
140
145
|
enc_type = TACACS_SERVER_ENC_NONE
|
|
141
146
|
# This one is needed since the 'sh run' will always display the type
|
|
142
147
|
# differently than the used encryption config type.
|
|
@@ -158,7 +163,7 @@ class TestTacacsServer < CiscoTestCase
|
|
|
158
163
|
tacacs.destroy
|
|
159
164
|
end
|
|
160
165
|
|
|
161
|
-
def
|
|
166
|
+
def test_get_timeout
|
|
162
167
|
tacacs = TacacsServer.new
|
|
163
168
|
timeout = node.config_get_default('tacacs_server', 'timeout')
|
|
164
169
|
assert_equal(timeout, tacacs.timeout,
|
|
@@ -171,13 +176,13 @@ class TestTacacsServer < CiscoTestCase
|
|
|
171
176
|
tacacs.destroy
|
|
172
177
|
end
|
|
173
178
|
|
|
174
|
-
def
|
|
179
|
+
def test_get_default_timeout
|
|
175
180
|
assert_equal(node.config_get_default('tacacs_server', 'timeout'),
|
|
176
181
|
TacacsServer.default_timeout,
|
|
177
182
|
'Error: Tacacs Server, default timeout incorrect')
|
|
178
183
|
end
|
|
179
184
|
|
|
180
|
-
def
|
|
185
|
+
def test_set_timeout
|
|
181
186
|
timeout = 45
|
|
182
187
|
|
|
183
188
|
tacacs = TacacsServer.new
|
|
@@ -199,7 +204,7 @@ class TestTacacsServer < CiscoTestCase
|
|
|
199
204
|
tacacs.destroy
|
|
200
205
|
end
|
|
201
206
|
|
|
202
|
-
def
|
|
207
|
+
def test_get_deadtime
|
|
203
208
|
tacacs = TacacsServer.new
|
|
204
209
|
deadtime = node.config_get_default('tacacs_server', 'deadtime')
|
|
205
210
|
assert_equal(deadtime, tacacs.deadtime,
|
|
@@ -212,13 +217,13 @@ class TestTacacsServer < CiscoTestCase
|
|
|
212
217
|
tacacs.destroy
|
|
213
218
|
end
|
|
214
219
|
|
|
215
|
-
def
|
|
220
|
+
def test_get_default_deadtime
|
|
216
221
|
assert_equal(node.config_get_default('tacacs_server', 'deadtime'),
|
|
217
222
|
TacacsServer.default_deadtime,
|
|
218
223
|
'Error: Tacacs Server, default deadtime incorrect')
|
|
219
224
|
end
|
|
220
225
|
|
|
221
|
-
def
|
|
226
|
+
def test_set_deadtime
|
|
222
227
|
deadtime = 1250
|
|
223
228
|
|
|
224
229
|
tacacs = TacacsServer.new
|
|
@@ -238,7 +243,7 @@ class TestTacacsServer < CiscoTestCase
|
|
|
238
243
|
tacacs.destroy
|
|
239
244
|
end
|
|
240
245
|
|
|
241
|
-
def
|
|
246
|
+
def test_get_directed_request
|
|
242
247
|
config('feature tacacs', 'tacacs-server directed-request')
|
|
243
248
|
tacacs = TacacsServer.new
|
|
244
249
|
assert(tacacs.directed_request?,
|
|
@@ -250,13 +255,13 @@ class TestTacacsServer < CiscoTestCase
|
|
|
250
255
|
tacacs.destroy
|
|
251
256
|
end
|
|
252
257
|
|
|
253
|
-
def
|
|
258
|
+
def test_get_default_directed_request
|
|
254
259
|
assert_equal(node.config_get_default('tacacs_server', 'directed_request'),
|
|
255
260
|
TacacsServer.default_directed_request,
|
|
256
261
|
'Error: Tacacs Server, default directed-request incorrect')
|
|
257
262
|
end
|
|
258
263
|
|
|
259
|
-
def
|
|
264
|
+
def test_set_directed_request
|
|
260
265
|
config('feature tacacs', 'tacacs-server directed-request')
|
|
261
266
|
state = true
|
|
262
267
|
tacacs = TacacsServer.new
|
|
@@ -294,34 +299,34 @@ class TestTacacsServer < CiscoTestCase
|
|
|
294
299
|
tacacs.destroy
|
|
295
300
|
end
|
|
296
301
|
|
|
297
|
-
def
|
|
298
|
-
|
|
302
|
+
def test_get_source_interface
|
|
303
|
+
config_no_warn('no ip tacacs source-interface')
|
|
299
304
|
tacacs = TacacsServer.new
|
|
300
305
|
intf = node.config_get_default('tacacs_server', 'source_interface')
|
|
301
306
|
assert_equal(intf, tacacs.source_interface,
|
|
302
307
|
'Error: Tacacs Server, source-interface set')
|
|
303
308
|
|
|
304
|
-
intf = '
|
|
309
|
+
intf = 'loopback41'
|
|
305
310
|
config("ip tacacs source-interface #{intf}")
|
|
306
311
|
assert_equal(intf, tacacs.source_interface,
|
|
307
312
|
'Error: Tacacs Server, source-interface not correct')
|
|
308
313
|
tacacs.destroy
|
|
309
314
|
end
|
|
310
315
|
|
|
311
|
-
def
|
|
316
|
+
def test_get_default_source_interface
|
|
312
317
|
assert_equal(node.config_get_default('tacacs_server', 'source_interface'),
|
|
313
318
|
TacacsServer.default_source_interface,
|
|
314
319
|
'Error: Tacacs Server, default source-interface incorrect')
|
|
315
320
|
end
|
|
316
321
|
|
|
317
|
-
def
|
|
322
|
+
def test_set_source_interface
|
|
318
323
|
config('feature tacacs+', 'no ip tacacs source-int')
|
|
319
324
|
intf = node.config_get_default('tacacs_server', 'source_interface')
|
|
320
325
|
tacacs = TacacsServer.new
|
|
321
326
|
assert_equal(intf, tacacs.source_interface,
|
|
322
327
|
'Error: Tacacs Server, source-interface set')
|
|
323
328
|
|
|
324
|
-
intf = '
|
|
329
|
+
intf = 'loopback41'
|
|
325
330
|
tacacs.source_interface = intf
|
|
326
331
|
line = assert_show_match(pattern: /ip tacacs source-interface #{intf}/,
|
|
327
332
|
msg: 'source-interface not configured')
|
|
@@ -344,7 +349,7 @@ class TestTacacsServer < CiscoTestCase
|
|
|
344
349
|
tacacs.destroy
|
|
345
350
|
end
|
|
346
351
|
|
|
347
|
-
def
|
|
352
|
+
def test_destroy
|
|
348
353
|
tacacs = TacacsServer.new
|
|
349
354
|
assert_tacacsserver_feature
|
|
350
355
|
tacacs.destroy
|
|
@@ -18,17 +18,34 @@ require_relative '../lib/cisco_node_utils/tacacs_server_host'
|
|
|
18
18
|
|
|
19
19
|
# Test class for Tacacs Server Group
|
|
20
20
|
class TestTacacsServerGroup < CiscoTestCase
|
|
21
|
+
@skip_unless_supported = 'tacacs_server_group'
|
|
22
|
+
|
|
23
|
+
def setup
|
|
24
|
+
super
|
|
25
|
+
# TBD: Remove once CSCuz44696 is resolved.
|
|
26
|
+
skip('This test is not currently supported on 7.0(3)I3 images') if
|
|
27
|
+
node.os_version[/7.0\(3\)I3\(/]
|
|
28
|
+
end
|
|
29
|
+
|
|
21
30
|
def clean_tacacs_config
|
|
22
31
|
config('no feature tacacs',
|
|
23
32
|
'feature tacacs')
|
|
24
33
|
end
|
|
25
34
|
|
|
26
35
|
def create_tacacsserverhost(name='defaulttest')
|
|
27
|
-
|
|
36
|
+
config("tacacs-server host #{name}")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def detach_tacacsserverhost(name)
|
|
40
|
+
config("no tacacs-server host #{name}")
|
|
28
41
|
end
|
|
29
42
|
|
|
30
|
-
def
|
|
31
|
-
|
|
43
|
+
def config_command
|
|
44
|
+
if platform == :ios_xr
|
|
45
|
+
'show running-config aaa'
|
|
46
|
+
else
|
|
47
|
+
'show run tacacs+ all | no-more'
|
|
48
|
+
end
|
|
32
49
|
end
|
|
33
50
|
|
|
34
51
|
def detach_aaaservergroup(aaa_server_group)
|
|
@@ -65,7 +82,7 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
65
82
|
def test_create_valid_tacacs
|
|
66
83
|
group_name = 'Group1'
|
|
67
84
|
aaa_group = TacacsServerGroup.new(group_name)
|
|
68
|
-
assert_show_match(command:
|
|
85
|
+
assert_show_match(command: config_command,
|
|
69
86
|
pattern: /#{group_name}/)
|
|
70
87
|
|
|
71
88
|
detach_aaaservergroup(aaa_group)
|
|
@@ -77,9 +94,9 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
77
94
|
aaa_group1 = TacacsServerGroup.new(group_name1)
|
|
78
95
|
aaa_group2 = TacacsServerGroup.new(group_name2)
|
|
79
96
|
|
|
80
|
-
assert_show_match(command:
|
|
97
|
+
assert_show_match(command: config_command,
|
|
81
98
|
pattern: /#{group_name1}/)
|
|
82
|
-
assert_show_match(command:
|
|
99
|
+
assert_show_match(command: config_command,
|
|
83
100
|
pattern: /#{group_name2}/)
|
|
84
101
|
|
|
85
102
|
detach_aaaservergroup(aaa_group1)
|
|
@@ -87,6 +104,8 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
87
104
|
end
|
|
88
105
|
|
|
89
106
|
def test_collection_empty_tacacs
|
|
107
|
+
return if platform == :ios_xr
|
|
108
|
+
|
|
90
109
|
clean_tacacs_config
|
|
91
110
|
aaa_group_list = TacacsServerGroup.groups
|
|
92
111
|
assert_empty(aaa_group_list,
|
|
@@ -124,10 +143,10 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
124
143
|
|
|
125
144
|
def test_servers_tacacs
|
|
126
145
|
clean_tacacs_config
|
|
127
|
-
server_name1 = '
|
|
128
|
-
server_name2 = '
|
|
129
|
-
|
|
130
|
-
|
|
146
|
+
server_name1 = '1.1.1.1'
|
|
147
|
+
server_name2 = '2.2.2.2'
|
|
148
|
+
create_tacacsserverhost(server_name1)
|
|
149
|
+
create_tacacsserverhost(server_name2)
|
|
131
150
|
|
|
132
151
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
133
152
|
|
|
@@ -141,41 +160,41 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
141
160
|
servers = aaa_group.servers
|
|
142
161
|
assert_equal(2, servers.size,
|
|
143
162
|
'Error: Collection is not two servers')
|
|
144
|
-
assert(servers.include?(
|
|
163
|
+
assert(servers.include?(server_name1),
|
|
145
164
|
"Error: Collection does not contain #{server_name1}")
|
|
146
|
-
assert(servers.include?(
|
|
165
|
+
assert(servers.include?(server_name2),
|
|
147
166
|
"Error: Collection does not contain #{server_name2}")
|
|
148
167
|
|
|
149
168
|
detach_aaaservergroup(aaa_group)
|
|
150
|
-
detach_tacacsserverhost(
|
|
151
|
-
detach_tacacsserverhost(
|
|
169
|
+
detach_tacacsserverhost(server_name1)
|
|
170
|
+
detach_tacacsserverhost(server_name2)
|
|
152
171
|
end
|
|
153
172
|
|
|
154
173
|
def test_add_server_tacacs
|
|
155
|
-
server_name1 = '
|
|
156
|
-
server_name2 = '
|
|
157
|
-
|
|
158
|
-
|
|
174
|
+
server_name1 = '1.1.1.1'
|
|
175
|
+
server_name2 = '2.2.2.2'
|
|
176
|
+
create_tacacsserverhost(server_name1)
|
|
177
|
+
create_tacacsserverhost(server_name2)
|
|
159
178
|
|
|
160
179
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
161
180
|
aaa_group.servers = [server_name1, server_name2]
|
|
162
181
|
|
|
163
|
-
assert_show_match(command:
|
|
182
|
+
assert_show_match(command: config_command,
|
|
164
183
|
pattern: /server #{server_name1}/)
|
|
165
|
-
assert_show_match(command:
|
|
184
|
+
assert_show_match(command: config_command,
|
|
166
185
|
pattern: /server #{server_name2}/)
|
|
167
186
|
|
|
168
187
|
detach_aaaservergroup(aaa_group)
|
|
169
|
-
detach_tacacsserverhost(
|
|
170
|
-
detach_tacacsserverhost(
|
|
188
|
+
detach_tacacsserverhost(server_name1)
|
|
189
|
+
detach_tacacsserverhost(server_name2)
|
|
171
190
|
end
|
|
172
191
|
|
|
173
192
|
def test_remove_server_tacacs
|
|
174
193
|
clean_tacacs_config
|
|
175
|
-
server_name1 = '
|
|
176
|
-
server_name2 = '
|
|
177
|
-
|
|
178
|
-
|
|
194
|
+
server_name1 = '1.1.1.1'
|
|
195
|
+
server_name2 = '2.2.2.2'
|
|
196
|
+
create_tacacsserverhost(server_name1)
|
|
197
|
+
create_tacacsserverhost(server_name2)
|
|
179
198
|
|
|
180
199
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
181
200
|
aaa_group.servers = [server_name1, server_name2]
|
|
@@ -187,24 +206,24 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
187
206
|
|
|
188
207
|
# Now remove them and then check again
|
|
189
208
|
aaa_group.servers = [server_name2]
|
|
190
|
-
refute_show_match(command:
|
|
209
|
+
refute_show_match(command: config_command,
|
|
191
210
|
pattern: /server #{server_name1}/)
|
|
192
211
|
|
|
193
212
|
aaa_group.servers = []
|
|
194
|
-
refute_show_match(command:
|
|
213
|
+
refute_show_match(command: config_command,
|
|
195
214
|
pattern: /server #{server_name2}/)
|
|
196
215
|
|
|
197
216
|
detach_aaaservergroup(aaa_group)
|
|
198
|
-
detach_tacacsserverhost(
|
|
199
|
-
detach_tacacsserverhost(
|
|
217
|
+
detach_tacacsserverhost(server_name1)
|
|
218
|
+
detach_tacacsserverhost(server_name2)
|
|
200
219
|
end
|
|
201
220
|
|
|
202
221
|
def test_remove_server_twice_tacacs
|
|
203
222
|
clean_tacacs_config
|
|
204
|
-
server_name1 = '
|
|
205
|
-
server_name2 = '
|
|
206
|
-
|
|
207
|
-
|
|
223
|
+
server_name1 = '1.1.1.1'
|
|
224
|
+
server_name2 = '2.2.2.2'
|
|
225
|
+
create_tacacsserverhost(server_name1)
|
|
226
|
+
create_tacacsserverhost(server_name2)
|
|
208
227
|
|
|
209
228
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
210
229
|
aaa_group.servers = [server_name1, server_name2]
|
|
@@ -216,12 +235,12 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
216
235
|
|
|
217
236
|
# Remove server 1
|
|
218
237
|
aaa_group.servers = [server_name2]
|
|
219
|
-
refute_show_match(command:
|
|
238
|
+
refute_show_match(command: config_command,
|
|
220
239
|
pattern: /server #{server_name1}/)
|
|
221
240
|
|
|
222
241
|
# Now remove server 2
|
|
223
242
|
aaa_group.servers = []
|
|
224
|
-
refute_show_match(command:
|
|
243
|
+
refute_show_match(command: config_command,
|
|
225
244
|
pattern: /server #{server_name2}/)
|
|
226
245
|
|
|
227
246
|
# Check collection size
|
|
@@ -229,11 +248,15 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
229
248
|
assert_empty(servers, 'Error: Collection not empty')
|
|
230
249
|
|
|
231
250
|
detach_aaaservergroup(aaa_group)
|
|
232
|
-
detach_tacacsserverhost(
|
|
233
|
-
detach_tacacsserverhost(
|
|
251
|
+
detach_tacacsserverhost(server_name1)
|
|
252
|
+
detach_tacacsserverhost(server_name2)
|
|
234
253
|
end
|
|
235
254
|
|
|
236
255
|
def test_get_vrf_tacacs
|
|
256
|
+
# TODO
|
|
257
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
258
|
+
'vrf')
|
|
259
|
+
|
|
237
260
|
group_name1 = 'Group1'
|
|
238
261
|
aaa_group = TacacsServerGroup.new(group_name1)
|
|
239
262
|
|
|
@@ -255,6 +278,10 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
255
278
|
end
|
|
256
279
|
|
|
257
280
|
def test_get_default_vrf_tacacs
|
|
281
|
+
# TODO
|
|
282
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
283
|
+
'vrf')
|
|
284
|
+
|
|
258
285
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
259
286
|
assert_equal(cmd_ref.lookup('tacacs_server_group', 'vrf').default_value,
|
|
260
287
|
aaa_group.default_vrf,
|
|
@@ -263,10 +290,14 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
263
290
|
end
|
|
264
291
|
|
|
265
292
|
def test_set_vrf_tacacs
|
|
293
|
+
# TODO
|
|
294
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
295
|
+
'vrf')
|
|
296
|
+
|
|
266
297
|
vrf = 'management-123'
|
|
267
298
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
268
299
|
aaa_group.vrf = vrf
|
|
269
|
-
assert_show_match(command:
|
|
300
|
+
assert_show_match(command: config_command,
|
|
270
301
|
pattern: /use-vrf #{vrf}/)
|
|
271
302
|
|
|
272
303
|
# Invalid case
|
|
@@ -277,6 +308,10 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
277
308
|
end
|
|
278
309
|
|
|
279
310
|
def test_get_deadtime_tacacs
|
|
311
|
+
# TODO
|
|
312
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
313
|
+
'deadtime')
|
|
314
|
+
|
|
280
315
|
group_name = 'Group1'
|
|
281
316
|
aaa_group = TacacsServerGroup.new(group_name)
|
|
282
317
|
|
|
@@ -298,6 +333,10 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
298
333
|
end
|
|
299
334
|
|
|
300
335
|
def test_get_default_deadtime_tacacs
|
|
336
|
+
# TODO
|
|
337
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
338
|
+
'deadtime')
|
|
339
|
+
|
|
301
340
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
302
341
|
assert_equal(
|
|
303
342
|
cmd_ref.lookup('tacacs_server_group', 'deadtime').default_value,
|
|
@@ -307,10 +346,14 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
307
346
|
end
|
|
308
347
|
|
|
309
348
|
def test_set_deadtime_tacacs
|
|
349
|
+
# TODO
|
|
350
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
351
|
+
'deadtime')
|
|
352
|
+
|
|
310
353
|
deadtime = 1250
|
|
311
354
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
312
355
|
aaa_group.deadtime = deadtime
|
|
313
|
-
assert_show_match(command:
|
|
356
|
+
assert_show_match(command: config_command,
|
|
314
357
|
pattern: /deadtime #{deadtime}/,
|
|
315
358
|
msg: 'Error: deadtime not configured')
|
|
316
359
|
# Invalid case
|
|
@@ -322,6 +365,10 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
322
365
|
end
|
|
323
366
|
|
|
324
367
|
def test_get_source_interface_tacacs
|
|
368
|
+
# TODO
|
|
369
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
370
|
+
'source_interface')
|
|
371
|
+
|
|
325
372
|
group_name = 'Group1'
|
|
326
373
|
aaa_group = TacacsServerGroup.new(group_name)
|
|
327
374
|
intf =
|
|
@@ -329,12 +376,12 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
329
376
|
assert_equal(intf, aaa_group.source_interface,
|
|
330
377
|
'Error: TacacsServerGroup, source-interface set')
|
|
331
378
|
|
|
332
|
-
intf =
|
|
379
|
+
intf = interfaces[0]
|
|
333
380
|
create_source_interface(group_name, 'tacacs+', intf)
|
|
334
381
|
assert_equal(intf, aaa_group.source_interface,
|
|
335
382
|
'Error: TacacsServerGroup, source-interface not correct')
|
|
336
383
|
|
|
337
|
-
intf =
|
|
384
|
+
intf = interfaces[1]
|
|
338
385
|
create_source_interface(group_name, 'tacacs+', intf)
|
|
339
386
|
assert_equal(intf, aaa_group.source_interface,
|
|
340
387
|
'Error: TacacsServerGroup, source-interface not correct')
|
|
@@ -343,6 +390,10 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
343
390
|
end
|
|
344
391
|
|
|
345
392
|
def test_get_default_source_interface_tacacs
|
|
393
|
+
# TODO
|
|
394
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
395
|
+
'source_interface')
|
|
396
|
+
|
|
346
397
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
347
398
|
assert_equal(
|
|
348
399
|
cmd_ref.lookup('tacacs_server_group', 'source_interface').default_value,
|
|
@@ -352,6 +403,10 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
352
403
|
end
|
|
353
404
|
|
|
354
405
|
def test_set_source_interface_tacacs
|
|
406
|
+
# TODO
|
|
407
|
+
return if validate_property_excluded?('tacacs_server_group',
|
|
408
|
+
'source_interface')
|
|
409
|
+
|
|
355
410
|
intf =
|
|
356
411
|
cmd_ref.lookup('tacacs_server_group', 'source_interface').default_value
|
|
357
412
|
aaa_group = TacacsServerGroup.new('Group1')
|
|
@@ -359,13 +414,13 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
359
414
|
'Error: Aaa_Group Server, source-interface not default')
|
|
360
415
|
|
|
361
416
|
aaa_group.source_interface = 'loopback1'
|
|
362
|
-
assert_show_match(command:
|
|
417
|
+
assert_show_match(command: config_command,
|
|
363
418
|
pattern: /source-interface loopback1/,
|
|
364
419
|
msg: 'Error: source-interface not correct')
|
|
365
420
|
|
|
366
421
|
aaa_group.source_interface =
|
|
367
422
|
cmd_ref.lookup('tacacs_server_group', 'source_interface').default_value
|
|
368
|
-
refute_show_match(command:
|
|
423
|
+
refute_show_match(command: config_command,
|
|
369
424
|
pattern: /source-interface loopback1/)
|
|
370
425
|
|
|
371
426
|
# Invalid case
|
|
@@ -399,7 +454,7 @@ class TestTacacsServerGroup < CiscoTestCase
|
|
|
399
454
|
aaa_group = TacacsServerGroup.new(group_name)
|
|
400
455
|
|
|
401
456
|
detach_aaaservergroup(aaa_group)
|
|
402
|
-
refute_show_match(command:
|
|
457
|
+
refute_show_match(command: config_command,
|
|
403
458
|
pattern: /#{group_name}/)
|
|
404
459
|
end
|
|
405
460
|
end
|