From cde95641635feeedeafce484bfef62cd668ad5bd Mon Sep 17 00:00:00 2001 From: Alexei Znamensky <103110+russoz@users.noreply.github.com> Date: Thu, 29 Jul 2021 17:49:52 +1200 Subject: [PATCH] deploy_helper - changed in-code condition to required_if (#3104) * changed in-code condition to required_if * added changelog fragment --- .../3104-deploy_helper-required_if.yaml | 2 ++ .../web_infrastructure/deploy_helper.py | 23 +++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 changelogs/fragments/3104-deploy_helper-required_if.yaml diff --git a/changelogs/fragments/3104-deploy_helper-required_if.yaml b/changelogs/fragments/3104-deploy_helper-required_if.yaml new file mode 100644 index 0000000000..ee48461003 --- /dev/null +++ b/changelogs/fragments/3104-deploy_helper-required_if.yaml @@ -0,0 +1,2 @@ +bugfixes: + - deploy_helper - improved parameter checking by using standard Ansible construct (https://github.com/ansible-collections/community.general/pull/3104). diff --git a/plugins/modules/web_infrastructure/deploy_helper.py b/plugins/modules/web_infrastructure/deploy_helper.py index f879594bc3..f73c9c1f18 100644 --- a/plugins/modules/web_infrastructure/deploy_helper.py +++ b/plugins/modules/web_infrastructure/deploy_helper.py @@ -359,8 +359,6 @@ class DeployHelper(object): self.module.fail_json(msg="%s exists but is not a symbolic link" % path) def create_link(self, source, link_name): - changed = False - if os.path.islink(link_name): norm_link = os.path.normpath(os.path.realpath(link_name)) norm_source = os.path.normpath(os.path.realpath(source)) @@ -458,15 +456,18 @@ def main(): module = AnsibleModule( argument_spec=dict( path=dict(aliases=['dest'], required=True, type='path'), - release=dict(required=False, type='str', default=None), - releases_path=dict(required=False, type='str', default='releases'), - shared_path=dict(required=False, type='path', default='shared'), - current_path=dict(required=False, type='path', default='current'), - keep_releases=dict(required=False, type='int', default=5), - clean=dict(required=False, type='bool', default=True), - unfinished_filename=dict(required=False, type='str', default='DEPLOY_UNFINISHED'), - state=dict(required=False, choices=['present', 'absent', 'clean', 'finalize', 'query'], default='present') + release=dict(type='str'), + releases_path=dict(type='str', default='releases'), + shared_path=dict(type='path', default='shared'), + current_path=dict(type='path', default='current'), + keep_releases=dict(type='int', default=5), + clean=dict(type='bool', default=True), + unfinished_filename=dict(type='str', default='DEPLOY_UNFINISHED'), + state=dict(choices=['present', 'absent', 'clean', 'finalize', 'query'], default='present') ), + required_if=[ + ('state', 'finalize', ['release']), + ], add_file_common_args=True, supports_check_mode=True ) @@ -493,8 +494,6 @@ def main(): result['ansible_facts'] = {'deploy_helper': facts} elif deploy_helper.state == 'finalize': - if not deploy_helper.release: - module.fail_json(msg="'release' is a required parameter for state=finalize (try the 'deploy_helper.new_release' fact)") if deploy_helper.keep_releases <= 0: module.fail_json(msg="'keep_releases' should be at least 1")