ManageIQ module - provider refresh (#37573)
This commit is contained in:
parent
5bdc32ff8d
commit
062a5551e0
1 changed files with 30 additions and 4 deletions
|
@ -27,8 +27,8 @@ description:
|
|||
options:
|
||||
state:
|
||||
description:
|
||||
- absent - provider should not exist, present - provider should be present.
|
||||
choices: ['absent', 'present']
|
||||
- absent - provider should not exist, present - provider should be present, refresh - provider will be refreshed
|
||||
choices: ['absent', 'present', 'refresh']
|
||||
default: 'present'
|
||||
name:
|
||||
description: The provider's name.
|
||||
|
@ -771,12 +771,28 @@ class ManageIQProvider(object):
|
|||
changed=True,
|
||||
msg="successfully created the provider %s: %s" % (name, result['results']))
|
||||
|
||||
def refresh(self, provider, name):
|
||||
""" Trigger provider refresh.
|
||||
|
||||
Returns:
|
||||
a short message describing the operation executed.
|
||||
"""
|
||||
try:
|
||||
url = '%s/providers/%s' % (self.api_url, provider['id'])
|
||||
result = self.client.post(url, action='refresh')
|
||||
except Exception as e:
|
||||
self.module.fail_json(msg="failed to refresh provider %s: %s" % (name, str(e)))
|
||||
|
||||
return dict(
|
||||
changed=True,
|
||||
msg="refreshing provider %s" % name)
|
||||
|
||||
|
||||
def main():
|
||||
zone_id = None
|
||||
endpoints = []
|
||||
argument_spec = dict(
|
||||
state=dict(choices=['absent', 'present'], default='present'),
|
||||
state=dict(choices=['absent', 'present', 'refresh'], default='present'),
|
||||
name=dict(required=True),
|
||||
zone=dict(default='default'),
|
||||
provider_region=dict(),
|
||||
|
@ -797,7 +813,8 @@ def main():
|
|||
module = AnsibleModule(
|
||||
argument_spec=argument_spec,
|
||||
required_if=[
|
||||
('state', 'present', ['provider'])],
|
||||
('state', 'present', ['provider']),
|
||||
('state', 'refresh', ['name'])],
|
||||
required_together=[
|
||||
['host_default_vnc_port_start', 'host_default_vnc_port_end']
|
||||
],
|
||||
|
@ -869,6 +886,15 @@ def main():
|
|||
host_default_vnc_port_start, host_default_vnc_port_end,
|
||||
subscription, project, uid_ems, tenant_mapping_enabled, api_version)
|
||||
|
||||
# refresh provider (trigger sync)
|
||||
if state == "refresh":
|
||||
if provider:
|
||||
res_args = manageiq_provider.refresh(provider, name)
|
||||
else:
|
||||
res_args = dict(
|
||||
changed=False,
|
||||
msg="provider %s: does not exist in manageiq" % (name))
|
||||
|
||||
module.exit_json(**res_args)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue