Skip to content

Commit

Permalink
Fix to be set default parameter for runtime_settings to runtime_setti…
Browse files Browse the repository at this point in the history
  • Loading branch information
sky-joker committed Feb 22, 2020
1 parent 6936e7b commit 6789d6d
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions lib/ansible/modules/cloud/vmware/vmware_vcenter_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,14 @@ class VmwareVcenterSettings(PyVmomi):

def __init__(self, module):
super(VmwareVcenterSettings, self).__init__(module)
self.option_manager = self.content.setting

if not self.is_vcenter():
self.module.fail_json(msg="You have to connect to a vCenter server!")

def get_default_setting_value(self, setting_key):
return self.option_manager.QueryOptions(name=setting_key)[0].value

def ensure(self):
"""Manage settings for a vCenter server"""
result = dict(changed=False, msg='')
Expand All @@ -237,9 +241,28 @@ def ensure(self):
db_task_retention = self.params['database'].get('task_retention')
db_event_cleanup = self.params['database'].get('event_cleanup')
db_event_retention = self.params['database'].get('event_retention')
runtime_unique_id = self.params['runtime_settings'].get('unique_id')
runtime_managed_address = self.params['runtime_settings'].get('managed_address')
runtime_server_name = self.params['runtime_settings'].get('vcenter_server_name')

# runtime default value
runtime_unique_id_default = self.get_default_setting_value('instance.id')
runtime_managed_address_default = self.get_default_setting_value('VirtualCenter.ManagedIP')
runtime_server_name_default = self.get_default_setting_value('VirtualCenter.InstanceName')

if self.params['runtime_settings']:
runtime_unique_id = self.params['runtime_settings'].get('unique_id')
runtime_managed_address = self.params['runtime_settings'].get('managed_address')
runtime_server_name = self.params['runtime_settings'].get('vcenter_server_name')

if runtime_unique_id is None:
runtime_unique_id = runtime_unique_id_default
if runtime_managed_address is None:
runtime_managed_address = runtime_managed_address_default
if runtime_server_name is None:
runtime_server_name = runtime_server_name_default
else:
runtime_unique_id = runtime_unique_id_default
runtime_managed_address = runtime_managed_address_default
runtime_server_name = runtime_server_name_default

directory_timeout = self.params['user_directory'].get('timeout')
directory_query_limit = self.params['user_directory'].get('query_limit')
directory_query_limit_size = self.params['user_directory'].get('query_limit_size')
Expand Down Expand Up @@ -289,8 +312,7 @@ def ensure(self):
result['timeout_long_operations'] = timeout_long_operations
result['logging_options'] = logging_options
change_option_list = []
option_manager = self.content.setting
for setting in option_manager.setting:
for setting in self.option_manager.setting:
# Database
if setting.key == 'VirtualCenter.MaxDBConnection' and setting.value != db_max_connections:
changed = True
Expand Down Expand Up @@ -554,7 +576,7 @@ def ensure(self):
message += changed_suffix
if not self.module.check_mode:
try:
option_manager.UpdateOptions(changedValue=change_option_list)
self.option_manager.UpdateOptions(changedValue=change_option_list)
except (vmodl.fault.SystemError, vmodl.fault.InvalidArgument) as invalid_argument:
self.module.fail_json(
msg="Failed to update option(s) as one or more OptionValue contains an invalid value: %s" %
Expand Down

0 comments on commit 6789d6d

Please sign in to comment.