diff --git a/api/plugins/action/task.py b/api/plugins/action/task.py index bb91b7a..096db79 100644 --- a/api/plugins/action/task.py +++ b/api/plugins/action/task.py @@ -19,6 +19,7 @@ def run(self, tmp=None, task_vars=None): environment_ns = self._task.args.get("environment") environment_id = self._task.args.get("environment_id") task_name = self._task.args.get("name") + task_arguments = self._task.args.get("arguments") if not task_name: raise AnsibleOptionsError("Task name is required") @@ -47,5 +48,5 @@ def run(self, tmp=None, task_vars=None): # Invoke the task. result["changed"] = True - result['task_id'] = Task(self.client).invoke(environment_id, task_id) + result['task_id'] = Task(self.client).invoke(environment_id, task_id, task_arguments) return result diff --git a/api/plugins/module_utils/gqlTask.py b/api/plugins/module_utils/gqlTask.py index 87f0688..bc4ed04 100644 --- a/api/plugins/module_utils/gqlTask.py +++ b/api/plugins/module_utils/gqlTask.py @@ -86,21 +86,24 @@ def byId(self, id: int, fields: List[str] = None) -> dict: return res - def invoke(self, env_id: int, task_id: int) -> int: + def invoke(self, env_id: int, task_id: int, task_arguments: list) -> int: res = self.client.execute_query( f""" mutation InvokeTask( $env_id: Int! $task_id: Int! + $task_arguments: [AdvancedTaskDefinitionArgumentValueInput] ) {{ invokeRegisteredTask( environment: $env_id, advancedTaskDefinition: $task_id, + argumentValues: $task_arguments, ) {{ id }} }}""", { "env_id": env_id, "task_id": task_id, + "task_arguments": task_arguments, } ) return res['invokeRegisteredTask']['id'] diff --git a/api/plugins/modules/task.py b/api/plugins/modules/task.py index f5fa4f5..36cf402 100644 --- a/api/plugins/modules/task.py +++ b/api/plugins/modules/task.py @@ -19,6 +19,22 @@ - Name of the task to invoke. type: str required: true + arguments: + description: + - The arguments to execute the command with + type: list + elements: dict + suboptions: + advancedTaskDefinitionArgumentName: + description: + - The name of the argument. + required: true + type: string + value: + description: + - The value of the argument. + required: true + type: string ''' @@ -27,6 +43,11 @@ lagoon.api.task: environment: test-shipshape-master name: AUDIT - Admin shipshape + arguments: + - advancedTaskDefinitionArgumentName: ARG1 + value: VALUE1 + - advancedTaskDefinitionArgumentName: ARG2 + value: VALUE2 register: task_result - name: Display the task id debug: var=task_result.task_id