Skip to content

Profiles

ANTA catalog for profiles tests

Test functions related to ASIC profiles

verify_tcam_profile(device, result, profile) async

Verifies the configured TCAM profile is the expected one.

Parameters:

Name Type Description Default
device InventoryDevice

InventoryDevice instance containing all devices information.

required
profile str

The expected TCAM profile.0

required

Returns:

Type Description
TestResult

TestResult instance with

TestResult
  • result = “unset” if the test has not been executed
TestResult
  • result = “mode” if the profile parameter is missing
TestResult
  • result = “success” if TCAM profile is correct
TestResult
  • result = “failure” otherwise.
TestResult
  • result = “error” if any exception is caught
Source code in anta/tests/profiles.py
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
@skip_on_platforms(["cEOSLab", "VEOS-LAB"])
@anta_test
async def verify_tcam_profile(
    device: InventoryDevice, result: TestResult, profile: str
) -> TestResult:

    """
    Verifies the configured TCAM profile is the expected one.

    Args:
        device (InventoryDevice): InventoryDevice instance containing all devices information.
        profile (str): The expected TCAM profile.0

    Returns:
        TestResult instance with
        * result = "unset" if the test has not been executed
        * result = "mode" if the `profile` parameter is missing
        * result = "success" if TCAM profile is correct
        * result = "failure" otherwise.
        * result = "error" if any exception is caught
    """
    if not profile:
        result.is_skipped("verify_tcam_profile was not run as no profile was given")
        return result

    response = await device.session.cli(command="show hardware tcam profile", ofmt="json")
    logger.debug(f"query result is: {response}")
    if (
        response["pmfProfiles"]["FixedSystem"]["status"]
        == response["pmfProfiles"]["FixedSystem"]["config"]
    ) and (response["pmfProfiles"]["FixedSystem"]["status"] == profile):
        result.is_success()
    else:
        result.is_failure(
            f'Incorrect profile configured on device: {response["pmfProfiles"]["FixedSystem"]["status"]}'
        )

    return result

verify_unified_forwarding_table_mode(device, result, mode) async

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

Parameters:

Name Type Description Default
device InventoryDevice

InventoryDevice instance containing all devices information.

required
mode str

The expected Unified Forwarding Table mode.

required

Returns:

Type Description
TestResult

TestResult instance with

TestResult
  • result = “unset” if the test has not been executed
TestResult
  • result = “mode” if the mode parameter is missing
TestResult
  • result = “success” if UFT mode is correct
TestResult
  • result = “failure” otherwise.
TestResult
  • result = “error” if any exception is caught
Source code in anta/tests/profiles.py
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
39
40
41
42
43
44
45
46
47
48
49
50
51
@skip_on_platforms(["cEOSLab", "VEOS-LAB"])
@anta_test
async def verify_unified_forwarding_table_mode(
    device: InventoryDevice, result: TestResult, mode: str
) -> TestResult:

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

    Args:
        device (InventoryDevice): InventoryDevice instance containing all devices information.
        mode (str): The expected Unified Forwarding Table mode.

    Returns:
        TestResult instance with
        * result = "unset" if the test has not been executed
        * result = "mode" if the `mode` parameter is missing
        * result = "success" if UFT mode is correct
        * result = "failure" otherwise.
        * result = "error" if any exception is caught
    """
    if not mode:
        result.is_skipped(
            "verify_unified_forwarding_table_mode was not run as no mode was given"
        )
        return result

    response = await device.session.cli(command="show platform trident forwarding-table partition", ofmt="json")
    logger.debug(f"query result is: {response}")
    response_data = response["uftMode"]
    if response_data == mode:
        result.is_success()
    else:
        result.is_failure(
            f"device is not running correct UFT mode (expected: {mode} / running: {response_data})"
        )

    return result

Last update: September 5, 2022