repoquery.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # pylint: skip-file
  2. # flake8: noqa
  3. def main():
  4. '''
  5. ansible repoquery module
  6. '''
  7. module = AnsibleModule(
  8. argument_spec=dict(
  9. state=dict(default='list', type='str', choices=['list']),
  10. name=dict(default=None, required=True, type='str'),
  11. query_type=dict(default='repos', required=False, type='str',
  12. choices=[
  13. 'installed', 'available', 'recent',
  14. 'updates', 'extras', 'all', 'repos'
  15. ]),
  16. verbose=dict(default=False, required=False, type='bool'),
  17. show_duplicates=dict(default=False, required=False, type='bool'),
  18. match_version=dict(default=None, required=False, type='str'),
  19. ignore_excluders=dict(default=False, required=False, type='bool'),
  20. retries=dict(default=3, required=False, type='int'),
  21. retry_interval=dict(default=5, required=False, type='int'),
  22. ),
  23. supports_check_mode=False,
  24. required_if=[('show_duplicates', True, ['name'])],
  25. )
  26. tries = 1
  27. while True:
  28. rval = Repoquery.run_ansible(module.params, module.check_mode)
  29. if 'failed' not in rval:
  30. module.exit_json(**rval)
  31. elif tries > module.params['retries']:
  32. module.fail_json(**rval)
  33. tries += 1
  34. time.sleep(module.params['retry_interval'])
  35. if __name__ == "__main__":
  36. main()