Coverage for ocp_resources/l2_advertisement.py: 0%

18 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-01-30 10:48 +0200

1# API reference: https://metallb.universe.tf/apis/#metallb.io/v1beta1.L2Advertisement 

2 

3from ocp_resources.resource import NamespacedResource 

4 

5 

6class L2Advertisement(NamespacedResource): 

7 """ 

8 L2Advertisement object. 

9 """ 

10 

11 api_group = NamespacedResource.ApiGroup.METALLB_IO 

12 

13 def __init__( 

14 self, 

15 name=None, 

16 namespace=None, 

17 client=None, 

18 interfaces=None, 

19 ip_address_pools=None, 

20 ip_address_pools_selectors=None, 

21 **kwargs, 

22 ): 

23 """ 

24 Args: 

25 name (str): Name of the MetalLB or it's CR's. 

26 namespace (str): Namespace of the MetalLB 

27 client: (DynamicClient): DynamicClient to use. 

28 interfaces (list): List of interfaces. 

29 ip_address_pools (list): The list of IPAddressPools to advertise via this advertisement, selected by name. 

30 ip_address_pools_selectors (list): A selector for the IPAddressPools which would get advertised 

31 via this advertisement.(if nothing mentioned then it will be applied to all the IPAddressPools) 

32 """ 

33 super().__init__( 

34 name=name, 

35 namespace=namespace, 

36 client=client, 

37 **kwargs, 

38 ) 

39 self.interfaces = interfaces 

40 self.ip_address_pools = ip_address_pools 

41 self.ip_address_pools_selectors = ip_address_pools_selectors 

42 

43 def to_dict(self) -> None: 

44 super().to_dict() 

45 if not self.kind_dict and not self.yaml_file: 

46 self.res["spec"] = {} 

47 if self.interfaces: 

48 self.res["spec"]["interfaces"] = self.interfaces 

49 

50 if self.ip_address_pools: 

51 self.res["spec"]["ipAddressPools"] = self.ip_address_pools 

52 

53 if self.ip_address_pools_selectors: 

54 self.res["spec"]["ipAddressPoolSelectors"] = self.ip_address_pools_selectors