Coverage for ocp_resources/lease.py: 0%

24 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 Lease(NamespacedResource): 

6 """ 

7 Lease object. API reference: 

8 https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/lease-v1/ 

9 """ 

10 

11 api_group = NamespacedResource.ApiGroup.COORDINATION_K8S_IO 

12 

13 def __init__( 

14 self, 

15 name=None, 

16 namespace=None, 

17 client=None, 

18 teardown=True, 

19 yaml_file=None, 

20 delete_timeout=TIMEOUT_4MINUTES, 

21 holder_identity=None, 

22 acquire_time=None, 

23 renew_time=None, 

24 lease_duration_seconds=None, 

25 lease_transitions=None, 

26 **kwargs, 

27 ): 

28 """ 

29 Args: 

30 name (str): Name of the Lease resource 

31 namespace (str): Namespace of Lease resource 

32 client: (DynamicClient): DynamicClient for api calls 

33 teardown (bool): Indicates if the resource should be torn down at the end 

34 holder_identity (str, optional): identify of the holder of the current lease 

35 lease_duration_seconds (int, optional): duration for which candidate of a lease needs to wait to acquire it 

36 lease_transitions (int, optional): number of transitions of a lease between holders. 

37 acquire_time (time, optional): when the current lease was acquired 

38 renew_time (time, optional): when current holder of the lease has last updated it 

39 yaml_file (str): yaml file for the resource. 

40 delete_timeout (int): timeout associated with delete action 

41 """ 

42 super().__init__( 

43 name=name, 

44 namespace=namespace, 

45 client=client, 

46 teardown=teardown, 

47 yaml_file=yaml_file, 

48 delete_timeout=delete_timeout, 

49 **kwargs, 

50 ) 

51 self.holder_identity = holder_identity 

52 self.lease_transitions = lease_transitions 

53 self.lease_duration_seconds = lease_duration_seconds 

54 self.acquire_time = acquire_time 

55 self.renew_time = renew_time 

56 

57 def to_dict(self) -> None: 

58 super().to_dict() 

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

60 if self.acquire_time: 

61 self.res["spec"]["acquireTime"] = self.acquire_time 

62 if self.renew_time: 

63 self.res["spec"]["renewTime"] = self.renew_time 

64 if self.holder_identity: 

65 self.res["spec"]["holderIdentity"] = self.holder_identity 

66 if self.lease_duration_seconds: 

67 self.res["spec"]["leaseDurationSeconds"] = self.lease_duration_seconds 

68 if self.lease_transitions: 

69 self.res["spec"]["leaseTransitions"] = self.lease_transitions