1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Fixes #40661 fixed elasticache inventory node limit issue. (#40674)

* fixed elasticache inventory node limit issue

* fixed elasticache inventory node limit issue, sanity fixes

* fixed elasticache inventory node limit issue, sanity fixes

* fixed elasticache inventory node limit issue, spelling corrections

* fixed elasticache inventory node limit issue, removed blank lines
This commit is contained in:
rubal033 2018-06-01 00:24:37 +05:30 committed by Ryan Brown
parent 52b79a87ee
commit 61c6f4fda1

View file

@ -782,13 +782,26 @@ class Ec2Inventory(object):
# ElastiCache boto module doesn't provide a get_all_instances method, # ElastiCache boto module doesn't provide a get_all_instances method,
# that's why we need to call describe directly (it would be called by # that's why we need to call describe directly (it would be called by
# the shorthand method anyway...) # the shorthand method anyway...)
clusters = []
try: try:
conn = self.connect_to_aws(elasticache, region) conn = self.connect_to_aws(elasticache, region)
if conn: if conn:
# show_cache_node_info = True # show_cache_node_info = True
# because we also want nodes' information # because we also want nodes' information
response = conn.describe_cache_clusters(None, None, None, True) _marker = 1
while _marker:
if _marker == 1:
_marker = None
response = conn.describe_cache_clusters(None, None, _marker, True)
_marker = response['DescribeCacheClustersResponse']['DescribeCacheClustersResult']['Marker']
try:
# Boto also doesn't provide wrapper classes to CacheClusters or
# CacheNodes. Because of that we can't make use of the get_list
# method in the AWSQueryConnection. Let's do the work manually
clusters = clusters + response['DescribeCacheClustersResponse']['DescribeCacheClustersResult']['CacheClusters']
except KeyError as e:
error = "ElastiCache query to AWS failed (unexpected format)."
self.fail_with_error(error, 'getting ElastiCache clusters')
except boto.exception.BotoServerError as e: except boto.exception.BotoServerError as e:
error = e.reason error = e.reason
@ -802,16 +815,6 @@ class Ec2Inventory(object):
error = "Looks like AWS ElastiCache is down:\n%s" % e.message error = "Looks like AWS ElastiCache is down:\n%s" % e.message
self.fail_with_error(error, 'getting ElastiCache clusters') self.fail_with_error(error, 'getting ElastiCache clusters')
try:
# Boto also doesn't provide wrapper classes to CacheClusters or
# CacheNodes. Because of that we can't make use of the get_list
# method in the AWSQueryConnection. Let's do the work manually
clusters = response['DescribeCacheClustersResponse']['DescribeCacheClustersResult']['CacheClusters']
except KeyError as e:
error = "ElastiCache query to AWS failed (unexpected format)."
self.fail_with_error(error, 'getting ElastiCache clusters')
for cluster in clusters: for cluster in clusters:
self.add_elasticache_cluster(cluster, region) self.add_elasticache_cluster(cluster, region)