cisco_node_utils 1.1.0 → 1.2.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 -1
- data/CHANGELOG.md +126 -1
- data/README.md +19 -12
- data/Rakefile +1 -0
- data/bin/git/hooks/commit-msg/enforce_style +8 -0
- data/cisco_node_utils.gemspec +4 -3
- data/docs/README-develop-best-practices.md +127 -109
- data/docs/README-develop-node-utils-APIs.md +47 -39
- data/docs/template-router.rb +3 -7
- data/lib/.rubocop.yml +4 -4
- data/lib/cisco_node_utils.rb +1 -1
- data/lib/cisco_node_utils/aaa_authentication_login.rb +96 -0
- data/lib/cisco_node_utils/aaa_authentication_login_service.rb +133 -0
- data/lib/cisco_node_utils/aaa_authorization_service.rb +150 -0
- data/lib/cisco_node_utils/ace.rb +196 -0
- data/lib/cisco_node_utils/acl.rb +100 -0
- data/lib/cisco_node_utils/bgp.rb +301 -163
- data/lib/cisco_node_utils/bgp_af.rb +187 -19
- data/lib/cisco_node_utils/bgp_neighbor.rb +18 -33
- data/lib/cisco_node_utils/bgp_neighbor_af.rb +25 -48
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +23 -4
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +593 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +22 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +31 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +22 -0
- data/lib/cisco_node_utils/cmd_ref/acl.yaml +43 -0
- data/lib/cisco_node_utils/cmd_ref/bgp.yaml +242 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +164 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +131 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +179 -0
- data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +34 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +42 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +172 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +35 -0
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +42 -0
- data/lib/cisco_node_utils/cmd_ref/fex.yaml +9 -0
- data/lib/cisco_node_utils/cmd_ref/images.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +339 -0
- data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +28 -0
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +61 -0
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +54 -0
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +32 -0
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
- data/lib/cisco_node_utils/cmd_ref/memory.yaml +13 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +14 -0
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +74 -0
- data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/pim.yaml +40 -0
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +69 -0
- data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +64 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +14 -0
- data/lib/cisco_node_utils/cmd_ref/show_system.yaml +5 -0
- data/lib/cisco_node_utils/cmd_ref/show_version.yaml +72 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +23 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +50 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +51 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +55 -0
- data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +11 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +18 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/system.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +49 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +35 -0
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +56 -0
- data/lib/cisco_node_utils/cmd_ref/vni.yaml +76 -0
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +197 -0
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +88 -0
- data/lib/cisco_node_utils/cmd_ref/vtp.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +60 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +39 -0
- data/lib/cisco_node_utils/cmd_ref/yum.yaml +13 -0
- data/lib/cisco_node_utils/command_reference.rb +359 -187
- data/lib/cisco_node_utils/configparser_lib.rb +1 -1
- data/lib/cisco_node_utils/dns_domain.rb +19 -5
- data/lib/cisco_node_utils/domain_name.rb +4 -8
- data/lib/cisco_node_utils/evpn_vni.rb +157 -0
- data/lib/cisco_node_utils/fabricpath_global.rb +388 -0
- data/lib/cisco_node_utils/fabricpath_topology.rb +150 -0
- data/lib/cisco_node_utils/feature.rb +111 -0
- data/lib/cisco_node_utils/interface.rb +390 -97
- data/lib/cisco_node_utils/interface_channel_group.rb +124 -0
- data/lib/cisco_node_utils/interface_ospf.rb +11 -34
- data/lib/cisco_node_utils/interface_portchannel.rb +157 -0
- data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
- data/lib/cisco_node_utils/name_server.rb +1 -1
- data/lib/cisco_node_utils/node.rb +55 -249
- data/lib/cisco_node_utils/node_util.rb +5 -1
- data/lib/cisco_node_utils/ntp_config.rb +2 -2
- data/lib/cisco_node_utils/ntp_server.rb +14 -5
- data/lib/cisco_node_utils/overlay_global.rb +153 -0
- data/lib/cisco_node_utils/pim.rb +124 -0
- data/lib/cisco_node_utils/pim_group_list.rb +108 -0
- data/lib/cisco_node_utils/pim_rp_address.rb +102 -0
- data/lib/cisco_node_utils/platform.rb +8 -9
- data/lib/cisco_node_utils/portchannel_global.rb +277 -0
- data/lib/cisco_node_utils/radius_global.rb +9 -19
- data/lib/cisco_node_utils/radius_server.rb +31 -41
- data/lib/cisco_node_utils/radius_server_group.rb +117 -0
- data/lib/cisco_node_utils/router_ospf.rb +1 -1
- data/lib/cisco_node_utils/router_ospf_vrf.rb +14 -19
- data/lib/cisco_node_utils/snmp_notification_receiver.rb +158 -0
- data/lib/cisco_node_utils/snmpcommunity.rb +3 -5
- data/lib/cisco_node_utils/snmpgroup.rb +1 -1
- data/lib/cisco_node_utils/snmpnotification.rb +57 -0
- data/lib/cisco_node_utils/snmpserver.rb +8 -17
- data/lib/cisco_node_utils/snmpuser.rb +67 -28
- data/lib/cisco_node_utils/syslog_server.rb +3 -9
- data/lib/cisco_node_utils/syslog_settings.rb +2 -10
- data/lib/cisco_node_utils/tacacs_server.rb +9 -14
- data/lib/cisco_node_utils/tacacs_server_group.rb +145 -0
- data/lib/cisco_node_utils/tacacs_server_host.rb +5 -9
- data/lib/cisco_node_utils/vdc.rb +88 -0
- data/lib/cisco_node_utils/version.rb +5 -2
- data/lib/cisco_node_utils/vlan.rb +71 -8
- data/lib/cisco_node_utils/vni.rb +227 -0
- data/lib/cisco_node_utils/vpc.rb +377 -0
- data/lib/cisco_node_utils/vrf.rb +60 -9
- data/lib/cisco_node_utils/vrf_af.rb +191 -0
- data/lib/cisco_node_utils/vtp.rb +8 -6
- data/lib/cisco_node_utils/vxlan_vtep.rb +151 -0
- data/lib/cisco_node_utils/vxlan_vtep_vni.rb +234 -0
- data/lib/cisco_node_utils/yum.rb +1 -1
- data/tests/.rubocop.yml +1 -1
- data/tests/basetest.rb +16 -7
- data/tests/ciscotest.rb +55 -13
- data/tests/cmd_config.yaml +2 -2
- data/tests/platform_info.rb +3 -2
- data/tests/test_aaa_authentication_login.rb +219 -0
- data/tests/test_aaa_authentication_login_service.rb +759 -0
- data/tests/test_aaa_authorization_service.rb +1041 -0
- data/tests/test_ace.rb +160 -0
- data/tests/test_acl.rb +176 -0
- data/tests/test_bgp_af.rb +269 -13
- data/tests/test_bgp_neighbor.rb +38 -40
- data/tests/test_bgp_neighbor_af.rb +92 -32
- data/tests/test_command_config.rb +5 -5
- data/tests/test_command_reference.rb +284 -101
- data/tests/test_dns_domain.rb +1 -1
- data/tests/test_domain_name.rb +1 -1
- data/tests/test_evpn_vni.rb +106 -0
- data/tests/test_fabricpath_global.rb +243 -0
- data/tests/test_fabricpath_topology.rb +98 -0
- data/tests/test_interface.rb +292 -74
- data/tests/test_interface_channel_group.rb +74 -0
- data/tests/test_interface_ospf.rb +9 -4
- data/tests/test_interface_portchannel.rb +105 -0
- data/tests/test_interface_service_vni.rb +232 -0
- data/tests/test_interface_svi.rb +77 -62
- data/tests/test_interface_switchport.rb +17 -5
- data/tests/test_name_server.rb +1 -1
- data/tests/test_node.rb +1 -1
- data/tests/test_node_ext.rb +10 -20
- data/tests/test_ntp_config.rb +1 -1
- data/tests/test_ntp_server.rb +18 -6
- data/tests/test_overlay_global.rb +102 -0
- data/tests/test_pim.rb +177 -0
- data/tests/test_pim_group_list.rb +181 -0
- data/tests/test_pim_rp_address.rb +153 -0
- data/tests/test_platform.rb +3 -3
- data/tests/test_portchannel_global.rb +202 -0
- data/tests/test_radius_global.rb +1 -1
- data/tests/test_radius_server.rb +92 -57
- data/tests/test_radius_server_group.rb +149 -0
- data/tests/test_router_bgp.rb +283 -112
- data/tests/test_router_ospf.rb +2 -2
- data/tests/test_router_ospf_vrf.rb +4 -4
- data/tests/test_snmp_notification_receiver.rb +167 -0
- data/tests/test_snmpcommunity.rb +1 -1
- data/tests/test_snmpgroup.rb +1 -1
- data/tests/test_snmpnotification.rb +72 -0
- data/tests/test_snmpserver.rb +29 -105
- data/tests/test_snmpuser.rb +32 -30
- data/tests/test_syslog_server.rb +36 -10
- data/tests/test_syslog_settings.rb +1 -1
- data/tests/test_tacacs_server.rb +1 -1
- data/tests/test_tacacs_server_group.rb +405 -0
- data/tests/test_tacacs_server_host.rb +1 -1
- data/tests/test_vdc.rb +78 -0
- data/tests/test_vlan.rb +74 -19
- data/tests/test_vlan_mt_full.rb +95 -0
- data/tests/test_vni.rb +106 -0
- data/tests/test_vpc.rb +361 -0
- data/tests/test_vrf.rb +172 -29
- data/tests/test_vtp.rb +1 -1
- data/tests/test_vxlan_vtep.rb +214 -0
- data/tests/test_vxlan_vtep_vni.rb +201 -0
- data/tests/test_yum.rb +1 -1
- metadata +120 -11
- data/lib/cisco_node_utils/README_YAML.md +0 -325
- data/lib/cisco_node_utils/command_reference_common.yaml +0 -1051
- data/lib/cisco_node_utils/command_reference_common_bgp.yaml +0 -535
- data/lib/cisco_node_utils/command_reference_n3064.yaml +0 -13
- data/lib/cisco_node_utils/command_reference_n7k.yaml +0 -52
- data/lib/cisco_node_utils/command_reference_n9k.yaml +0 -26
- data/tests/platform_info.yaml +0 -10
data/tests/test_router_ospf.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2014-
|
|
1
|
+
# Copyright (c) 2014-2016 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.
|
|
@@ -66,7 +66,7 @@ class TestRouterOspf < CiscoTestCase
|
|
|
66
66
|
msg: "'router ospf ospfTest' not configured")
|
|
67
67
|
ospf.destroy
|
|
68
68
|
|
|
69
|
-
refute_show_match(command: 'show run all | no-more',
|
|
69
|
+
refute_show_match(command: 'show run all | inc feature | no-more',
|
|
70
70
|
pattern: /feature ospf/,
|
|
71
71
|
msg: "Error: 'feature ospf' still configured")
|
|
72
72
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2014-
|
|
1
|
+
# Copyright (c) 2014-2016 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.
|
|
@@ -131,7 +131,7 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
|
131
131
|
cot: RouterOspfVrf::OSPF_AUTO_COST[:mbps], dm: 15_000,
|
|
132
132
|
id: '9.0.0.2', l1: 130, l2: 530, l3: 1030, s1: 300,
|
|
133
133
|
s2: 600, s3: 1100
|
|
134
|
-
}
|
|
134
|
+
}
|
|
135
135
|
},
|
|
136
136
|
'bxb300' => {
|
|
137
137
|
'default' => {
|
|
@@ -139,7 +139,7 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
|
139
139
|
cot: RouterOspfVrf::OSPF_AUTO_COST[:mbps], dm: 10_000,
|
|
140
140
|
id: '10.0.0.3', l1: 130, l2: 530, l3: 1030, s1: 300,
|
|
141
141
|
s2: 600, s3: 1100
|
|
142
|
-
}
|
|
142
|
+
}
|
|
143
143
|
},
|
|
144
144
|
)
|
|
145
145
|
# rubocop:enable Style/AlignHash
|
|
@@ -557,7 +557,7 @@ class TestRouterOspfVrf < CiscoTestCase
|
|
|
557
557
|
cot: RouterOspfVrf::OSPF_AUTO_COST[:mbps], dm: 15_000,
|
|
558
558
|
id: '9.0.0.2', l1: 130, l2: 530, l3: 1030, s1: 300,
|
|
559
559
|
s2: 600, s3: 1100
|
|
560
|
-
}
|
|
560
|
+
}
|
|
561
561
|
},
|
|
562
562
|
'bxb300' => {
|
|
563
563
|
'default' => {
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Minitest for SnmpNotificationReceiver class
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2014-2016 Cisco and/or its affiliates.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
|
|
18
|
+
require_relative 'ciscotest'
|
|
19
|
+
require_relative '../lib/cisco_node_utils/snmp_notification_receiver'
|
|
20
|
+
|
|
21
|
+
# TestSnmpNotificationReceiver - Minitest for SnmpNotificationReceiver
|
|
22
|
+
# node utility.
|
|
23
|
+
class TestSnmpNotificationReceiver < CiscoTestCase
|
|
24
|
+
def setup
|
|
25
|
+
# setup runs at the beginning of each test
|
|
26
|
+
super
|
|
27
|
+
no_snmpnotificationreceiver
|
|
28
|
+
config('vrf context red')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def teardown
|
|
32
|
+
# teardown runs at the end of each test
|
|
33
|
+
no_snmpnotificationreceiver
|
|
34
|
+
config('no vrf context red')
|
|
35
|
+
super
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def no_snmpnotificationreceiver
|
|
39
|
+
# Turn the feature off for a clean test.
|
|
40
|
+
config('no snmp-server host 4.5.6.7 informs version 3 priv ab udp-port 45',
|
|
41
|
+
'no snmp-server host 2004::7 traps version 3 auth cd udp-port 46')
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# TESTS
|
|
45
|
+
|
|
46
|
+
def test_create_destroy_single
|
|
47
|
+
id = '4.5.6.7'
|
|
48
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
49
|
+
|
|
50
|
+
receiver = \
|
|
51
|
+
Cisco::SnmpNotificationReceiver.new(id,
|
|
52
|
+
instantiate: true,
|
|
53
|
+
type: 'informs',
|
|
54
|
+
version: '3',
|
|
55
|
+
security: 'priv',
|
|
56
|
+
username: 'ab',
|
|
57
|
+
port: '45',
|
|
58
|
+
vrf: 'red',
|
|
59
|
+
source_interface: interfaces[0].downcase) # rubocop:disable Metrics/LineLength
|
|
60
|
+
|
|
61
|
+
assert_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
62
|
+
assert_equal(receiver, Cisco::SnmpNotificationReceiver.receivers[id])
|
|
63
|
+
|
|
64
|
+
assert_equal(interfaces[0].downcase,
|
|
65
|
+
Cisco::SnmpNotificationReceiver.receivers[id].source_interface) # rubocop:disable Metrics/LineLength
|
|
66
|
+
assert_equal('45', Cisco::SnmpNotificationReceiver.receivers[id].port)
|
|
67
|
+
assert_equal('informs', Cisco::SnmpNotificationReceiver.receivers[id].type)
|
|
68
|
+
assert_equal('ab', Cisco::SnmpNotificationReceiver.receivers[id].username)
|
|
69
|
+
assert_equal('3', Cisco::SnmpNotificationReceiver.receivers[id].version)
|
|
70
|
+
assert_equal('red', Cisco::SnmpNotificationReceiver.receivers[id].vrf)
|
|
71
|
+
assert_equal('priv', Cisco::SnmpNotificationReceiver.receivers[id].security)
|
|
72
|
+
|
|
73
|
+
receiver.destroy
|
|
74
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_create_destroy_single_ipv6
|
|
78
|
+
id = '2004::7'
|
|
79
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
80
|
+
|
|
81
|
+
receiver = \
|
|
82
|
+
Cisco::SnmpNotificationReceiver.new(id,
|
|
83
|
+
instantiate: true,
|
|
84
|
+
type: 'informs',
|
|
85
|
+
version: '3',
|
|
86
|
+
security: 'priv',
|
|
87
|
+
username: 'ab',
|
|
88
|
+
port: '45',
|
|
89
|
+
vrf: 'red',
|
|
90
|
+
source_interface: interfaces[0].downcase) # rubocop:disable Metrics/LineLength
|
|
91
|
+
|
|
92
|
+
assert_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
93
|
+
assert_equal(receiver, Cisco::SnmpNotificationReceiver.receivers[id])
|
|
94
|
+
|
|
95
|
+
assert_equal(interfaces[0].downcase,
|
|
96
|
+
Cisco::SnmpNotificationReceiver.receivers[id].source_interface) # rubocop:disable Metrics/LineLength
|
|
97
|
+
assert_equal('45', Cisco::SnmpNotificationReceiver.receivers[id].port)
|
|
98
|
+
assert_equal('informs', Cisco::SnmpNotificationReceiver.receivers[id].type)
|
|
99
|
+
assert_equal('ab', Cisco::SnmpNotificationReceiver.receivers[id].username)
|
|
100
|
+
assert_equal('3', Cisco::SnmpNotificationReceiver.receivers[id].version)
|
|
101
|
+
assert_equal('red', Cisco::SnmpNotificationReceiver.receivers[id].vrf)
|
|
102
|
+
assert_equal('priv', Cisco::SnmpNotificationReceiver.receivers[id].security)
|
|
103
|
+
|
|
104
|
+
receiver.destroy
|
|
105
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_create_destroy_multiple
|
|
109
|
+
id = '4.5.6.7'
|
|
110
|
+
id2 = '2004::7'
|
|
111
|
+
|
|
112
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
113
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id2)
|
|
114
|
+
|
|
115
|
+
receiver = \
|
|
116
|
+
Cisco::SnmpNotificationReceiver.new(id,
|
|
117
|
+
instantiate: true,
|
|
118
|
+
type: 'informs',
|
|
119
|
+
version: '3',
|
|
120
|
+
security: 'priv',
|
|
121
|
+
username: 'ab',
|
|
122
|
+
port: '45',
|
|
123
|
+
vrf: 'red',
|
|
124
|
+
source_interface: interfaces[0].downcase) # rubocop:disable Metrics/LineLength
|
|
125
|
+
|
|
126
|
+
receiver2 = \
|
|
127
|
+
Cisco::SnmpNotificationReceiver.new(id2,
|
|
128
|
+
instantiate: true,
|
|
129
|
+
type: 'traps',
|
|
130
|
+
version: '3',
|
|
131
|
+
security: 'auth',
|
|
132
|
+
username: 'cd',
|
|
133
|
+
port: '46',
|
|
134
|
+
vrf: 'red',
|
|
135
|
+
source_interface: interfaces[1].downcase) # rubocop:disable Metrics/LineLength
|
|
136
|
+
|
|
137
|
+
assert_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
138
|
+
assert_equal(receiver, Cisco::SnmpNotificationReceiver.receivers[id])
|
|
139
|
+
|
|
140
|
+
assert_equal(interfaces[0].downcase,
|
|
141
|
+
Cisco::SnmpNotificationReceiver.receivers[id].source_interface) # rubocop:disable Metrics/LineLength
|
|
142
|
+
assert_equal('45', Cisco::SnmpNotificationReceiver.receivers[id].port)
|
|
143
|
+
assert_equal('informs', Cisco::SnmpNotificationReceiver.receivers[id].type)
|
|
144
|
+
assert_equal('ab', Cisco::SnmpNotificationReceiver.receivers[id].username)
|
|
145
|
+
assert_equal('3', Cisco::SnmpNotificationReceiver.receivers[id].version)
|
|
146
|
+
assert_equal('red', Cisco::SnmpNotificationReceiver.receivers[id].vrf)
|
|
147
|
+
assert_equal('priv', Cisco::SnmpNotificationReceiver.receivers[id].security)
|
|
148
|
+
|
|
149
|
+
assert_includes(Cisco::SnmpNotificationReceiver.receivers, id2)
|
|
150
|
+
assert_equal(receiver2, Cisco::SnmpNotificationReceiver.receivers[id2])
|
|
151
|
+
|
|
152
|
+
assert_equal(interfaces[1].downcase,
|
|
153
|
+
Cisco::SnmpNotificationReceiver.receivers[id2].source_interface) # rubocop:disable Metrics/LineLength
|
|
154
|
+
assert_equal('46', Cisco::SnmpNotificationReceiver.receivers[id2].port)
|
|
155
|
+
assert_equal('traps', Cisco::SnmpNotificationReceiver.receivers[id2].type)
|
|
156
|
+
assert_equal('cd', Cisco::SnmpNotificationReceiver.receivers[id2].username)
|
|
157
|
+
assert_equal('3', Cisco::SnmpNotificationReceiver.receivers[id2].version)
|
|
158
|
+
assert_equal('red', Cisco::SnmpNotificationReceiver.receivers[id2].vrf)
|
|
159
|
+
assert_equal('auth',
|
|
160
|
+
Cisco::SnmpNotificationReceiver.receivers[id2].security)
|
|
161
|
+
|
|
162
|
+
receiver.destroy
|
|
163
|
+
receiver2.destroy
|
|
164
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id)
|
|
165
|
+
refute_includes(Cisco::SnmpNotificationReceiver.receivers, id2)
|
|
166
|
+
end
|
|
167
|
+
end
|
data/tests/test_snmpcommunity.rb
CHANGED
data/tests/test_snmpgroup.rb
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Minitest for snmpnotification class
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2014-2016 Cisco and/or its affiliates.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
|
|
18
|
+
require_relative 'ciscotest'
|
|
19
|
+
require_relative '../lib/cisco_node_utils/snmpnotification'
|
|
20
|
+
|
|
21
|
+
# TestRadiusGlobal - Minitest for RadiusGlobal node utility.
|
|
22
|
+
class TestSnmpNotification < CiscoTestCase
|
|
23
|
+
def setup
|
|
24
|
+
# setup runs at the beginning of each test
|
|
25
|
+
super
|
|
26
|
+
no_snmp_notification
|
|
27
|
+
config('no feature bgp')
|
|
28
|
+
config('feature bgp')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def teardown
|
|
32
|
+
# teardown runs at the end of each test
|
|
33
|
+
no_snmp_notification
|
|
34
|
+
config('no feature bgp')
|
|
35
|
+
super
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def no_snmp_notification
|
|
39
|
+
# Turn the feature off for a clean test.
|
|
40
|
+
config('no snmp-server enable traps')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# TESTS
|
|
44
|
+
|
|
45
|
+
def test_snmp_notification
|
|
46
|
+
# test traps returned
|
|
47
|
+
assert_equal(false, Cisco::SnmpNotification.notifications.empty?,
|
|
48
|
+
'notifications is not empty')
|
|
49
|
+
assert_equal(Cisco::SnmpNotification,
|
|
50
|
+
Cisco::SnmpNotification.notifications['vtp notifs'].class,
|
|
51
|
+
'vtp notifs exists')
|
|
52
|
+
|
|
53
|
+
# set up some traps
|
|
54
|
+
cfs_state = Cisco::SnmpNotification.new('cfs state-change-notif')
|
|
55
|
+
bgp = Cisco::SnmpNotification.new('bgp cbgp2 state-changes')
|
|
56
|
+
|
|
57
|
+
# Default Checking
|
|
58
|
+
assert_equal(cfs_state.enable, false)
|
|
59
|
+
assert_equal(bgp.enable, false)
|
|
60
|
+
|
|
61
|
+
cfs_state.enable = true
|
|
62
|
+
bgp.enable = true
|
|
63
|
+
assert_equal(cfs_state.enable, true)
|
|
64
|
+
assert_equal(bgp.enable, true)
|
|
65
|
+
|
|
66
|
+
# Setting back to default and re-checking
|
|
67
|
+
cfs_state.enable = false
|
|
68
|
+
bgp.enable = false
|
|
69
|
+
assert_equal(cfs_state.enable, false)
|
|
70
|
+
assert_equal(bgp.enable, false)
|
|
71
|
+
end
|
|
72
|
+
end
|
data/tests/test_snmpserver.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2013-
|
|
1
|
+
# Copyright (c) 2013-2016 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.
|
|
@@ -293,122 +293,46 @@ class TestSnmpServer < CiscoTestCase
|
|
|
293
293
|
snmpserver.packet_size = 0
|
|
294
294
|
end
|
|
295
295
|
|
|
296
|
-
def
|
|
296
|
+
def test_snmpserver_global_enforce_priv
|
|
297
297
|
snmpserver = SnmpServer.new
|
|
298
|
-
|
|
299
|
-
snmpserver.global_enforce_priv =
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
else
|
|
304
|
-
assert_show_match(pattern: /no snmp-server globalEnforcePriv/)
|
|
305
|
-
end
|
|
306
|
-
# set to default
|
|
307
|
-
snmpserver.global_enforce_priv = snmpserver.default_global_enforce_priv
|
|
308
|
-
end
|
|
298
|
+
default = snmpserver.default_global_enforce_priv
|
|
299
|
+
snmpserver.global_enforce_priv = default
|
|
300
|
+
if default == true
|
|
301
|
+
assert_show_match(pattern: /^snmp-server globalEnforcePriv/)
|
|
302
|
+
assert(snmpserver.global_enforce_priv?)
|
|
309
303
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
device_enabled = snmpserver.global_enforce_priv?
|
|
314
|
-
if device_enabled
|
|
315
|
-
refute_show_match(pattern: /no snmp-server globalEnforcePriv/)
|
|
304
|
+
snmpserver.global_enforce_priv = false
|
|
305
|
+
assert_show_match(pattern: /^no snmp-server globalEnforcePriv/)
|
|
306
|
+
refute(snmpserver.global_enforce_priv?)
|
|
316
307
|
else
|
|
317
|
-
assert_show_match(pattern:
|
|
318
|
-
|
|
319
|
-
# set to default
|
|
320
|
-
snmpserver.global_enforce_priv = snmpserver.default_global_enforce_priv
|
|
321
|
-
end
|
|
308
|
+
assert_show_match(pattern: /^no snmp-server globalEnforcePriv/)
|
|
309
|
+
refute(snmpserver.global_enforce_priv?)
|
|
322
310
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
assert_show_match(pattern: /snmp-server globalEnforcePriv/)
|
|
327
|
-
# set to default
|
|
328
|
-
snmpserver.global_enforce_priv = snmpserver.default_global_enforce_priv
|
|
329
|
-
end
|
|
330
|
-
|
|
331
|
-
def test_snmpserver_global_enforce_priv_set_disabled
|
|
332
|
-
snmpserver = SnmpServer.new
|
|
333
|
-
snmpserver.global_enforce_priv = false
|
|
334
|
-
assert_show_match(pattern: /no snmp-server globalEnforcePriv/)
|
|
335
|
-
# set to default
|
|
336
|
-
snmpserver.global_enforce_priv = snmpserver.default_global_enforce_priv
|
|
337
|
-
end
|
|
338
|
-
|
|
339
|
-
def test_snmpserver_protocol_get_default
|
|
340
|
-
snmpserver = SnmpServer.new
|
|
341
|
-
# set default
|
|
342
|
-
snmpserver.protocol = true
|
|
343
|
-
assert_show_match(pattern: /^snmp-server protocol enable/)
|
|
344
|
-
# set to default
|
|
345
|
-
snmpserver.protocol = snmpserver.default_protocol
|
|
346
|
-
end
|
|
347
|
-
|
|
348
|
-
def test_snmpserver_protocol_get_disabled
|
|
349
|
-
snmpserver = SnmpServer.new
|
|
350
|
-
snmpserver.protocol = false
|
|
351
|
-
device_enabled = snmpserver.protocol?
|
|
352
|
-
if device_enabled
|
|
353
|
-
assert_show_match(pattern: /^snmp-server protocol enable/)
|
|
354
|
-
else
|
|
355
|
-
assert_show_match(pattern: /no snmp-server protocol enable/)
|
|
311
|
+
snmpserver.global_enforce_priv = true
|
|
312
|
+
assert_show_match(pattern: /^snmp-server globalEnforcePriv/)
|
|
313
|
+
assert(snmpserver.global_enforce_priv?)
|
|
356
314
|
end
|
|
357
|
-
#
|
|
358
|
-
snmpserver.
|
|
359
|
-
end
|
|
360
|
-
|
|
361
|
-
def test_snmpserver_protocol_set_enabled
|
|
362
|
-
snmpserver = SnmpServer.new
|
|
363
|
-
snmpserver.protocol = true
|
|
364
|
-
assert_show_match(pattern: /^snmp-server protocol enable/)
|
|
365
|
-
# set to default
|
|
366
|
-
snmpserver.protocol = snmpserver.default_protocol
|
|
315
|
+
# Cleanup
|
|
316
|
+
snmpserver.global_enforce_priv = snmpserver.default_global_enforce_priv
|
|
367
317
|
end
|
|
368
318
|
|
|
369
|
-
def
|
|
319
|
+
def test_snmpserver_protocol_get_set
|
|
370
320
|
snmpserver = SnmpServer.new
|
|
371
321
|
snmpserver.protocol = false
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
322
|
+
assert_equal(false, snmpserver.protocol?)
|
|
323
|
+
snmpserver.protocol =
|
|
324
|
+
snmpserver.default_protocol
|
|
325
|
+
assert_equal(snmpserver.default_protocol,
|
|
326
|
+
snmpserver.protocol?)
|
|
375
327
|
end
|
|
376
328
|
|
|
377
|
-
def
|
|
329
|
+
def test_snmpserver_tcp_session_auth_get_set
|
|
378
330
|
snmpserver = SnmpServer.new
|
|
379
|
-
# default value is false
|
|
380
331
|
snmpserver.tcp_session_auth = false
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
end
|
|
387
|
-
# set to default
|
|
388
|
-
snmpserver.tcp_session_auth = snmpserver.default_tcp_session_auth
|
|
389
|
-
end
|
|
390
|
-
|
|
391
|
-
def test_snmpserver_tcp_session_auth_get_enabled
|
|
392
|
-
snmpserver = SnmpServer.new
|
|
393
|
-
snmpserver.tcp_session_auth = true
|
|
394
|
-
assert_show_match(pattern: /^snmp-server tcp-session auth/)
|
|
395
|
-
# set to default
|
|
396
|
-
snmpserver.tcp_session_auth = snmpserver.default_tcp_session_auth
|
|
397
|
-
end
|
|
398
|
-
|
|
399
|
-
def test_snmpserver_tcp_session_auth_set_enabled
|
|
400
|
-
snmpserver = SnmpServer.new
|
|
401
|
-
snmpserver.tcp_session_auth = true
|
|
402
|
-
assert_show_match(pattern: /^snmp-server tcp-session auth/)
|
|
403
|
-
# set to default
|
|
404
|
-
snmpserver.tcp_session_auth = snmpserver.default_tcp_session_auth
|
|
405
|
-
end
|
|
406
|
-
|
|
407
|
-
def test_snmpserver_tcp_session_auth_set_default
|
|
408
|
-
snmpserver = SnmpServer.new
|
|
409
|
-
snmpserver.tcp_session_auth = false
|
|
410
|
-
assert_show_match(pattern: /no snmp-server tcp-session auth/)
|
|
411
|
-
# set to default
|
|
412
|
-
snmpserver.tcp_session_auth = snmpserver.default_tcp_session_auth
|
|
332
|
+
assert_equal(false, snmpserver.tcp_session_auth?)
|
|
333
|
+
snmpserver.tcp_session_auth =
|
|
334
|
+
snmpserver.default_tcp_session_auth
|
|
335
|
+
assert_equal(snmpserver.default_tcp_session_auth,
|
|
336
|
+
snmpserver.tcp_session_auth?)
|
|
413
337
|
end
|
|
414
338
|
end
|