VMware: Move helper functions from vmware_host_config_manager to module util.

pull/62801/merge
Mario Lenz 5 years ago committed by Gonéri Le Bouder
parent ad580a71c4
commit d01035ef25

@ -821,6 +821,26 @@ def wait_for_poweroff(vm, timeout=300):
return result return result
def is_integer(value, type_of='int'):
try:
VmomiSupport.vmodlTypes[type_of](value)
return True
except (TypeError, ValueError):
return False
def is_boolean(value):
if str(value).lower() in ['true', 'on', 'yes', 'false', 'off', 'no']:
return True
return False
def is_truthy(value):
if str(value).lower() in ['true', 'on', 'yes']:
return True
return False
class PyVmomi(object): class PyVmomi(object):
def __init__(self, module): def __init__(self, module):
""" """

@ -93,7 +93,7 @@ except ImportError:
pass pass
from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.vmware import vmware_argument_spec, PyVmomi from ansible.module_utils.vmware import vmware_argument_spec, PyVmomi, is_boolean, is_integer, is_truthy
from ansible.module_utils._text import to_native from ansible.module_utils._text import to_native
from ansible.module_utils.six import integer_types, string_types from ansible.module_utils.six import integer_types, string_types
@ -106,26 +106,6 @@ class VmwareConfigManager(PyVmomi):
self.options = self.params.get('options', dict()) self.options = self.params.get('options', dict())
self.hosts = self.get_all_host_objs(cluster_name=cluster_name, esxi_host_name=esxi_host_name) self.hosts = self.get_all_host_objs(cluster_name=cluster_name, esxi_host_name=esxi_host_name)
@staticmethod
def is_integer(value, type_of='int'):
try:
VmomiSupport.vmodlTypes[type_of](value)
return True
except (TypeError, ValueError):
return False
@staticmethod
def is_boolean(value):
if str(value).lower() in ['true', 'on', 'yes', 'false', 'off', 'no']:
return True
return False
@staticmethod
def is_truthy(value):
if str(value).lower() in ['true', 'on', 'yes']:
return True
return False
def set_host_configuration_facts(self): def set_host_configuration_facts(self):
changed_list = [] changed_list = []
message = '' message = ''
@ -146,12 +126,12 @@ class VmwareConfigManager(PyVmomi):
if option_key in host_facts: if option_key in host_facts:
# We handle all supported types here so we can give meaningful errors. # We handle all supported types here so we can give meaningful errors.
option_type = host_facts[option_key]['option_type'] option_type = host_facts[option_key]['option_type']
if self.is_boolean(option_value) and isinstance(option_type, vim.option.BoolOption): if is_boolean(option_value) and isinstance(option_type, vim.option.BoolOption):
option_value = self.is_truthy(option_value) option_value = is_truthy(option_value)
elif (isinstance(option_value, integer_types) or self.is_integer(option_value))\ elif (isinstance(option_value, integer_types) or is_integer(option_value))\
and isinstance(option_type, vim.option.IntOption): and isinstance(option_type, vim.option.IntOption):
option_value = VmomiSupport.vmodlTypes['int'](option_value) option_value = VmomiSupport.vmodlTypes['int'](option_value)
elif (isinstance(option_value, integer_types) or self.is_integer(option_value, 'long'))\ elif (isinstance(option_value, integer_types) or is_integer(option_value, 'long'))\
and isinstance(option_type, vim.option.LongOption): and isinstance(option_type, vim.option.LongOption):
option_value = VmomiSupport.vmodlTypes['long'](option_value) option_value = VmomiSupport.vmodlTypes['long'](option_value)
elif isinstance(option_value, float) and isinstance(option_type, vim.option.FloatOption): elif isinstance(option_value, float) and isinstance(option_type, vim.option.FloatOption):

Loading…
Cancel
Save