Skip to content

Profiles

ANTA catalog for profiles tests

Test functions related to ASIC profiles

VerifyTcamProfile

Bases: AntaTest

Verifies the device is using the configured TCAM profile.

Source code in anta/tests/profiles.py
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
class VerifyTcamProfile(AntaTest):
    """
    Verifies the device is using the configured TCAM profile.
    """

    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")]

    @skip_on_platforms(["cEOSLab", "vEOS-lab"])
    @AntaTest.anta_test
    def test(self, profile: Optional[str] = None) -> None:
        """
        Run VerifyTcamProfile validation

        Args:
            profile: Expected TCAM profile.
        """
        if not profile:
            self.result.is_skipped("VerifyTcamProfile was not run as no profile was given")
            return

        command_output = self.instance_commands[0].json_output
        if command_output["pmfProfiles"]["FixedSystem"]["status"] == command_output["pmfProfiles"]["FixedSystem"]["config"] == profile:
            self.result.is_success()
        else:
            self.result.is_failure(f"Incorrect profile running on device: {command_output['pmfProfiles']['FixedSystem']['status']}")

test

test(profile: Optional[str] = None) -> None

Run VerifyTcamProfile validation

Parameters:

Name Type Description Default
profile Optional[str]

Expected TCAM profile.

None
Source code in anta/tests/profiles.py
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
@skip_on_platforms(["cEOSLab", "vEOS-lab"])
@AntaTest.anta_test
def test(self, profile: Optional[str] = None) -> None:
    """
    Run VerifyTcamProfile validation

    Args:
        profile: Expected TCAM profile.
    """
    if not profile:
        self.result.is_skipped("VerifyTcamProfile was not run as no profile was given")
        return

    command_output = self.instance_commands[0].json_output
    if command_output["pmfProfiles"]["FixedSystem"]["status"] == command_output["pmfProfiles"]["FixedSystem"]["config"] == profile:
        self.result.is_success()
    else:
        self.result.is_failure(f"Incorrect profile running on device: {command_output['pmfProfiles']['FixedSystem']['status']}")

VerifyUnifiedForwardingTableMode

Bases: AntaTest

Verifies the device is using the expected Unified Forwarding Table mode.

Source code in anta/tests/profiles.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class VerifyUnifiedForwardingTableMode(AntaTest):
    """
    Verifies the device is using the expected Unified Forwarding Table mode.
    """

    name = "VerifyUnifiedForwardingTableMode"
    description = ""
    categories = ["profiles"]
    commands = [AntaCommand(command="show platform trident forwarding-table partition", ofmt="json")]

    @skip_on_platforms(["cEOSLab", "vEOS-lab"])
    @AntaTest.anta_test
    def test(self, mode: Optional[str] = None) -> None:
        """
        Run VerifyUnifiedForwardingTableMode validation

        Args:
            mode: Expected UFT mode.
        """
        if not mode:
            self.result.is_skipped("VerifyUnifiedForwardingTableMode was not run as no mode was given")
            return

        command_output = self.instance_commands[0].json_output
        if command_output["uftMode"] == mode:
            self.result.is_success()
        else:
            self.result.is_failure(f"Device is not running correct UFT mode (expected: {mode} / running: {command_output['uftMode']})")

test

test(mode: Optional[str] = None) -> None

Run VerifyUnifiedForwardingTableMode validation

Parameters:

Name Type Description Default
mode Optional[str]

Expected UFT mode.

None
Source code in anta/tests/profiles.py
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@skip_on_platforms(["cEOSLab", "vEOS-lab"])
@AntaTest.anta_test
def test(self, mode: Optional[str] = None) -> None:
    """
    Run VerifyUnifiedForwardingTableMode validation

    Args:
        mode: Expected UFT mode.
    """
    if not mode:
        self.result.is_skipped("VerifyUnifiedForwardingTableMode was not run as no mode was given")
        return

    command_output = self.instance_commands[0].json_output
    if command_output["uftMode"] == mode:
        self.result.is_success()
    else:
        self.result.is_failure(f"Device is not running correct UFT mode (expected: {mode} / running: {command_output['uftMode']})")

Last update: July 19, 2023