Skip to content

Configuration

ANTA catalog for configuration tests

Test functions related to the device configuration

verify_running_config_diffs(device, result) async

Verifies there is no difference between the running-config and the startup-config.

Parameters:

Name Type Description Default
device InventoryDevice

InventoryDevice instance containing all devices information.

required

Returns:

Type Description
TestResult

TestResult instance with

TestResult
  • result = “unset” if the test has not been executed
TestResult
  • result = “success” if there is no difference between the running-config and the startup-config
TestResult
  • result = “failure” if there are differences
TestResult
  • result = “error” if any exception is caught
Source code in anta/tests/configuration.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
69
70
71
72
73
74
75
76
77
78
79
80
@anta_test
async def verify_running_config_diffs(
    device: InventoryDevice, result: TestResult
) -> TestResult:

    """
    Verifies there is no difference between the running-config and the startup-config.

    Args:
        device (InventoryDevice): InventoryDevice instance containing all devices information.

    Returns:
        TestResult instance with
        * result = "unset" if the test has not been executed
        * result = "success" if there is no difference between the running-config and the startup-config
        * result = "failure" if there are differences
        * result = "error" if any exception is caught

    """
    if device.enable_password is not None:
        enable_cmd = {"cmd": "enable", "input": str(device.enable_password)}
    else:
        enable_cmd = {"cmd": "enable"}
    commands = [enable_cmd, "show running-config diffs"]
    response = await device.session.cli(
        commands=commands,
        ofmt="text",
    )

    logger.debug(f"query result is: {response}")

    if len(response[1]) == 0:
        result.is_success()

    else:
        result.is_failure()
        for line in response[1].splitlines():
            result.is_failure(line)

    return result

verify_zerotouch(device, result) async

Verifies ZeroTouch is disabled.

Parameters:

Name Type Description Default
device InventoryDevice

InventoryDevice instance containing all devices information.

required

Returns:

Type Description
TestResult

TestResult instance with

TestResult
  • result = “unset” if the test has not been executed
TestResult
  • result = “success” if ZTP is disabled
TestResult
  • result = “failure” if ZTP is enabled
TestResult
  • result = “error” if any exception is caught
Source code in anta/tests/configuration.py
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
@anta_test
async def verify_zerotouch(device: InventoryDevice, result: TestResult) -> TestResult:

    """
    Verifies ZeroTouch is disabled.

    Args:
        device (InventoryDevice): InventoryDevice instance containing all devices information.

    Returns:
        TestResult instance with
        * result = "unset" if the test has not been executed
        * result = "success" if ZTP is disabled
        * result = "failure" if ZTP is enabled
        * result = "error" if any exception is caught

    """
    response = await device.session.cli(command="show zerotouch", ofmt="json")
    logger.debug(f"query result is: {response}")

    if response["mode"] == "disabled":
        result.is_success()
    else:
        result.is_failure("ZTP is NOT disabled")

    return result

Last update: September 5, 2022