yedit.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # flake8: noqa
  2. # pylint: skip-file
  3. # pylint: disable=too-many-branches
  4. def main():
  5. ''' ansible oc module for secrets '''
  6. module = AnsibleModule(
  7. argument_spec=dict(
  8. state=dict(default='present', type='str',
  9. choices=['present', 'absent', 'list']),
  10. debug=dict(default=False, type='bool'),
  11. src=dict(default=None, type='str'),
  12. content=dict(default=None),
  13. content_type=dict(default='dict', choices=['dict']),
  14. key=dict(default='', type='str'),
  15. value=dict(),
  16. value_type=dict(default='', type='str'),
  17. update=dict(default=False, type='bool'),
  18. append=dict(default=False, type='bool'),
  19. index=dict(default=None, type='int'),
  20. curr_value=dict(default=None, type='str'),
  21. curr_value_format=dict(default='yaml',
  22. choices=['yaml', 'json', 'str'],
  23. type='str'),
  24. backup=dict(default=True, type='bool'),
  25. separator=dict(default='.', type='str'),
  26. edits=dict(default=None, type='list'),
  27. ),
  28. mutually_exclusive=[["curr_value", "index"], ['update', "append"]],
  29. required_one_of=[["content", "src"]],
  30. )
  31. # Verify we recieved either a valid key or edits with valid keys when receiving a src file.
  32. # A valid key being not None or not ''.
  33. if module.params['src'] is not None:
  34. key_error = False
  35. edit_error = False
  36. if module.params['key'] in [None, '']:
  37. key_error = True
  38. if module.params['edits'] in [None, []]:
  39. edit_error = True
  40. else:
  41. for edit in module.params['edits']:
  42. if edit.get('key') in [None, '']:
  43. edit_error = True
  44. break
  45. if key_error and edit_error:
  46. module.fail_json(failed=True, msg='Empty value for parameter key not allowed.')
  47. rval = Yedit.run_ansible(module.params)
  48. if 'failed' in rval and rval['failed']:
  49. module.fail_json(**rval)
  50. module.exit_json(**rval)
  51. if __name__ == '__main__':
  52. main()