Adding upstream version 1.4.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-05-15 09:34:27 +02:00
parent dc7df702ea
commit 7996c81031
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
166 changed files with 13787 additions and 11959 deletions

View file

@ -5,8 +5,11 @@
from __future__ import annotations
from typing import Any
import sys
from typing import TYPE_CHECKING, Any
from anta.models import AntaTest
from anta.result_manager.models import AntaTestStatus
from anta.tests.snmp import (
VerifySnmpContact,
VerifySnmpErrorCounters,
@ -23,234 +26,117 @@ from anta.tests.snmp import (
)
from tests.units.anta_tests import test
DATA: list[dict[str, Any]] = [
{
"name": "success",
"test": VerifySnmpStatus,
if TYPE_CHECKING:
from tests.units.anta_tests import AntaUnitTestDataDict
DATA: AntaUnitTestDataDict = {
(VerifySnmpStatus, "success"): {
"eos_data": [{"vrfs": {"snmpVrfs": ["MGMT", "default"]}, "enabled": True}],
"inputs": {"vrf": "MGMT"},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-wrong-vrf",
"test": VerifySnmpStatus,
(VerifySnmpStatus, "failure-wrong-vrf"): {
"eos_data": [{"vrfs": {"snmpVrfs": ["default"]}, "enabled": True}],
"inputs": {"vrf": "MGMT"},
"expected": {"result": "failure", "messages": ["VRF: MGMT - SNMP agent disabled"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["VRF: MGMT - SNMP agent disabled"]},
},
{
"name": "failure-disabled",
"test": VerifySnmpStatus,
(VerifySnmpStatus, "failure-disabled"): {
"eos_data": [{"vrfs": {"snmpVrfs": ["default"]}, "enabled": False}],
"inputs": {"vrf": "default"},
"expected": {"result": "failure", "messages": ["VRF: default - SNMP agent disabled"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["VRF: default - SNMP agent disabled"]},
},
{
"name": "success",
"test": VerifySnmpIPv4Acl,
(VerifySnmpIPv4Acl, "success"): {
"eos_data": [{"ipAclList": {"aclList": [{"type": "Ip4Acl", "name": "ACL_IPV4_SNMP", "configuredVrfs": ["MGMT"], "activeVrfs": ["MGMT"]}]}}],
"inputs": {"number": 1, "vrf": "MGMT"},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-wrong-number",
"test": VerifySnmpIPv4Acl,
(VerifySnmpIPv4Acl, "failure-wrong-number"): {
"eos_data": [{"ipAclList": {"aclList": []}}],
"inputs": {"number": 1, "vrf": "MGMT"},
"expected": {"result": "failure", "messages": ["VRF: MGMT - Incorrect SNMP IPv4 ACL(s) - Expected: 1 Actual: 0"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["VRF: MGMT - Incorrect SNMP IPv4 ACL(s) - Expected: 1 Actual: 0"]},
},
{
"name": "failure-wrong-vrf",
"test": VerifySnmpIPv4Acl,
(VerifySnmpIPv4Acl, "failure-wrong-vrf"): {
"eos_data": [{"ipAclList": {"aclList": [{"type": "Ip4Acl", "name": "ACL_IPV4_SNMP", "configuredVrfs": ["default"], "activeVrfs": ["default"]}]}}],
"inputs": {"number": 1, "vrf": "MGMT"},
"expected": {"result": "failure", "messages": ["VRF: MGMT - Following SNMP IPv4 ACL(s) not configured or active: ACL_IPV4_SNMP"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["VRF: MGMT - Following SNMP IPv4 ACL(s) not configured or active: ACL_IPV4_SNMP"]},
},
{
"name": "success",
"test": VerifySnmpIPv6Acl,
(VerifySnmpIPv6Acl, "success"): {
"eos_data": [{"ipv6AclList": {"aclList": [{"type": "Ip6Acl", "name": "ACL_IPV6_SNMP", "configuredVrfs": ["MGMT"], "activeVrfs": ["MGMT"]}]}}],
"inputs": {"number": 1, "vrf": "MGMT"},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-wrong-number",
"test": VerifySnmpIPv6Acl,
(VerifySnmpIPv6Acl, "failure-wrong-number"): {
"eos_data": [{"ipv6AclList": {"aclList": []}}],
"inputs": {"number": 1, "vrf": "MGMT"},
"expected": {"result": "failure", "messages": ["VRF: MGMT - Incorrect SNMP IPv6 ACL(s) - Expected: 1 Actual: 0"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["VRF: MGMT - Incorrect SNMP IPv6 ACL(s) - Expected: 1 Actual: 0"]},
},
{
"name": "failure-wrong-vrf",
"test": VerifySnmpIPv6Acl,
(VerifySnmpIPv6Acl, "failure-wrong-vrf"): {
"eos_data": [{"ipv6AclList": {"aclList": [{"type": "Ip6Acl", "name": "ACL_IPV6_SNMP", "configuredVrfs": ["default"], "activeVrfs": ["default"]}]}}],
"inputs": {"number": 1, "vrf": "MGMT"},
"expected": {"result": "failure", "messages": ["VRF: MGMT - Following SNMP IPv6 ACL(s) not configured or active: ACL_IPV6_SNMP"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["VRF: MGMT - Following SNMP IPv6 ACL(s) not configured or active: ACL_IPV6_SNMP"]},
},
{
"name": "success",
"test": VerifySnmpLocation,
"eos_data": [
{
"location": {"location": "New York"},
}
],
(VerifySnmpLocation, "success"): {
"eos_data": [{"location": {"location": "New York"}}],
"inputs": {"location": "New York"},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-incorrect-location",
"test": VerifySnmpLocation,
"eos_data": [
{
"location": {"location": "Europe"},
}
],
(VerifySnmpLocation, "failure-incorrect-location"): {
"eos_data": [{"location": {"location": "Europe"}}],
"inputs": {"location": "New York"},
"expected": {
"result": "failure",
"messages": ["Incorrect SNMP location - Expected: New York Actual: Europe"],
},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["Incorrect SNMP location - Expected: New York Actual: Europe"]},
},
{
"name": "failure-details-not-configured",
"test": VerifySnmpLocation,
"eos_data": [
{
"location": {"location": ""},
}
],
(VerifySnmpLocation, "failure-details-not-configured"): {
"eos_data": [{"location": {"location": ""}}],
"inputs": {"location": "New York"},
"expected": {
"result": "failure",
"messages": ["SNMP location is not configured"],
},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["SNMP location is not configured"]},
},
{
"name": "success",
"test": VerifySnmpContact,
"eos_data": [
{
"contact": {"contact": "Jon@example.com"},
}
],
(VerifySnmpContact, "success"): {
"eos_data": [{"contact": {"contact": "Jon@example.com"}}],
"inputs": {"contact": "Jon@example.com"},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-incorrect-contact",
"test": VerifySnmpContact,
"eos_data": [
{
"contact": {"contact": "Jon@example.com"},
}
],
(VerifySnmpContact, "failure-incorrect-contact"): {
"eos_data": [{"contact": {"contact": "Jon@example.com"}}],
"inputs": {"contact": "Bob@example.com"},
"expected": {
"result": "failure",
"messages": ["Incorrect SNMP contact - Expected: Bob@example.com Actual: Jon@example.com"],
},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["Incorrect SNMP contact - Expected: Bob@example.com Actual: Jon@example.com"]},
},
{
"name": "failure-details-not-configured",
"test": VerifySnmpContact,
"eos_data": [
{
"contact": {"contact": ""},
}
],
(VerifySnmpContact, "failure-details-not-configured"): {
"eos_data": [{"contact": {"contact": ""}}],
"inputs": {"contact": "Bob@example.com"},
"expected": {
"result": "failure",
"messages": ["SNMP contact is not configured"],
},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["SNMP contact is not configured"]},
},
{
"name": "success",
"test": VerifySnmpPDUCounters,
"eos_data": [
{
"counters": {
"inGetPdus": 3,
"inGetNextPdus": 2,
"inSetPdus": 3,
"outGetResponsePdus": 3,
"outTrapPdus": 9,
},
}
],
(VerifySnmpPDUCounters, "success"): {
"eos_data": [{"counters": {"inGetPdus": 3, "inGetNextPdus": 2, "inSetPdus": 3, "outGetResponsePdus": 3, "outTrapPdus": 9}}],
"inputs": {},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "success-specific-pdus",
"test": VerifySnmpPDUCounters,
"eos_data": [
{
"counters": {
"inGetPdus": 3,
"inGetNextPdus": 0,
"inSetPdus": 0,
"outGetResponsePdus": 0,
"outTrapPdus": 9,
},
}
],
(VerifySnmpPDUCounters, "success-specific-pdus"): {
"eos_data": [{"counters": {"inGetPdus": 3, "inGetNextPdus": 0, "inSetPdus": 0, "outGetResponsePdus": 0, "outTrapPdus": 9}}],
"inputs": {"pdus": ["inGetPdus", "outTrapPdus"]},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-counters-not-found",
"test": VerifySnmpPDUCounters,
"eos_data": [
{
"counters": {},
}
],
(VerifySnmpPDUCounters, "failure-counters-not-found"): {
"eos_data": [{"counters": {}}],
"inputs": {},
"expected": {"result": "failure", "messages": ["SNMP counters not found"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["SNMP counters not found"]},
},
{
"name": "failure-incorrect-counters",
"test": VerifySnmpPDUCounters,
"eos_data": [
{
"counters": {
"inGetPdus": 0,
"inGetNextPdus": 2,
"inSetPdus": 0,
"outGetResponsePdus": 3,
"outTrapPdus": 9,
},
}
],
(VerifySnmpPDUCounters, "failure-incorrect-counters"): {
"eos_data": [{"counters": {"inGetPdus": 0, "inGetNextPdus": 2, "inSetPdus": 0, "outGetResponsePdus": 3, "outTrapPdus": 9}}],
"inputs": {},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": ["The following SNMP PDU counters are not found or have zero PDU counters: inGetPdus, inSetPdus"],
},
},
{
"name": "failure-pdu-not-found",
"test": VerifySnmpPDUCounters,
"eos_data": [
{
"counters": {
"inGetNextPdus": 0,
"inSetPdus": 0,
"outGetResponsePdus": 0,
},
}
],
(VerifySnmpPDUCounters, "failure-pdu-not-found"): {
"eos_data": [{"counters": {"inGetNextPdus": 0, "inSetPdus": 0, "outGetResponsePdus": 0}}],
"inputs": {"pdus": ["inGetPdus", "outTrapPdus"]},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": ["The following SNMP PDU counters are not found or have zero PDU counters: inGetPdus, outTrapPdus"],
},
},
{
"name": "success",
"test": VerifySnmpErrorCounters,
(VerifySnmpErrorCounters, "success"): {
"eos_data": [
{
"counters": {
@ -262,15 +148,13 @@ DATA: list[dict[str, Any]] = [
"outNoSuchNameErrs": 0,
"outBadValueErrs": 0,
"outGeneralErrs": 0,
},
}
}
],
"inputs": {},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "success-specific-counters",
"test": VerifySnmpErrorCounters,
(VerifySnmpErrorCounters, "success-specific-counters"): {
"eos_data": [
{
"counters": {
@ -282,26 +166,18 @@ DATA: list[dict[str, Any]] = [
"outNoSuchNameErrs": 0,
"outBadValueErrs": 10,
"outGeneralErrs": 1,
},
}
}
],
"inputs": {"error_counters": ["inVersionErrs", "inParseErrs"]},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-counters-not-found",
"test": VerifySnmpErrorCounters,
"eos_data": [
{
"counters": {},
}
],
(VerifySnmpErrorCounters, "failure-counters-not-found"): {
"eos_data": [{"counters": {}}],
"inputs": {},
"expected": {"result": "failure", "messages": ["SNMP counters not found"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["SNMP counters not found"]},
},
{
"name": "failure-incorrect-counters",
"test": VerifySnmpErrorCounters,
(VerifySnmpErrorCounters, "failure-incorrect-counters"): {
"eos_data": [
{
"counters": {
@ -313,18 +189,16 @@ DATA: list[dict[str, Any]] = [
"outNoSuchNameErrs": 0,
"outBadValueErrs": 2,
"outGeneralErrs": 0,
},
}
}
],
"inputs": {},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": ["The following SNMP error counters are not found or have non-zero error counters: inParseErrs, inVersionErrs, outBadValueErrs"],
},
},
{
"name": "success",
"test": VerifySnmpHostLogging,
(VerifySnmpHostLogging, "success"): {
"eos_data": [
{
"logging": {
@ -344,61 +218,38 @@ DATA: list[dict[str, Any]] = [
{"hostname": "snmp-server-01", "vrf": "default"},
]
},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-logging-disabled",
"test": VerifySnmpHostLogging,
(VerifySnmpHostLogging, "failure-logging-disabled"): {
"eos_data": [{"logging": {"loggingEnabled": False}}],
"inputs": {"hosts": [{"hostname": "192.168.1.100", "vrf": "default"}, {"hostname": "192.168.1.101", "vrf": "MGMT"}]},
"expected": {"result": "failure", "messages": ["SNMP logging is disabled"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["SNMP logging is disabled"]},
},
{
"name": "failure-mismatch-vrf",
"test": VerifySnmpHostLogging,
(VerifySnmpHostLogging, "failure-mismatch-vrf"): {
"eos_data": [{"logging": {"loggingEnabled": True, "hosts": {"192.168.1.100": {"port": 162, "vrf": "MGMT"}, "192.168.1.101": {"port": 162, "vrf": "Test"}}}}],
"inputs": {"hosts": [{"hostname": "192.168.1.100", "vrf": "default"}, {"hostname": "192.168.1.101", "vrf": "MGMT"}]},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": ["Host: 192.168.1.100 VRF: default - Incorrect VRF - Actual: MGMT", "Host: 192.168.1.101 VRF: MGMT - Incorrect VRF - Actual: Test"],
},
},
{
"name": "failure-host-not-configured",
"test": VerifySnmpHostLogging,
(VerifySnmpHostLogging, "failure-host-not-configured"): {
"eos_data": [{"logging": {"loggingEnabled": True, "hosts": {"192.168.1.100": {"port": 162, "vrf": "MGMT"}, "192.168.1.103": {"port": 162, "vrf": "Test"}}}}],
"inputs": {"hosts": [{"hostname": "192.168.1.101", "vrf": "default"}, {"hostname": "192.168.1.102", "vrf": "MGMT"}]},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": ["Host: 192.168.1.101 VRF: default - Not configured", "Host: 192.168.1.102 VRF: MGMT - Not configured"],
},
},
{
"name": "success",
"test": VerifySnmpUser,
(VerifySnmpUser, "success"): {
"eos_data": [
{
"usersByVersion": {
"v1": {
"users": {
"Test1": {
"groupName": "TestGroup1",
},
}
},
"v2c": {
"users": {
"Test2": {
"groupName": "TestGroup2",
},
}
},
"v1": {"users": {"Test1": {"groupName": "TestGroup1"}}},
"v2c": {"users": {"Test2": {"groupName": "TestGroup2"}}},
"v3": {
"users": {
"Test3": {
"groupName": "TestGroup3",
"v3Params": {"authType": "SHA-384", "privType": "AES-128"},
},
"Test3": {"groupName": "TestGroup3", "v3Params": {"authType": "SHA-384", "privType": "AES-128"}},
"Test4": {"groupName": "TestGroup3", "v3Params": {"authType": "SHA-512", "privType": "AES-192"}},
}
},
@ -413,25 +264,10 @@ DATA: list[dict[str, Any]] = [
{"username": "Test4", "group_name": "TestGroup3", "version": "v3", "auth_type": "SHA-512", "priv_type": "AES-192"},
]
},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-not-configured",
"test": VerifySnmpUser,
"eos_data": [
{
"usersByVersion": {
"v3": {
"users": {
"Test3": {
"groupName": "TestGroup3",
"v3Params": {"authType": "SHA-384", "privType": "AES-128"},
},
}
},
}
}
],
(VerifySnmpUser, "failure-not-configured"): {
"eos_data": [{"usersByVersion": {"v3": {"users": {"Test3": {"groupName": "TestGroup3", "v3Params": {"authType": "SHA-384", "privType": "AES-128"}}}}}}],
"inputs": {
"snmp_users": [
{"username": "Test1", "group_name": "TestGroup1", "version": "v1"},
@ -441,7 +277,7 @@ DATA: list[dict[str, Any]] = [
]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"User: Test1 Group: TestGroup1 Version: v1 - Not found",
"User: Test2 Group: TestGroup2 Version: v2c - Not found",
@ -449,70 +285,30 @@ DATA: list[dict[str, Any]] = [
],
},
},
{
"name": "failure-incorrect-group",
"test": VerifySnmpUser,
(VerifySnmpUser, "failure-incorrect-group"): {
"eos_data": [
{
"usersByVersion": {
"v1": {
"users": {
"Test1": {
"groupName": "TestGroup2",
},
}
},
"v2c": {
"users": {
"Test2": {
"groupName": "TestGroup1",
},
}
},
"v3": {},
}
}
{"usersByVersion": {"v1": {"users": {"Test1": {"groupName": "TestGroup2"}}}, "v2c": {"users": {"Test2": {"groupName": "TestGroup1"}}}, "v3": {}}}
],
"inputs": {
"snmp_users": [
{"username": "Test1", "group_name": "TestGroup1", "version": "v1"},
{"username": "Test2", "group_name": "TestGroup2", "version": "v2c"},
]
"snmp_users": [{"username": "Test1", "group_name": "TestGroup1", "version": "v1"}, {"username": "Test2", "group_name": "TestGroup2", "version": "v2c"}]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"User: Test1 Group: TestGroup1 Version: v1 - Incorrect user group - Actual: TestGroup2",
"User: Test2 Group: TestGroup2 Version: v2c - Incorrect user group - Actual: TestGroup1",
],
},
},
{
"name": "failure-incorrect-auth-encryption",
"test": VerifySnmpUser,
(VerifySnmpUser, "failure-incorrect-auth-encryption"): {
"eos_data": [
{
"usersByVersion": {
"v1": {
"users": {
"Test1": {
"groupName": "TestGroup1",
},
}
},
"v2c": {
"users": {
"Test2": {
"groupName": "TestGroup2",
},
}
},
"v1": {"users": {"Test1": {"groupName": "TestGroup1"}}},
"v2c": {"users": {"Test2": {"groupName": "TestGroup2"}}},
"v3": {
"users": {
"Test3": {
"groupName": "TestGroup3",
"v3Params": {"authType": "SHA-512", "privType": "AES-192"},
},
"Test3": {"groupName": "TestGroup3", "v3Params": {"authType": "SHA-512", "privType": "AES-192"}},
"Test4": {"groupName": "TestGroup4", "v3Params": {"authType": "SHA-384", "privType": "AES-128"}},
}
},
@ -528,7 +324,7 @@ DATA: list[dict[str, Any]] = [
]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"User: Test3 Group: TestGroup3 Version: v3 - Incorrect authentication type - Expected: SHA-384 Actual: SHA-512",
"User: Test3 Group: TestGroup3 Version: v3 - Incorrect privacy type - Expected: AES-128 Actual: AES-192",
@ -537,9 +333,7 @@ DATA: list[dict[str, Any]] = [
],
},
},
{
"name": "success",
"test": VerifySnmpNotificationHost,
(VerifySnmpNotificationHost, "success"): {
"eos_data": [
{
"hosts": [
@ -568,11 +362,9 @@ DATA: list[dict[str, Any]] = [
{"hostname": "192.168.1.101", "vrf": "MGMT", "notification_type": "trap", "version": "v2c", "udp_port": 162, "community_string": "public"},
]
},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-not-configured",
"test": VerifySnmpNotificationHost,
(VerifySnmpNotificationHost, "failure-not-configured"): {
"eos_data": [{"hosts": []}],
"inputs": {
"notification_hosts": [
@ -580,11 +372,9 @@ DATA: list[dict[str, Any]] = [
{"hostname": "192.168.1.101", "vrf": "default", "notification_type": "trap", "version": "v2c", "udp_port": 162, "community_string": "public"},
]
},
"expected": {"result": "failure", "messages": ["No SNMP host is configured"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["No SNMP host is configured"]},
},
{
"name": "failure-details-host-not-found",
"test": VerifySnmpNotificationHost,
(VerifySnmpNotificationHost, "failure-details-host-not-found"): {
"eos_data": [
{
"hosts": [
@ -595,7 +385,7 @@ DATA: list[dict[str, Any]] = [
"notificationType": "trap",
"protocolVersion": "v3",
"v3Params": {"user": "public", "securityLevel": "authNoPriv"},
},
}
]
}
],
@ -605,11 +395,9 @@ DATA: list[dict[str, Any]] = [
{"hostname": "192.168.1.101", "vrf": "default", "notification_type": "trap", "version": "v2c", "udp_port": 162, "community_string": "public"},
]
},
"expected": {"result": "failure", "messages": ["Host: 192.168.1.101 VRF: default Version: v2c - Not configured"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["Host: 192.168.1.101 VRF: default Version: v2c - Not configured"]},
},
{
"name": "failure-incorrect-notification-type",
"test": VerifySnmpNotificationHost,
(VerifySnmpNotificationHost, "failure-incorrect-notification-type"): {
"eos_data": [
{
"hosts": [
@ -639,16 +427,14 @@ DATA: list[dict[str, Any]] = [
]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"Host: 192.168.1.100 VRF: default - Incorrect notification type - Expected: inform Actual: trap",
"Host: 192.168.1.101 VRF: default - Incorrect notification type - Expected: trap Actual: inform",
],
},
},
{
"name": "failure-incorrect-udp-port",
"test": VerifySnmpNotificationHost,
(VerifySnmpNotificationHost, "failure-incorrect-udp-port"): {
"eos_data": [
{
"hosts": [
@ -678,16 +464,14 @@ DATA: list[dict[str, Any]] = [
]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"Host: 192.168.1.100 VRF: default - Incorrect UDP port - Expected: 162 Actual: 163",
"Host: 192.168.1.101 VRF: default - Incorrect UDP port - Expected: 162 Actual: 164",
],
},
},
{
"name": "failure-incorrect-community-string-version-v1-v2c",
"test": VerifySnmpNotificationHost,
(VerifySnmpNotificationHost, "failure-incorrect-community-string-version-v1-v2c"): {
"eos_data": [
{
"hosts": [
@ -717,16 +501,14 @@ DATA: list[dict[str, Any]] = [
]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"Host: 192.168.1.100 VRF: default Version: v1 - Incorrect community string - Expected: public Actual: private",
"Host: 192.168.1.101 VRF: default Version: v2c - Incorrect community string - Expected: public Actual: private",
],
},
},
{
"name": "failure-incorrect-user-for-version-v3",
"test": VerifySnmpNotificationHost,
(VerifySnmpNotificationHost, "failure-incorrect-user-for-version-v3"): {
"eos_data": [
{
"hosts": [
@ -742,58 +524,35 @@ DATA: list[dict[str, Any]] = [
}
],
"inputs": {
"notification_hosts": [
{"hostname": "192.168.1.100", "vrf": "default", "notification_type": "trap", "version": "v3", "udp_port": 162, "user": "public"},
]
"notification_hosts": [{"hostname": "192.168.1.100", "vrf": "default", "notification_type": "trap", "version": "v3", "udp_port": 162, "user": "public"}]
},
"expected": {
"result": AntaTestStatus.FAILURE,
"messages": ["Host: 192.168.1.100 VRF: default Version: v3 - Incorrect user - Expected: public Actual: private"],
},
"expected": {"result": "failure", "messages": ["Host: 192.168.1.100 VRF: default Version: v3 - Incorrect user - Expected: public Actual: private"]},
},
{
"name": "success",
"test": VerifySnmpSourceInterface,
"eos_data": [
{
"srcIntf": {"sourceInterfaces": {"default": "Ethernet1", "MGMT": "Management0"}},
}
],
(VerifySnmpSourceInterface, "success"): {
"eos_data": [{"srcIntf": {"sourceInterfaces": {"default": "Ethernet1", "MGMT": "Management0"}}}],
"inputs": {"interfaces": [{"interface": "Ethernet1", "vrf": "default"}, {"interface": "Management0", "vrf": "MGMT"}]},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-not-configured",
"test": VerifySnmpSourceInterface,
"eos_data": [
{
"srcIntf": {},
}
],
(VerifySnmpSourceInterface, "failure-not-configured"): {
"eos_data": [{"srcIntf": {}}],
"inputs": {"interfaces": [{"interface": "Ethernet1", "vrf": "default"}, {"interface": "Management0", "vrf": "MGMT"}]},
"expected": {"result": "failure", "messages": ["SNMP source interface(s) not configured"]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["SNMP source interface(s) not configured"]},
},
{
"name": "failure-incorrect-interfaces",
"test": VerifySnmpSourceInterface,
"eos_data": [
{
"srcIntf": {
"sourceInterfaces": {
"default": "Management0",
}
},
}
],
(VerifySnmpSourceInterface, "failure-incorrect-interfaces"): {
"eos_data": [{"srcIntf": {"sourceInterfaces": {"default": "Management0"}}}],
"inputs": {"interfaces": [{"interface": "Ethernet1", "vrf": "default"}, {"interface": "Management0", "vrf": "MGMT"}]},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"Source Interface: Ethernet1 VRF: default - Incorrect source interface - Actual: Management0",
"Source Interface: Management0 VRF: MGMT - Not configured",
],
},
},
{
"name": "success",
"test": VerifySnmpGroup,
(VerifySnmpGroup, "success"): {
"eos_data": [
{
"groups": {
@ -853,11 +612,9 @@ DATA: list[dict[str, Any]] = [
},
]
},
"expected": {"result": "success"},
"expected": {"result": AntaTestStatus.SUCCESS},
},
{
"name": "failure-incorrect-view",
"test": VerifySnmpGroup,
(VerifySnmpGroup, "failure-incorrect-view"): {
"eos_data": [
{
"groups": {
@ -918,7 +675,7 @@ DATA: list[dict[str, Any]] = [
]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"Group: Group1 Version: v1 - Incorrect Read view - Expected: group_read_1 Actual: group_read",
"Group: Group1 Version: v1 - Incorrect Write view - Expected: group_write_1 Actual: group_write",
@ -931,9 +688,7 @@ DATA: list[dict[str, Any]] = [
],
},
},
{
"name": "failure-view-config-not-found",
"test": VerifySnmpGroup,
(VerifySnmpGroup, "failure-view-config-not-found"): {
"eos_data": [
{
"groups": {
@ -983,17 +738,11 @@ DATA: list[dict[str, Any]] = [
"snmp_groups": [
{"group_name": "Group1", "version": "v1", "read_view": "group_read", "write_view": "group_write", "notify_view": "group_notify"},
{"group_name": "Group2", "version": "v2c", "read_view": "group_read", "write_view": "group_write", "notify_view": "group_notify"},
{
"group_name": "Group3",
"version": "v3",
"write_view": "group_write",
"notify_view": "group_notify",
"authentication": "priv",
},
{"group_name": "Group3", "version": "v3", "write_view": "group_write", "notify_view": "group_notify", "authentication": "priv"},
]
},
"expected": {
"result": "failure",
"result": AntaTestStatus.FAILURE,
"messages": [
"Group: Group1 Version: v1 Read View: group_read - Not configured",
"Group: Group1 Version: v1 Write View: group_write - Not configured",
@ -1006,18 +755,8 @@ DATA: list[dict[str, Any]] = [
],
},
},
{
"name": "failure-group-version-not-configured",
"test": VerifySnmpGroup,
"eos_data": [
{
"groups": {
"Group1": {"versions": {"v1": {}}},
"Group2": {"versions": {"v2c": {}}},
"Group3": {"versions": {"v3": {}}},
}
}
],
(VerifySnmpGroup, "failure-group-version-not-configured"): {
"eos_data": [{"groups": {"Group1": {"versions": {"v1": {}}}, "Group2": {"versions": {"v2c": {}}}, "Group3": {"versions": {"v3": {}}}}}],
"inputs": {
"snmp_groups": [
{"group_name": "Group1", "version": "v1", "read_view": "group_read_1", "write_view": "group_write_1"},
@ -1033,17 +772,11 @@ DATA: list[dict[str, Any]] = [
]
},
"expected": {
"result": "failure",
"messages": [
"Group: Group1 Version: v1 - Not configured",
"Group: Group2 Version: v2c - Not configured",
"Group: Group3 Version: v3 - Not configured",
],
"result": AntaTestStatus.FAILURE,
"messages": ["Group: Group1 Version: v1 - Not configured", "Group: Group2 Version: v2c - Not configured", "Group: Group3 Version: v3 - Not configured"],
},
},
{
"name": "failure-incorrect-v3-auth-model",
"test": VerifySnmpGroup,
(VerifySnmpGroup, "failure-incorrect-v3-auth-model"): {
"eos_data": [
{
"groups": {
@ -1059,7 +792,7 @@ DATA: list[dict[str, Any]] = [
"notifyViewConfig": True,
}
}
},
}
}
}
],
@ -1072,42 +805,20 @@ DATA: list[dict[str, Any]] = [
"write_view": "group_write",
"notify_view": "group_notify",
"authentication": "priv",
},
}
]
},
"expected": {
"result": "failure",
"messages": [
"Group: Group3 Version: v3 - Incorrect security model - Expected: v3Priv Actual: v3Auth",
],
},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["Group: Group3 Version: v3 - Incorrect security model - Expected: v3Priv Actual: v3Auth"]},
},
{
"name": "failure-view-not-configured",
"test": VerifySnmpGroup,
(VerifySnmpGroup, "failure-view-not-configured"): {
"eos_data": [
{
"groups": {
"Group3": {"versions": {"v3": {"secModel": "v3NoAuth", "readView": "group_read", "readViewConfig": True, "writeView": "", "notifyView": ""}}},
"Group3": {"versions": {"v3": {"secModel": "v3NoAuth", "readView": "group_read", "readViewConfig": True, "writeView": "", "notifyView": ""}}}
}
}
],
"inputs": {
"snmp_groups": [
{
"group_name": "Group3",
"version": "v3",
"read_view": "group_read",
"write_view": "group_write",
"authentication": "noauth",
},
]
},
"expected": {
"result": "failure",
"messages": [
"Group: Group3 Version: v3 View: write - Not configured",
],
},
"inputs": {"snmp_groups": [{"group_name": "Group3", "version": "v3", "read_view": "group_read", "write_view": "group_write", "authentication": "noauth"}]},
"expected": {"result": AntaTestStatus.FAILURE, "messages": ["Group: Group3 Version: v3 View: write - Not configured"]},
},
]
}