diff --git a/changelogs/fragments/11174-gitlab-runner-timeout.yml b/changelogs/fragments/11174-gitlab-runner-timeout.yml new file mode 100644 index 00000000000..5e638e72a08 --- /dev/null +++ b/changelogs/fragments/11174-gitlab-runner-timeout.yml @@ -0,0 +1,2 @@ +minor_changes: + - gitlab_runner - allow maximum timeout to be disabled by passing ``0`` to ``maximum_timeout`` (https://github.com/ansible-collections/community.general/pull/11174). diff --git a/plugins/modules/gitlab_runner.py b/plugins/modules/gitlab_runner.py index 58519de8c0c..3ef335e44e3 100644 --- a/plugins/modules/gitlab_runner.py +++ b/plugins/modules/gitlab_runner.py @@ -132,6 +132,7 @@ maximum_timeout: description: - The maximum time that a runner has to complete a specific job. + - Use V(0) to disable the timeout. This is available since community.general 12.1.0. default: 3600 type: int run_untagged: @@ -365,7 +366,7 @@ def update_runner(self, runner, arguments): changed = False for arg_key, arg_value in arguments.items(): - if arg_value is not None: + if arg_value is not None or arg_key == "maximum_timeout": if isinstance(arg_value, list): list1 = getattr(runner, arg_key) list1.sort() @@ -475,7 +476,10 @@ def main(): run_untagged = module.params["run_untagged"] runner_locked = module.params["locked"] access_level = module.params["access_level"] - maximum_timeout = module.params["maximum_timeout"] + if module.params["maximum_timeout"] == 0: + maximum_timeout = None + else: + maximum_timeout = module.params["maximum_timeout"] registration_token = module.params["registration_token"] project = module.params["project"] group = module.params["group"]