summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorrubal033 <rubal033@yahoo.com>2018-05-31 20:54:37 +0200
committerRyan Brown <sb@ryansb.com>2018-05-31 20:54:37 +0200
commit61c6f4fda1b52fe6b775d0094831a55f37bb7d80 (patch)
treebd39cef4b11704bbf4b6835da2a250a52bca7526 /contrib
parentTerraform: Pass module targets to terraform plan as well as apply (#40958) (diff)
downloadansible-61c6f4fda1b52fe6b775d0094831a55f37bb7d80.tar.xz
ansible-61c6f4fda1b52fe6b775d0094831a55f37bb7d80.zip
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
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/inventory/ec2.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/contrib/inventory/ec2.py b/contrib/inventory/ec2.py
index 964b5be164..479bdf1e4e 100755
--- a/contrib/inventory/ec2.py
+++ b/contrib/inventory/ec2.py
@@ -782,13 +782,26 @@ class Ec2Inventory(object):
# 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
# the shorthand method anyway...)
+ clusters = []
try:
conn = self.connect_to_aws(elasticache, region)
if conn:
# show_cache_node_info = True
# 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:
error = e.reason
@@ -802,16 +815,6 @@ class Ec2Inventory(object):
error = "Looks like AWS ElastiCache is down:\n%s" % e.message
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:
self.add_elasticache_cluster(cluster, region)