Coverage for ocp_resources/subscription.py: 0%

22 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 Subscription(NamespacedResource): 

6 api_group = NamespacedResource.ApiGroup.OPERATORS_COREOS_COM 

7 

8 def __init__( 

9 self, 

10 name=None, 

11 namespace=None, 

12 client=None, 

13 source=None, 

14 source_namespace=None, 

15 package_name=None, 

16 install_plan_approval=None, 

17 channel=None, 

18 starting_csv=None, 

19 node_selector=None, 

20 tolerations=None, 

21 teardown=True, 

22 yaml_file=None, 

23 delete_timeout=TIMEOUT_4MINUTES, 

24 **kwargs, 

25 ): 

26 super().__init__( 

27 client=client, 

28 name=name, 

29 namespace=namespace, 

30 teardown=teardown, 

31 yaml_file=yaml_file, 

32 delete_timeout=delete_timeout, 

33 **kwargs, 

34 ) 

35 self.source = source 

36 self.source_namespace = source_namespace 

37 self.package_name = package_name 

38 self.channel = channel 

39 self.install_plan_approval = install_plan_approval 

40 self.starting_csv = starting_csv 

41 self.node_selector = node_selector 

42 self.tolerations = tolerations 

43 

44 def to_dict(self) -> None: 

45 super().to_dict() 

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

47 self.res.update({ 

48 "spec": { 

49 "sourceNamespace": self.source_namespace, 

50 "source": self.source, 

51 "name": self.package_name or self.name, 

52 "channel": self.channel, 

53 "installPlanApproval": self.install_plan_approval, 

54 "startingCSV": self.starting_csv, 

55 } 

56 }) 

57 

58 if self.node_selector: 

59 self.res["spec"].setdefault("config", {}).setdefault("nodeSelector", {}).update(self.node_selector) 

60 

61 if self.tolerations: 

62 self.res["spec"].setdefault("config", {}).setdefault("tolerations", []).append(self.tolerations)