mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Improves code organization in get_dict_from_describe_dict method
This commit is contained in:
parent
41b034a5d2
commit
77a2ad0e8c
1 changed files with 22 additions and 0 deletions
|
@ -1087,12 +1087,18 @@ class Ec2Inventory(object):
|
||||||
key = self.to_safe('ec2_' + self.uncammelize(key))
|
key = self.to_safe('ec2_' + self.uncammelize(key))
|
||||||
|
|
||||||
# Handle complex types
|
# Handle complex types
|
||||||
|
|
||||||
|
# Target: Memcached Cache Clusters
|
||||||
if key == 'ec2_configuration_endpoint' and value:
|
if key == 'ec2_configuration_endpoint' and value:
|
||||||
host_info['ec2_configuration_endpoint_address'] = value['Address']
|
host_info['ec2_configuration_endpoint_address'] = value['Address']
|
||||||
host_info['ec2_configuration_endpoint_port'] = value['Port']
|
host_info['ec2_configuration_endpoint_port'] = value['Port']
|
||||||
|
|
||||||
|
# Target: Cache Nodes and Redis Cache Clusters (single node)
|
||||||
if key == 'ec2_endpoint' and value:
|
if key == 'ec2_endpoint' and value:
|
||||||
host_info['ec2_endpoint_address'] = value['Address']
|
host_info['ec2_endpoint_address'] = value['Address']
|
||||||
host_info['ec2_endpoint_port'] = value['Port']
|
host_info['ec2_endpoint_port'] = value['Port']
|
||||||
|
|
||||||
|
# Target: Redis Replication Groups
|
||||||
if key == 'ec2_node_groups' and value:
|
if key == 'ec2_node_groups' and value:
|
||||||
host_info['ec2_endpoint_address'] = value[0]['PrimaryEndpoint']['Address']
|
host_info['ec2_endpoint_address'] = value[0]['PrimaryEndpoint']['Address']
|
||||||
host_info['ec2_endpoint_port'] = value[0]['PrimaryEndpoint']['Port']
|
host_info['ec2_endpoint_port'] = value[0]['PrimaryEndpoint']['Port']
|
||||||
|
@ -1107,25 +1113,41 @@ class Ec2Inventory(object):
|
||||||
host_info['ec2_replica_cluster_port_'+ str(replica_count)] = node['ReadEndpoint']['Port']
|
host_info['ec2_replica_cluster_port_'+ str(replica_count)] = node['ReadEndpoint']['Port']
|
||||||
host_info['ec2_replica_cluster_id_'+ str(replica_count)] = node['CacheClusterId']
|
host_info['ec2_replica_cluster_id_'+ str(replica_count)] = node['CacheClusterId']
|
||||||
replica_count += 1
|
replica_count += 1
|
||||||
|
|
||||||
|
# Target: Redis Replication Groups
|
||||||
if key == 'ec2_member_clusters' and value:
|
if key == 'ec2_member_clusters' and value:
|
||||||
host_info['ec2_member_clusters'] = ','.join([str(i) for i in value])
|
host_info['ec2_member_clusters'] = ','.join([str(i) for i in value])
|
||||||
|
|
||||||
|
# Target: All Cache Clusters
|
||||||
elif key == 'ec2_cache_parameter_group':
|
elif key == 'ec2_cache_parameter_group':
|
||||||
host_info["ec2_cache_node_ids_to_reboot"] = ','.join([str(i) for i in value['CacheNodeIdsToReboot']])
|
host_info["ec2_cache_node_ids_to_reboot"] = ','.join([str(i) for i in value['CacheNodeIdsToReboot']])
|
||||||
host_info['ec2_cache_parameter_group_name'] = value['CacheParameterGroupName']
|
host_info['ec2_cache_parameter_group_name'] = value['CacheParameterGroupName']
|
||||||
host_info['ec2_cache_parameter_apply_status'] = value['ParameterApplyStatus']
|
host_info['ec2_cache_parameter_apply_status'] = value['ParameterApplyStatus']
|
||||||
|
|
||||||
|
# Target: Almost everything
|
||||||
elif key == 'ec2_security_groups':
|
elif key == 'ec2_security_groups':
|
||||||
sg_ids = []
|
sg_ids = []
|
||||||
for sg in value:
|
for sg in value:
|
||||||
sg_ids.append(sg['SecurityGroupId'])
|
sg_ids.append(sg['SecurityGroupId'])
|
||||||
host_info["ec2_security_group_ids"] = ','.join([str(i) for i in sg_ids])
|
host_info["ec2_security_group_ids"] = ','.join([str(i) for i in sg_ids])
|
||||||
|
|
||||||
|
# Target: Everything
|
||||||
|
# Preserve booleans and integers
|
||||||
elif type(value) in [int, bool]:
|
elif type(value) in [int, bool]:
|
||||||
host_info[key] = value
|
host_info[key] = value
|
||||||
|
|
||||||
|
# Target: Everything
|
||||||
|
# Sanitize string values
|
||||||
elif isinstance(value, six.string_types):
|
elif isinstance(value, six.string_types):
|
||||||
host_info[key] = value.strip()
|
host_info[key] = value.strip()
|
||||||
|
|
||||||
|
# Target: Everything
|
||||||
|
# Replace None by an empty string
|
||||||
elif type(value) == type(None):
|
elif type(value) == type(None):
|
||||||
host_info[key] = ''
|
host_info[key] = ''
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
# Remove non-processed complex types
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return host_info
|
return host_info
|
||||||
|
|
Loading…
Reference in a new issue