Add power_manage_enabled option to ovirt_hosts module (#28154)

* cloud: ovirt: Add possibility to enable PM of host

* cloud: ovirt_hosts: user self.param to get module params
This commit is contained in:
Ondra Machacek 2017-08-15 11:32:18 +02:00 committed by ansibot
parent 5fec649052
commit e9c9473819

View file

@ -103,6 +103,11 @@ options:
- "If I(undeploy) it means this host should un-deploy hosted engine
components and this host will not function as part of the High
Availability cluster."
power_management_enabled:
description:
- "Enable or disable power management of the host."
- "For more comprehensive setup of PM use C(ovirt_host_pm) module."
version_added: 2.4
extends_documentation_fragment: ovirt
'''
@ -204,38 +209,42 @@ class HostsModule(BaseModule):
def build_entity(self):
return otypes.Host(
name=self._module.params['name'],
name=self.param('name'),
cluster=otypes.Cluster(
name=self._module.params['cluster']
) if self._module.params['cluster'] else None,
comment=self._module.params['comment'],
address=self._module.params['address'],
root_password=self._module.params['password'],
name=self.param('cluster')
) if self.param('cluster') else None,
comment=self.param('comment'),
address=self.param('address'),
root_password=self.param('password'),
ssh=otypes.Ssh(
authentication_method=otypes.SshAuthenticationMethod.PUBLICKEY,
) if self._module.params['public_key'] else None,
) if self.param('public_key') else None,
kdump_status=otypes.KdumpStatus(
self._module.params['kdump_integration']
) if self._module.params['kdump_integration'] else None,
self.param('kdump_integration')
) if self.param('kdump_integration') else None,
spm=otypes.Spm(
priority=self._module.params['spm_priority'],
) if self._module.params['spm_priority'] else None,
override_iptables=self._module.params['override_iptables'],
priority=self.param('spm_priority'),
) if self.param('spm_priority') else None,
override_iptables=self.param('override_iptables'),
display=otypes.Display(
address=self._module.params['override_display'],
) if self._module.params['override_display'] else None,
address=self.param('override_display'),
) if self.param('override_display') else None,
os=otypes.OperatingSystem(
custom_kernel_cmdline=' '.join(self._module.params['kernel_params']),
) if self._module.params['kernel_params'] else None,
custom_kernel_cmdline=' '.join(self.param('kernel_params')),
) if self.param('kernel_params') else None,
power_management=otypes.PowerManagement(
enabled=self.param('power_management_enabled'),
) if self.param('power_management_enabled') is not None else None,
)
def update_check(self, entity):
kernel_params = self._module.params.get('kernel_params')
kernel_params = self.param('kernel_params')
return (
equal(self._module.params.get('comment'), entity.comment) and
equal(self._module.params.get('kdump_integration'), entity.kdump_status) and
equal(self._module.params.get('spm_priority'), entity.spm.priority) and
equal(self._module.params.get('override_display'), getattr(entity.display, 'address', None)) and
equal(self.param('comment'), entity.comment) and
equal(self.param('kdump_integration'), entity.kdump_status) and
equal(self.param('spm_priority'), entity.spm.priority) and
equal(self.param('power_management_enabled'), entity.power_management.enabled) and
equal(self.param('override_display'), getattr(entity.display, 'address', None)) and
equal(
sorted(kernel_params) if kernel_params else None,
sorted(entity.os.custom_kernel_cmdline.split(' '))
@ -251,7 +260,7 @@ class HostsModule(BaseModule):
)
def post_update(self, entity):
if entity.status != hoststate.UP and self._module.params['state'] == 'present':
if entity.status != hoststate.UP and self.param('state') == 'present':
if not self._module.check_mode:
self._service.host_service(entity.id).activate()
self.changed = True
@ -261,8 +270,8 @@ class HostsModule(BaseModule):
service=self._service.service(host.id),
condition=lambda h: h.status != hoststate.MAINTENANCE,
fail_condition=failed_state,
wait=self._module.params['wait'],
timeout=self._module.params['timeout'],
wait=self.param('wait'),
timeout=self.param('timeout'),
)
@ -336,6 +345,7 @@ def main():
override_display=dict(default=None),
kernel_params=dict(default=None, type='list'),
hosted_engine=dict(default=None, choices=['deploy', 'undeploy']),
power_management_enabled=dict(default=None, type='bool'),
)
module = AnsibleModule(
argument_spec=argument_spec,