From 18a8c6f350616e23e9e8345a32ab9e6ca24cfd5b Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 11:38:30 +0300 Subject: [PATCH] [PR #8887/0bc5f248 backport][stable-8] one_service: fix recreation (#8931) one_service: fix recreation (#8887) * Fix one_service unique creation * Revert empty space * Add CHANGELOG fragment * Update CHANGELOG fragment (cherry picked from commit 0bc5f24863e98d153f89636193bba808b1f54e89) Co-authored-by: alexander <79072457+abakanovskii@users.noreply.github.com> --- changelogs/fragments/8887-fix-one_service-unique.yml | 2 ++ plugins/modules/one_service.py | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/8887-fix-one_service-unique.yml diff --git a/changelogs/fragments/8887-fix-one_service-unique.yml b/changelogs/fragments/8887-fix-one_service-unique.yml new file mode 100644 index 0000000000..979460b862 --- /dev/null +++ b/changelogs/fragments/8887-fix-one_service-unique.yml @@ -0,0 +1,2 @@ +bugfixes: + - one_service - fix service creation after it was deleted with ``unique`` parameter (https://github.com/ansible-collections/community.general/issues/3137, https://github.com/ansible-collections/community.general/pull/8887). diff --git a/plugins/modules/one_service.py b/plugins/modules/one_service.py index 81b42c0ecc..8cbe9ed740 100644 --- a/plugins/modules/one_service.py +++ b/plugins/modules/one_service.py @@ -522,7 +522,7 @@ def create_service_and_operation(module, auth, template_id, service_name, owner_ if unique: service = get_service_by_name(module, auth, service_name) - if not service: + if not service or service["TEMPLATE"]["BODY"]["state"] == "DONE": if not module.check_mode: service = create_service(module, auth, template_id, service_name, custom_attrs, unique, wait, wait_timeout) changed = True @@ -637,7 +637,6 @@ def get_service_id_by_name(module, auth, service_name): def get_connection_info(module): - url = module.params.get('api_url') username = module.params.get('api_username') password = module.params.get('api_password')