Multicast
ANTA catalog for multicast tests
Test functions related to multicast
VerifyIGMPSnoopingGlobal
Bases: AntaTest
Verifies the IGMP snooping global configuration.
Parameters:
Name |
Type |
Description |
Default |
configuration |
str
|
Expected global IGMP snooping configuration (enabled or disabled).
|
required
|
Source code in anta/tests/multicast.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 | class VerifyIGMPSnoopingGlobal(AntaTest):
"""
Verifies the IGMP snooping global configuration.
Args:
configuration (str): Expected global IGMP snooping configuration (enabled or disabled).
"""
name = "VerifyIGMPSnoopingGlobal"
description = "Verifies the IGMP snooping global configuration."
categories = ["multicast", "igmp"]
commands = [AntaCommand(command="show ip igmp snooping")]
@AntaTest.anta_test
def test(self, configuration: Optional[str] = None) -> None:
"""
Run VerifyIGMPSnoopingGlobal validation
Args:
configuration: Expected global IGMP configuration (enabled or disabled).
"""
if not configuration:
self.result.is_skipped("VerifyIGMPSnoopingGlobal was not run as no configuration was given")
return
if configuration not in ["enabled", "disabled"]:
self.result.is_error(f"VerifyIGMPSnoopingGlobal was not run as 'configuration': {configuration} is not in the allowed values: ['enabled', 'disabled'])")
return
command_output = self.instance_commands[0].json_output
self.result.is_success()
if (igmp_state := command_output["igmpSnoopingState"]) != configuration:
self.result.is_failure(f"IGMP state is not valid: {igmp_state}")
|
test
test(configuration: Optional[str] = None) -> None
Run VerifyIGMPSnoopingGlobal validation
Parameters:
Name |
Type |
Description |
Default |
configuration |
Optional[str]
|
Expected global IGMP configuration (enabled or disabled).
|
None
|
Source code in anta/tests/multicast.py
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 | @AntaTest.anta_test
def test(self, configuration: Optional[str] = None) -> None:
"""
Run VerifyIGMPSnoopingGlobal validation
Args:
configuration: Expected global IGMP configuration (enabled or disabled).
"""
if not configuration:
self.result.is_skipped("VerifyIGMPSnoopingGlobal was not run as no configuration was given")
return
if configuration not in ["enabled", "disabled"]:
self.result.is_error(f"VerifyIGMPSnoopingGlobal was not run as 'configuration': {configuration} is not in the allowed values: ['enabled', 'disabled'])")
return
command_output = self.instance_commands[0].json_output
self.result.is_success()
if (igmp_state := command_output["igmpSnoopingState"]) != configuration:
self.result.is_failure(f"IGMP state is not valid: {igmp_state}")
|
VerifyIGMPSnoopingVlans
Bases: AntaTest
Verifies the IGMP snooping configuration for some VLANs.
Parameters:
Name |
Type |
Description |
Default |
vlans |
List[str]
|
|
required
|
configuration |
str
|
Expected IGMP snooping configuration (enabled or disabled) for these VLANs.
|
required
|
Source code in anta/tests/multicast.py
10
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
39
40
41
42
43
44
45
46
47
48
49
50
51 | class VerifyIGMPSnoopingVlans(AntaTest):
"""
Verifies the IGMP snooping configuration for some VLANs.
Args:
vlans (List[str]): A list of VLANs
configuration (str): Expected IGMP snooping configuration (enabled or disabled) for these VLANs.
"""
name = "VerifyIGMPSnoopingVlans"
description = "Verifies the IGMP snooping configuration for some VLANs."
categories = ["multicast", "igmp"]
commands = [AntaCommand(command="show ip igmp snooping")]
@AntaTest.anta_test
def test(self, vlans: Optional[List[str]] = None, configuration: Optional[str] = None) -> None:
"""
Run VerifyIGMPSnoopingVlans validation
Args:
vlans: List of VLANs.
configuration: Expected IGMP configuration (enabled or disabled) for these VLANs.
"""
if not vlans or not configuration:
self.result.is_skipped("VerifyIGMPSnoopingVlans was not run as no vlans or configuration was given")
return
if configuration not in ["enabled", "disabled"]:
self.result.is_error(f"VerifyIGMPSnoopingVlans was not run as 'configuration': {configuration} is not in the allowed values: ['enabled', 'disabled'])")
return
command_output = self.instance_commands[0].json_output
self.result.is_success()
for vlan in vlans:
if vlan not in command_output["vlans"]:
self.result.is_failure(f"Supplied vlan {vlan} is not present on the device.")
continue
igmp_state = command_output["vlans"][str(vlan)]["igmpSnoopingState"]
if igmp_state != configuration:
self.result.is_failure(f"IGMP state for vlan {vlan} is {igmp_state}")
|
test
test(
vlans: Optional[List[str]] = None,
configuration: Optional[str] = None,
) -> None
Run VerifyIGMPSnoopingVlans validation
Parameters:
Name |
Type |
Description |
Default |
vlans |
Optional[List[str]]
|
|
None
|
configuration |
Optional[str]
|
Expected IGMP configuration (enabled or disabled) for these VLANs.
|
None
|
Source code in anta/tests/multicast.py
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 | @AntaTest.anta_test
def test(self, vlans: Optional[List[str]] = None, configuration: Optional[str] = None) -> None:
"""
Run VerifyIGMPSnoopingVlans validation
Args:
vlans: List of VLANs.
configuration: Expected IGMP configuration (enabled or disabled) for these VLANs.
"""
if not vlans or not configuration:
self.result.is_skipped("VerifyIGMPSnoopingVlans was not run as no vlans or configuration was given")
return
if configuration not in ["enabled", "disabled"]:
self.result.is_error(f"VerifyIGMPSnoopingVlans was not run as 'configuration': {configuration} is not in the allowed values: ['enabled', 'disabled'])")
return
command_output = self.instance_commands[0].json_output
self.result.is_success()
for vlan in vlans:
if vlan not in command_output["vlans"]:
self.result.is_failure(f"Supplied vlan {vlan} is not present on the device.")
continue
igmp_state = command_output["vlans"][str(vlan)]["igmpSnoopingState"]
if igmp_state != configuration:
self.result.is_failure(f"IGMP state for vlan {vlan} is {igmp_state}")
|
Last update:
July 19, 2023