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
« 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
5class Subscription(NamespacedResource):
6 api_group = NamespacedResource.ApiGroup.OPERATORS_COREOS_COM
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
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 })
58 if self.node_selector:
59 self.res["spec"].setdefault("config", {}).setdefault("nodeSelector", {}).update(self.node_selector)
61 if self.tolerations:
62 self.res["spec"].setdefault("config", {}).setdefault("tolerations", []).append(self.tolerations)