VMware: Move helper functions from vmware_host_config_manager to module util.

This commit is contained in:
Mario Lenz 2019-09-30 22:03:09 +02:00 committed by Gonéri Le Bouder
parent ad580a71c4
commit d01035ef25
2 changed files with 25 additions and 25 deletions

View file

@ -821,6 +821,26 @@ def wait_for_poweroff(vm, timeout=300):
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):
def __init__(self, module):
"""

View file

@ -93,7 +93,7 @@ except ImportError:
pass
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.six import integer_types, string_types
@ -106,26 +106,6 @@ class VmwareConfigManager(PyVmomi):
self.options = self.params.get('options', dict())
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):
changed_list = []
message = ''
@ -146,12 +126,12 @@ class VmwareConfigManager(PyVmomi):
if option_key in host_facts:
# We handle all supported types here so we can give meaningful errors.
option_type = host_facts[option_key]['option_type']
if self.is_boolean(option_value) and isinstance(option_type, vim.option.BoolOption):
option_value = self.is_truthy(option_value)
elif (isinstance(option_value, integer_types) or self.is_integer(option_value))\
if is_boolean(option_value) and isinstance(option_type, vim.option.BoolOption):
option_value = is_truthy(option_value)
elif (isinstance(option_value, integer_types) or is_integer(option_value))\
and isinstance(option_type, vim.option.IntOption):
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):
option_value = VmomiSupport.vmodlTypes['long'](option_value)
elif isinstance(option_value, float) and isinstance(option_type, vim.option.FloatOption):