# Copyright (c) 2023-2025 Arista Networks, Inc. # Use of this source code is governed by the Apache License 2.0 # that can be found in the LICENSE file. """Test inputs for anta.tests.hardware.""" from __future__ import annotations from typing import Any from anta.tests.software import VerifyEOSExtensions, VerifyEOSVersion, VerifyTerminAttrVersion from tests.units.anta_tests import test DATA: list[dict[str, Any]] = [ { "name": "success", "test": VerifyEOSVersion, "eos_data": [ { "modelName": "vEOS-lab", "internalVersion": "4.27.0F-24305004.4270F", "version": "4.27.0F", }, ], "inputs": {"versions": ["4.27.0F", "4.28.0F"]}, "expected": {"result": "success"}, }, { "name": "failure", "test": VerifyEOSVersion, "eos_data": [ { "modelName": "vEOS-lab", "internalVersion": "4.27.0F-24305004.4270F", "version": "4.27.0F", }, ], "inputs": {"versions": ["4.27.1F"]}, "expected": {"result": "failure", "messages": ["EOS version mismatch - Actual: 4.27.0F not in Expected: 4.27.1F"]}, }, { "name": "success", "test": VerifyTerminAttrVersion, "eos_data": [ { "imageFormatVersion": "1.0", "uptime": 1107543.52, "modelName": "vEOS-lab", "details": { "deviations": [], "components": [{"name": "Aboot", "version": "Aboot-veos-8.0.0-3255441"}], "switchType": "fixedSystem", "packages": { "TerminAttr-core": {"release": "1", "version": "v1.17.0"}, }, }, }, ], "inputs": {"versions": ["v1.17.0", "v1.18.1"]}, "expected": {"result": "success"}, }, { "name": "failure", "test": VerifyTerminAttrVersion, "eos_data": [ { "imageFormatVersion": "1.0", "uptime": 1107543.52, "modelName": "vEOS-lab", "details": { "deviations": [], "components": [{"name": "Aboot", "version": "Aboot-veos-8.0.0-3255441"}], "switchType": "fixedSystem", "packages": { "TerminAttr-core": {"release": "1", "version": "v1.17.0"}, }, }, }, ], "inputs": {"versions": ["v1.17.1", "v1.18.1"]}, "expected": {"result": "failure", "messages": ["TerminAttr version mismatch - Actual: v1.17.0 not in Expected: v1.17.1, v1.18.1"]}, }, { "name": "success-no-extensions", "test": VerifyEOSExtensions, "eos_data": [ {"extensions": {}, "extensionStoredDir": "flash:", "warnings": ["No extensions are available"]}, {"extensions": []}, ], "inputs": None, "expected": {"result": "success"}, }, { "name": "success-extensions", "test": VerifyEOSExtensions, "eos_data": [ { "extensions": { "AristaCloudGateway-1.0.1-1.swix": { "version": "1.0.1", "release": "1", "presence": "present", "status": "installed", "boot": True, "numPackages": 1, "error": False, "vendor": "", "summary": "Arista Cloud Connect", "installedSize": 60532424, "packages": {"AristaCloudGateway-1.0.1-1.x86_64.rpm": {"version": "1.0.1", "release": "1"}}, "description": "An extension for Arista Cloud Connect gateway", "affectedAgents": [], "agentsToRestart": [], }, } }, {"extensions": ["AristaCloudGateway-1.0.1-1.swix"]}, ], "inputs": None, "expected": {"result": "success"}, }, { "name": "failure", "test": VerifyEOSExtensions, "eos_data": [ { "extensions": { "AristaCloudGateway-1.0.1-1.swix": { "version": "1.0.1", "release": "1", "presence": "present", "status": "installed", "boot": False, "numPackages": 1, "error": False, "vendor": "", "summary": "Arista Cloud Connect", "installedSize": 60532424, "packages": {"AristaCloudGateway-1.0.1-1.x86_64.rpm": {"version": "1.0.1", "release": "1"}}, "description": "An extension for Arista Cloud Connect gateway", "affectedAgents": [], "agentsToRestart": [], }, } }, {"extensions": []}, ], "inputs": None, "expected": {"result": "failure", "messages": ["EOS extensions mismatch - Installed: AristaCloudGateway-1.0.1-1.swix Configured: Not found"]}, }, { "name": "failure-multiple-extensions", "test": VerifyEOSExtensions, "eos_data": [ { "extensions": { "AristaCloudGateway-1.0.1-1.swix": { "version": "1.0.1", "release": "1", "presence": "present", "status": "installed", "boot": False, "numPackages": 1, "error": False, "vendor": "", "summary": "Arista Cloud Connect", "installedSize": 60532424, "packages": {"AristaCloudGateway-1.0.1-1.x86_64.rpm": {"version": "1.0.1", "release": "1"}}, "description": "An extension for Arista Cloud Connect gateway", "affectedAgents": [], "agentsToRestart": [], }, "EOS-4.33.0F-NDRSensor.swix": { "version": "4.33.0", "release": "39050855.4330F", "presence": "present", "status": "notInstalled", "boot": True, "numPackages": 9, "error": False, "statusDetail": "No RPMs are compatible with current EOS version.", "vendor": "", "summary": "NDR sensor", "installedSize": 0, "packages": {}, "description": "NDR sensor provides libraries to generate flow activity records using DPI\nmetadata and IPFIX flow records.", "affectedAgents": [], "agentsToRestart": [], }, } }, {"extensions": ["AristaCloudGateway-1.0.1-1.swix", "EOS-4.33.0F-NDRSensor.swix"]}, ], "inputs": None, "expected": { "result": "failure", "messages": [ "EOS extensions mismatch - Installed: AristaCloudGateway-1.0.1-1.swix Configured: AristaCloudGateway-1.0.1-1.swix, EOS-4.33.0F-NDRSensor.swix" ], }, }, ]