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