diff options
Diffstat (limited to 'roles/lib_utils/src/ansible/yedit.py')
-rw-r--r-- | roles/lib_utils/src/ansible/yedit.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/roles/lib_utils/src/ansible/yedit.py b/roles/lib_utils/src/ansible/yedit.py index bdb9915d6..c4b818cf1 100644 --- a/roles/lib_utils/src/ansible/yedit.py +++ b/roles/lib_utils/src/ansible/yedit.py @@ -32,8 +32,26 @@ def main(): required_one_of=[["content", "src"]], ) - if module.params['src'] is not None and module.params['key'] in [None, '']: - module.fail_json(failed=True, msg='Empty value for parameter key not allowed.') + # Verify we recieved either a valid key or edits with valid keys when receiving a src file. + # A valid key being not None or not ''. + if module.params['src'] is not None: + key_error = False + edit_error = False + + if module.params['key'] in [None, '']: + key_error = True + + if module.params['edits'] in [None, []]: + edit_error = True + + else: + for edit in module.params['edits']: + if edit.get('key') in [None, '']: + edit_error = True + break + + if key_error and edit_error: + module.fail_json(failed=True, msg='Empty value for parameter key not allowed.') rval = Yedit.run_ansible(module.params) if 'failed' in rval and rval['failed']: |