Coverage for ocp_resources/pipeline.py: 0%
20 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://tekton.dev/docs/pipelines/pipelines/
3from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource
6class Pipeline(NamespacedResource):
7 api_group = NamespacedResource.ApiGroup.TEKTON_DEV
9 def __init__(
10 self,
11 tasks=None,
12 params=None,
13 final_parallel_tasks=None,
14 **kwargs,
15 ):
16 """
17 Args:
18 tasks (str, optional): actions to perform in pipeline
19 params (dict, optional): params to support pipelines.
20 params can be set/changed based on tasks.
21 example: 'spec': {'params': [{'name': 'sourceTemplateName','type': 'string','default':'openshift'},
22 {'name': 'sourceTemplateNamespace', 'type':'string', 'description': 'Namespace pf template'}]}
23 final_parallel_tasks (list, optional): a list of one or more to be executed in parallel after all other
24 tasks have completed in parallel.
25 spec section can't be empty. It requires at least one optional field.
26 """
27 super().__init__(**kwargs)
28 # TODO: Add a check for tasks when bug https://issues.redhat.com/browse/SRVKP-3019 is resolved.
29 self.tasks = tasks
30 self.params = params
31 self.final_parallel_tasks = final_parallel_tasks
33 def to_dict(self) -> None:
34 super().to_dict()
35 if not self.kind_dict and not self.yaml_file:
36 if not (self.tasks or self.params or self.final_parallel_tasks):
37 raise MissingRequiredArgumentError(argument="'tasks' or 'params' or 'final_parallel_tasks'")
39 self.res["spec"] = {}
40 if self.params:
41 self.res["spec"]["params"] = self.params
42 if self.tasks:
43 self.res["spec"]["tasks"] = self.tasks
44 if self.final_parallel_tasks:
45 self.res["spec"]["finally"] = self.final_parallel_tasks