Coverage for ocp_resources/ip_address_pool.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.IPAddressPool 

2 

3from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource 

4 

5 

6class IPAddressPool(NamespacedResource): 

7 """ 

8 IPAddressPool 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 addresses=None, 

19 auto_assign=True, 

20 avoid_buggy_ips=False, 

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 addresses (list): List of IP addresses. 

29 auto_assign (bool): IP address assignment. (default: True) 

30 avoid_buggy_ips (bool): Avoid buggy IP address (default: False) 

31 """ 

32 super().__init__( 

33 name=name, 

34 namespace=namespace, 

35 client=client, 

36 **kwargs, 

37 ) 

38 self.addresses = addresses 

39 self.auto_assign = auto_assign 

40 self.avoid_buggy_ips = avoid_buggy_ips 

41 

42 def to_dict(self) -> None: 

43 super().to_dict() 

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

45 if not self.addresses: 

46 raise MissingRequiredArgumentError(argument="addresses") 

47 

48 self.res["spec"] = {"addresses": self.addresses} 

49 

50 if self.auto_assign: 

51 self.res["spec"]["autoAssign"] = self.auto_assign 

52 

53 if self.avoid_buggy_ips: 

54 self.res["spec"]["avoidBuggyIPs"] = self.avoid_buggy_ips