better metadata formatting on gcp_compute (#57778)
This commit is contained in:
parent
6e89fbe58a
commit
9364b4c933
1 changed files with 16 additions and 2 deletions
|
@ -236,8 +236,6 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
|
|||
|
||||
if navigate_hash(result, ['error', 'errors']):
|
||||
module.fail_json(msg=navigate_hash(result, ['error', 'errors']))
|
||||
if result['kind'] != 'compute#instanceAggregatedList' and result['kind'] != 'compute#zoneList':
|
||||
module.fail_json(msg="Incorrect result: {kind}".format(**result))
|
||||
|
||||
return result
|
||||
|
||||
|
@ -260,6 +258,11 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
|
|||
if 'subnetwork' in network:
|
||||
network['subnetwork'] = self._format_network_info(network['subnetwork'])
|
||||
|
||||
if 'metadata' in host:
|
||||
# If no metadata, 'items' will be blank.
|
||||
# We want the metadata hash overriden anyways for consistency.
|
||||
host['metadata'] = self._format_metadata(host['metadata'].get('items', {}))
|
||||
|
||||
host['project'] = host['selfLink'].split('/')[6]
|
||||
host['image'] = self._get_image(host, project_disks)
|
||||
return items
|
||||
|
@ -300,6 +303,17 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
|
|||
'selfLink': address
|
||||
}
|
||||
|
||||
def _format_metadata(self, metadata):
|
||||
'''
|
||||
:param metadata: A list of dicts where each dict has keys "key" and "value"
|
||||
:return a dict with key/value pairs for each in list.
|
||||
'''
|
||||
new_metadata = {}
|
||||
print(metadata)
|
||||
for pair in metadata:
|
||||
new_metadata[pair["key"]] = pair["value"]
|
||||
return new_metadata
|
||||
|
||||
def _get_hostname(self, item):
|
||||
'''
|
||||
:param item: A host response from GCP
|
||||
|
|
Loading…
Reference in a new issue