|
|
|
|
@ -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,
|
|
|
|
|
|