edit.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # pylint: skip-file
  2. def main():
  3. '''
  4. ansible oc module for services
  5. '''
  6. module = AnsibleModule(
  7. argument_spec=dict(
  8. kubeconfig=dict(default='/etc/origin/master/admin.kubeconfig', type='str'),
  9. state=dict(default='present', type='str',
  10. choices=['present']),
  11. debug=dict(default=False, type='bool'),
  12. namespace=dict(default='default', type='str'),
  13. name=dict(default=None, type='str'),
  14. kind=dict(required=True,
  15. type='str',
  16. choices=['dc', 'deploymentconfig',
  17. 'svc', 'service',
  18. 'secret',
  19. ]),
  20. file_name=dict(default=None, type='str'),
  21. file_format=dict(default='yaml', type='str'),
  22. content=dict(default=None, type='dict'),
  23. force=dict(default=False, type='bool'),
  24. ),
  25. supports_check_mode=True,
  26. )
  27. ocedit = Edit(module.params['kind'],
  28. module.params['namespace'],
  29. module.params['name'],
  30. kubeconfig=module.params['kubeconfig'],
  31. verbose=module.params['debug'])
  32. state = module.params['state']
  33. api_rval = ocedit.get()
  34. ########
  35. # Create
  36. ########
  37. if not Utils.exists(api_rval['results'], module.params['name']):
  38. module.fail_json(msg=api_rval)
  39. ########
  40. # Update
  41. ########
  42. api_rval = ocedit.update(module.params['file_name'],
  43. module.params['content'],
  44. module.params['force'],
  45. module.params['file_format'])
  46. if api_rval['returncode'] != 0:
  47. module.fail_json(msg=api_rval)
  48. if api_rval.has_key('updated') and not api_rval['updated']:
  49. module.exit_json(changed=False, results=api_rval, state="present")
  50. # return the created object
  51. api_rval = ocedit.get()
  52. if api_rval['returncode'] != 0:
  53. module.fail_json(msg=api_rval)
  54. module.exit_json(changed=True, results=api_rval, state="present")
  55. module.exit_json(failed=True,
  56. changed=False,
  57. results='Unknown state passed. %s' % state,
  58. state="unknown")
  59. # pylint: disable=redefined-builtin, unused-wildcard-import, wildcard-import, locally-disabled
  60. # import module snippets. This are required
  61. from ansible.module_utils.basic import *
  62. main()