From 106e879eb956a70fbc890cd14ed4910d20dacae5 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 10 Dec 2023 12:39:15 +0100 Subject: [PATCH 1/4] If no zone is given, use the most recent one --- plugins/modules/service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/service.py b/plugins/modules/service.py index 2cc1e29..fc230cc 100644 --- a/plugins/modules/service.py +++ b/plugins/modules/service.py @@ -54,7 +54,7 @@ def main(): for d in domains: if d.domain == p['domain'] or d.domain == p['domain'] + ".": for z in d.zone_history: - if z == p['zone']: + if p['zone'] is None or z == p['zone']: zone = d.get_zone(z) if p['subdomain'].removesuffix(d.domain) in zone.services: From 360bc2a587713c908cecaf2e770e46dcb5cd9fb9 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 10 Dec 2023 12:39:42 +0100 Subject: [PATCH 2/4] Fix get_zone args --- plugins/modules/service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/service.py b/plugins/modules/service.py index fc230cc..a4fe588 100644 --- a/plugins/modules/service.py +++ b/plugins/modules/service.py @@ -55,7 +55,7 @@ def main(): if d.domain == p['domain'] or d.domain == p['domain'] + ".": for z in d.zone_history: if p['zone'] is None or z == p['zone']: - zone = d.get_zone(z) + zone = d.get_zone(z.id) if p['subdomain'].removesuffix(d.domain) in zone.services: for s in zone.services[p['subdomain'].removesuffix(d.domain)]: From 734e89e72012f50cc2a0d66f5a5450c205e7b7d6 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 10 Dec 2023 12:40:04 +0100 Subject: [PATCH 3/4] Refactor condition for changed result --- plugins/modules/service.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/plugins/modules/service.py b/plugins/modules/service.py index a4fe588..a33e410 100644 --- a/plugins/modules/service.py +++ b/plugins/modules/service.py @@ -57,6 +57,7 @@ def main(): if p['zone'] is None or z == p['zone']: zone = d.get_zone(z.id) + skipAdd = False if p['subdomain'].removesuffix(d.domain) in zone.services: for s in zone.services[p['subdomain'].removesuffix(d.domain)]: if s._svctype == p['type']: @@ -67,19 +68,20 @@ def main(): differ = True break - if p['erase_others']: + if p['state'] == 'absent' and not differ: + s.delete() + result['changed'] = True + elif p['erase_others']: if differ: s.delete() result['changed'] = True - elif not differ: - if p['state'] == 'absent': - s.delete() - result['changed'] = True else: - module.exit_json(**result) - return + skipAdd = True + elif not differ: + module.exit_json(**result) + return - if p['state'] != 'absent': + if not skipAdd and p['state'] != 'absent': zone.add_zone_service( p['subdomain'].removesuffix(d.domain), p['type'], @@ -88,10 +90,9 @@ def main(): result['changed'] = True - if p['apply_changes']: + if p['apply_changes'] and result['changed']: zone.apply_changes() result['published'] = True - result['changed'] = True break else: From bd820e4c53103c3641e22e293558763386e461d5 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 10 Dec 2023 12:41:07 +0100 Subject: [PATCH 4/4] Prepare 0.4.0 --- galaxy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/galaxy.yml b/galaxy.yml index 1e6a9af..454f3a1 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -1,7 +1,7 @@ --- namespace: happydns name: happydomain -version: 0.3.3 +version: 0.4.0 readme: README.md authors: - happyDomain Team