diff --git a/api/plugins/action/task_definition.py b/api/plugins/action/task_definition.py index ab60fe1..1186e35 100644 --- a/api/plugins/action/task_definition.py +++ b/api/plugins/action/task_definition.py @@ -73,6 +73,7 @@ class ActionModule(LagoonMutationActionBase): "advancedTaskDefinitionArguments", "deployTokenInjection", "projectKeyInjection", + "systemWide", ], ), # Configuration for deleting a task definition. diff --git a/api/plugins/module_utils/gqlTaskDefinition.py b/api/plugins/module_utils/gqlTaskDefinition.py index 4a29ebc..2da9176 100644 --- a/api/plugins/module_utils/gqlTaskDefinition.py +++ b/api/plugins/module_utils/gqlTaskDefinition.py @@ -19,6 +19,7 @@ 'advancedTaskDefinitionArguments', 'deployTokenInjection', 'projectKeyInjection', + 'systemWide', ] TASK_DEFINITION_FIELDS_COMMAND = [ @@ -113,7 +114,8 @@ def add_update_variables(self, task_type: str, permission: str, description: str, service: str, image: str, command: str, arguments: list, deploy_token_injection: bool, - project_key_injection: bool): + project_key_injection: bool, + system_wide: bool): variables = """ $type: AdvancedTaskDefinitionTypes $permission: TaskPermission @@ -123,6 +125,7 @@ def add_update_variables(self, task_type: str, permission: str, $arguments: [AdvancedTaskDefinitionArgumentInput] $deployTokenInjection: Boolean $projectKeyInjection: Boolean + $systemWide: Boolean """ variables_input = """ type: $type @@ -133,6 +136,7 @@ def add_update_variables(self, task_type: str, permission: str, advancedTaskDefinitionArguments: $arguments deployTokenInjection: $deployTokenInjection projectKeyInjection: $projectKeyInjection + systemWide: $systemWide """ variables_dict = { "type": task_type, @@ -143,6 +147,7 @@ def add_update_variables(self, task_type: str, permission: str, "arguments": arguments, "deployTokenInjection": deploy_token_injection, "projectKeyInjection": project_key_injection, + "systemWide": system_wide, } if project_id: @@ -169,12 +174,13 @@ def add_update_variables(self, task_type: str, permission: str, def add(self, task_type: str, permission: str, project_id: int, environment_id: int, name: str, description: str, service: str, image: str, command: str, arguments: list, - deploy_token_injection: bool, project_key_injection: bool) -> dict: + deploy_token_injection: bool, project_key_injection: bool, + system_wide: bool) -> dict: variables, variables_input, variables_dict = self.add_update_variables( task_type, permission, project_id, environment_id, name, description, service, image, command, arguments, - deploy_token_injection, project_key_injection) + deploy_token_injection, project_key_injection, system_wide) res = self.client.execute_query( f""" @@ -199,12 +205,13 @@ def add(self, task_type: str, permission: str, project_id: int, def update(self, id: int, task_type: str, permission: str, project_id: int, environment_id: int, name: str, description: str, service: str, image: str, command: str, arguments: list, - deploy_token_injection: bool, project_key_injection: bool) -> dict: + deploy_token_injection: bool, project_key_injection: bool, + system_wide: bool) -> dict: variables, variables_input, variables_dict = self.add_update_variables( task_type, permission, project_id, environment_id, name, description, service, image, command, arguments, - deploy_token_injection, project_key_injection) + deploy_token_injection, project_key_injection, system_wide) res = self.client.execute_query( f""" diff --git a/api/plugins/modules/task_definition.py b/api/plugins/modules/task_definition.py index b9c806a..b05a8b5 100644 --- a/api/plugins/modules/task_definition.py +++ b/api/plugins/modules/task_definition.py @@ -43,6 +43,12 @@ - The deployment in which the task is run (cli/php/nginx...). - Required when state is present. type: str + system_wide: + description: + - The task will appear for all environments, subject to the user's + - permission to invoke it. + type: bool + default: false command: description: - The command to run. @@ -98,6 +104,7 @@ permission: MAINTAINER description: Run the shipshape audit service: cli + system_wide: false command: shipshape - name: Delete task definition. diff --git a/api/tests/playbooks/task_definitions.yml b/api/tests/playbooks/task_definitions.yml index 38960ec..53a3083 100644 --- a/api/tests/playbooks/task_definitions.yml +++ b/api/tests/playbooks/task_definitions.yml @@ -19,6 +19,7 @@ permission: MAINTAINER description: Run my test task service: cli + system_wide: false command: ls -l - name: Ensure task definitions exist @@ -30,6 +31,7 @@ permission: MAINTAINER description: Run my test task service: cli + system_wide: false command: ls -l advancedTaskDefinitionArguments: - name: MY_CUSTOM_ARG diff --git a/api/tests/unit/plugins/module_utils/test_gql_task_definition.py b/api/tests/unit/plugins/module_utils/test_gql_task_definition.py index e0084c7..9265bda 100644 --- a/api/tests/unit/plugins/module_utils/test_gql_task_definition.py +++ b/api/tests/unit/plugins/module_utils/test_gql_task_definition.py @@ -43,6 +43,7 @@ def test_get(self): } deployTokenInjection projectKeyInjection + systemWide image } @@ -66,6 +67,7 @@ def test_get(self): } deployTokenInjection projectKeyInjection + systemWide command }