From 9fc710f6570aebd4ed877bbaf985738f2be0bfe0 Mon Sep 17 00:00:00 2001 From: Mark Dierolf Date: Thu, 11 Jul 2019 14:57:09 -0700 Subject: [PATCH] Fixed a bug where the Route 53 Health Check would add a new health check instead of updating an existing one when the user has > 100 health checks (#58539) --- .../cloud/amazon/route53_health_check.py | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/lib/ansible/modules/cloud/amazon/route53_health_check.py b/lib/ansible/modules/cloud/amazon/route53_health_check.py index f2e18df05cd..9ffaba35c23 100644 --- a/lib/ansible/modules/cloud/amazon/route53_health_check.py +++ b/lib/ansible/modules/cloud/amazon/route53_health_check.py @@ -145,17 +145,25 @@ from ansible.module_utils.ec2 import ec2_argument_spec, get_aws_connection_info # string_match if not previously enabled def find_health_check(conn, wanted): """Searches for health checks that have the exact same set of immutable values""" - for check in conn.get_list_health_checks().HealthChecks: - config = check.HealthCheckConfig - if ( - config.get('IPAddress') == wanted.ip_addr and - config.get('FullyQualifiedDomainName') == wanted.fqdn and - config.get('Type') == wanted.hc_type and - config.get('RequestInterval') == str(wanted.request_interval) and - config.get('Port') == str(wanted.port) - ): - return check - return None + + results = conn.get_list_health_checks() + + while True: + for check in results.HealthChecks: + config = check.HealthCheckConfig + if ( + config.get('IPAddress') == wanted.ip_addr and + config.get('FullyQualifiedDomainName') == wanted.fqdn and + config.get('Type') == wanted.hc_type and + config.get('RequestInterval') == str(wanted.request_interval) and + config.get('Port') == str(wanted.port) + ): + return check + + if (results.IsTruncated == 'true'): + results = conn.get_list_health_checks(marker=results.NextMarker) + else: + return None def to_health_check(config):