vultr: Make get_result handle list (#42890)
Currently get_result() can only handle a dict. When requiring facts, and when there is more than one fact, get_result() should be able to handle a list of dicts, so the normalization process happens to all the items.
This commit is contained in:
parent
b6e9df2065
commit
577427b1c2
1 changed files with 20 additions and 13 deletions
|
@ -225,20 +225,27 @@ class Vultr:
|
|||
|
||||
self.module.fail_json(msg="Could not find %s with %s: %s" % (resource, key, value))
|
||||
|
||||
def normalize_result(self, resource):
|
||||
for search_key, config in self.returns.items():
|
||||
if search_key in resource:
|
||||
if 'convert_to' in config:
|
||||
if config['convert_to'] == 'int':
|
||||
resource[search_key] = int(resource[search_key])
|
||||
elif config['convert_to'] == 'float':
|
||||
resource[search_key] = float(resource[search_key])
|
||||
elif config['convert_to'] == 'bool':
|
||||
resource[search_key] = True if resource[search_key] == 'yes' else False
|
||||
|
||||
if 'key' in config:
|
||||
resource[config['key']] = resource[search_key]
|
||||
|
||||
return resource
|
||||
|
||||
def get_result(self, resource):
|
||||
if resource:
|
||||
for search_key, config in self.returns.items():
|
||||
if search_key in resource:
|
||||
if 'convert_to' in config:
|
||||
if config['convert_to'] == 'int':
|
||||
resource[search_key] = int(resource[search_key])
|
||||
elif config['convert_to'] == 'float':
|
||||
resource[search_key] = float(resource[search_key])
|
||||
elif config['convert_to'] == 'bool':
|
||||
resource[search_key] = True if resource[search_key] == 'yes' else False
|
||||
if isinstance(resource, list):
|
||||
self.result[self.namespace] = [self.normalize_result(item) for item in resource]
|
||||
else:
|
||||
self.result[self.namespace] = self.normalize_result(resource)
|
||||
|
||||
if 'key' in config:
|
||||
self.result[self.namespace][config['key']] = resource[search_key]
|
||||
else:
|
||||
self.result[self.namespace][search_key] = resource[search_key]
|
||||
return self.result
|
||||
|
|
Loading…
Reference in a new issue