Verifies if the VLAN internal allocation policy is ascending or descending and if the VLANs are within the specified range.
Expected Results
- Success: The test will pass if the VLAN internal allocation policy is either ascending or descending
and the VLANs are within the specified range.
- Failure: The test will fail if the VLAN internal allocation policy is neither ascending nor descending
or the VLANs are outside the specified range.
Examples
anta.tests.vlan:
- VerifyVlanInternalPolicy:
policy: ascending
start_vlan_id: 1006
end_vlan_id: 4094
Inputs
Name |
Type |
Description |
Default |
policy |
Literal['ascending', 'descending']
|
The VLAN internal allocation policy. Supported values: ascending, descending.
|
-
|
start_vlan_id |
Vlan
|
The starting VLAN ID in the range.
|
-
|
end_vlan_id |
Vlan
|
The ending VLAN ID in the range.
|
-
|
Source code in anta/tests/vlan.py
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 | class VerifyVlanInternalPolicy(AntaTest):
"""Verifies if the VLAN internal allocation policy is ascending or descending and if the VLANs are within the specified range.
Expected Results
----------------
* Success: The test will pass if the VLAN internal allocation policy is either ascending or descending
and the VLANs are within the specified range.
* Failure: The test will fail if the VLAN internal allocation policy is neither ascending nor descending
or the VLANs are outside the specified range.
Examples
--------
```yaml
anta.tests.vlan:
- VerifyVlanInternalPolicy:
policy: ascending
start_vlan_id: 1006
end_vlan_id: 4094
```
"""
name = "VerifyVlanInternalPolicy"
description = "Verifies the VLAN internal allocation policy and the range of VLANs."
categories: ClassVar[list[str]] = ["vlan"]
commands: ClassVar[list[AntaCommand | AntaTemplate]] = [AntaCommand(command="show vlan internal allocation policy", revision=1)]
class Input(AntaTest.Input):
"""Input model for the VerifyVlanInternalPolicy test."""
policy: Literal["ascending", "descending"]
"""The VLAN internal allocation policy. Supported values: ascending, descending."""
start_vlan_id: Vlan
"""The starting VLAN ID in the range."""
end_vlan_id: Vlan
"""The ending VLAN ID in the range."""
@AntaTest.anta_test
def test(self) -> None:
"""Main test function for VerifyVlanInternalPolicy."""
command_output = self.instance_commands[0].json_output
keys_to_verify = ["policy", "startVlanId", "endVlanId"]
actual_policy_output = {key: get_value(command_output, key) for key in keys_to_verify}
expected_policy_output = {"policy": self.inputs.policy, "startVlanId": self.inputs.start_vlan_id, "endVlanId": self.inputs.end_vlan_id}
# Check if the actual output matches the expected output
if actual_policy_output != expected_policy_output:
failed_log = "The VLAN internal allocation policy is not configured properly:"
failed_log += get_failed_logs(expected_policy_output, actual_policy_output)
self.result.is_failure(failed_log)
else:
self.result.is_success()
|