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
« 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
3from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource
6class IPAddressPool(NamespacedResource):
7 """
8 IPAddressPool object.
9 """
11 api_group = NamespacedResource.ApiGroup.METALLB_IO
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
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")
48 self.res["spec"] = {"addresses": self.addresses}
50 if self.auto_assign:
51 self.res["spec"]["autoAssign"] = self.auto_assign
53 if self.avoid_buggy_ips:
54 self.res["spec"]["avoidBuggyIPs"] = self.avoid_buggy_ips