Coverage for ocp_resources/pod_disruption_budget.py: 0%

18 statements  

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

1from ocp_resources.utils.constants import TIMEOUT_4MINUTES 

2from ocp_resources.resource import NamespacedResource 

3 

4 

5class PodDisruptionBudget(NamespacedResource): 

6 """ 

7 PodDisruptionBudget object 

8 """ 

9 

10 api_group = NamespacedResource.ApiGroup.POLICY 

11 

12 def __init__( 

13 self, 

14 name=None, 

15 namespace=None, 

16 client=None, 

17 min_available=None, 

18 max_unavailable=None, 

19 selector=None, 

20 teardown=True, 

21 yaml_file=None, 

22 delete_timeout=TIMEOUT_4MINUTES, 

23 **kwargs, 

24 ): 

25 super().__init__( 

26 name=name, 

27 namespace=namespace, 

28 client=client, 

29 teardown=teardown, 

30 yaml_file=yaml_file, 

31 delete_timeout=delete_timeout, 

32 **kwargs, 

33 ) 

34 self.min_available = min_available 

35 self.max_unavailable = max_unavailable 

36 self.selector = selector 

37 

38 def to_dict(self) -> None: 

39 super().to_dict() 

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

41 update_dict = { 

42 "spec": { 

43 "selector": self.selector, 

44 }, 

45 } 

46 

47 if self.min_available is not None: 

48 update_dict["spec"]["minAvailable"] = self.min_available 

49 

50 if self.max_unavailable is not None: 

51 update_dict["spec"]["maxUnavailable"] = self.max_unavailable 

52 

53 self.res.update(update_dict)