diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 08:36:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 08:36:50 +0000 |
commit | 7763cc454d686d51bf2e0ccc1f2ccf7d62a0d625 (patch) | |
tree | f36d2006dd01bd01a069956741d831d9d5633377 /anta/tests/profiles.py | |
parent | Adding debian version 0.13.0-1. (diff) | |
download | anta-7763cc454d686d51bf2e0ccc1f2ccf7d62a0d625.tar.xz anta-7763cc454d686d51bf2e0ccc1f2ccf7d62a0d625.zip |
Merging upstream version 0.14.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'anta/tests/profiles.py')
-rw-r--r-- | anta/tests/profiles.py | 72 |
1 files changed, 52 insertions, 20 deletions
diff --git a/anta/tests/profiles.py b/anta/tests/profiles.py index a0ed6d7..859c886 100644 --- a/anta/tests/profiles.py +++ b/anta/tests/profiles.py @@ -1,36 +1,53 @@ # Copyright (c) 2023-2024 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 functions related to ASIC profiles -""" +"""Module related to ASIC profile tests.""" + # Mypy does not understand AntaTest.Input typing # mypy: disable-error-code=attr-defined from __future__ import annotations -from typing import Literal +from typing import TYPE_CHECKING, ClassVar, Literal from anta.decorators import skip_on_platforms from anta.models import AntaCommand, AntaTest +if TYPE_CHECKING: + from anta.models import AntaTemplate + class VerifyUnifiedForwardingTableMode(AntaTest): - """ - Verifies the device is using the expected Unified Forwarding Table mode. + """Verifies the device is using the expected UFT (Unified Forwarding Table) mode. + + Expected Results + ---------------- + * Success: The test will pass if the device is using the expected UFT mode. + * Failure: The test will fail if the device is not using the expected UFT mode. + + Examples + -------- + ```yaml + anta.tests.profiles: + - VerifyUnifiedForwardingTableMode: + mode: 3 + ``` """ name = "VerifyUnifiedForwardingTableMode" - description = "" - categories = ["profiles"] - commands = [AntaCommand(command="show platform trident forwarding-table partition", ofmt="json")] + description = "Verifies the device is using the expected UFT mode." + categories: ClassVar[list[str]] = ["profiles"] + commands: ClassVar[list[AntaCommand | AntaTemplate]] = [AntaCommand(command="show platform trident forwarding-table partition", revision=1)] + + class Input(AntaTest.Input): + """Input model for the VerifyUnifiedForwardingTableMode test.""" - class Input(AntaTest.Input): # pylint: disable=missing-class-docstring mode: Literal[0, 1, 2, 3, 4, "flexible"] - """Expected UFT mode""" + """Expected UFT mode. Valid values are 0, 1, 2, 3, 4, or "flexible".""" - @skip_on_platforms(["cEOSLab", "vEOS-lab"]) + @skip_on_platforms(["cEOSLab", "vEOS-lab", "cEOSCloudLab"]) @AntaTest.anta_test def test(self) -> None: + """Main test function for VerifyUnifiedForwardingTableMode.""" command_output = self.instance_commands[0].json_output if command_output["uftMode"] == str(self.inputs.mode): self.result.is_success() @@ -39,22 +56,37 @@ class VerifyUnifiedForwardingTableMode(AntaTest): class VerifyTcamProfile(AntaTest): - """ - Verifies the device is using the configured TCAM profile. + """Verifies that the device is using the provided Ternary Content-Addressable Memory (TCAM) profile. + + Expected Results + ---------------- + * Success: The test will pass if the provided TCAM profile is actually running on the device. + * Failure: The test will fail if the provided TCAM profile is not running on the device. + + Examples + -------- + ```yaml + anta.tests.profiles: + - VerifyTcamProfile: + profile: vxlan-routing + ``` """ name = "VerifyTcamProfile" - description = "Verify that the assigned TCAM profile is actually running on the device" - categories = ["profiles"] - commands = [AntaCommand(command="show hardware tcam profile", ofmt="json")] + description = "Verifies the device TCAM profile." + categories: ClassVar[list[str]] = ["profiles"] + commands: ClassVar[list[AntaCommand | AntaTemplate]] = [AntaCommand(command="show hardware tcam profile", revision=1)] + + class Input(AntaTest.Input): + """Input model for the VerifyTcamProfile test.""" - class Input(AntaTest.Input): # pylint: disable=missing-class-docstring profile: str - """Expected TCAM profile""" + """Expected TCAM profile.""" - @skip_on_platforms(["cEOSLab", "vEOS-lab"]) + @skip_on_platforms(["cEOSLab", "vEOS-lab", "cEOSCloudLab"]) @AntaTest.anta_test def test(self) -> None: + """Main test function for VerifyTcamProfile.""" command_output = self.instance_commands[0].json_output if command_output["pmfProfiles"]["FixedSystem"]["status"] == command_output["pmfProfiles"]["FixedSystem"]["config"] == self.inputs.profile: self.result.is_success() |