summaryrefslogtreecommitdiffstats
path: root/roles/lib_utils/src/ansible/yedit.py
diff options
context:
space:
mode:
Diffstat (limited to 'roles/lib_utils/src/ansible/yedit.py')
-rw-r--r--roles/lib_utils/src/ansible/yedit.py22
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']: