From 2fcd20b8e6711afa48fe10608e7cd85b2944a0a6 Mon Sep 17 00:00:00 2001 From: badra001 Date: Sat, 29 Apr 2023 14:39:29 -0400 Subject: [PATCH] fix --- CHANGELOG.md | 4 ++ code/ddns-lambda.py | 130 +++++++++++++++++++++++++------------------ code/ddns-lambda.zip | Bin 25572 -> 25957 bytes version.tf | 2 +- 4 files changed, 82 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 797f957..2e60ba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -131,3 +131,7 @@ - add detection of a runnign EMR cluster with aws:elasticmapreduce: job-flow-id (cluster) and instance-group-role and use this to set an alias defined in boc:dns:cname ({friendlyname}.master), but if it is a cluser node, only use the cname if it is master. If it is not a cluster, set the cname + +* 2.0.1 -- 2023-04-29 + - code 2.0.1 + - add pagination for list hosted zone by vpc (as some vpcs have hundreds of zones, specifically the one with dns endpoints) diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index fa18018..0394481 100755 --- a/code/ddns-lambda.py +++ b/code/ddns-lambda.py @@ -73,7 +73,7 @@ LOGGER = logging.getLogger() account_id = None region = None -VERSION = '2.0.0' +VERSION = '2.0.1a1' # Read Env variables DEBUG_LOG_LEVEL = os.environ.get('DebugLogLevel', 'INFO') @@ -540,13 +540,14 @@ def lambda_handler( # LOGGER.debug("hosted_zones for vpc_id %s: %s", vpc_id, str(hosted_zones) + lineno()) hosted_zones_by_vpc = new_list_hosted_zones_by_vpc( route53, instance_id, vpc_id, region) - LOGGER.debug("hosted_zones_by_vpc for vpc_id %s: %s", - vpc_id, str(hosted_zones_by_vpc) + lineno()) + LOGGER.debug( + "hosted_zones_by_vpc for vpc_id {vpc_id}: {pformat(hosted_zones_by_vpc)} {lineno()}") # private_hosted_zones = get_private_hosted_zones(hosted_zones) # LOGGER.debug("private_hosted_zones: %s", str(list(private_hosted_zones)) + lineno()) - private_hosted_zones_by_vpc = get_private_hosted_zones_by_vpc(hosted_zones_by_vpc) - LOGGER.debug("private_hosted_zones_by_vpc: vpc_id: %s, %s", - vpc_id, str(list(private_hosted_zones_by_vpc)) + lineno()) + private_hosted_zones_by_vpc = hosted_zones_by_vpc +# private_hosted_zones_by_vpc = get_private_hosted_zones_by_vpc(hosted_zones_by_vpc) +# LOGGER.debug("private_hosted_zones_by_vpc: vpc_id: %s, %s", +# vpc_id, str(list(private_hosted_zones_by_vpc)) + lineno()) # private_hosted_zone_collection = get_private_hosted_zone_collection( # private_hosted_zones) # LOGGER.debug("private_hosted_zone_collection: %s", @@ -1256,32 +1257,50 @@ def new_list_hosted_zones_by_vpc(client, instance_id, vpc_id, region): :return: """ +# if we need to retry ,we do not want to start the list over i = 0 - hosted_zones = {} + c = 0 + token = None + time_start = datetime.datetime.now() + hosted_zones = [] # retry to handle errors in the possible API call while i < MAX_API_RETRY: try: - hosted_zones = client.list_hosted_zones_by_vpc( - VPCId=vpc_id, VPCRegion=region) - LOGGER.debug( - "list_hosted_zones_by_vpc returned without error. %s", lineno()) + if not token: + this_hosted_zones = client.list_hosted_zones_by_vpc( + VPCId=vpc_id, VPCRegion=region, MaxItems='100') + hosted_zones.extend(this_hosted_zone['HostedZoneSummaries']) + token = this_hosted_zones.get('NextToken', None) + LOGGER.debug( + f"list_hosted_zones_by_vpc retry {i} iteration {c} returned without error (more available) {token!=None}. {lineno()}") + while token: + c += 1 + this_hosted_zones = client.list_hosted_zones_by_vpc( + VPCId=vpc_id, VPCRegion=region, MaxItems='100', NextToken=token) + hosted_zones.extend(this_hosted_zone['HostedZoneSummaries']) + token = this_hosted_zones.get('NextToken', None) + LOGGER.debug( + f"list_hosted_zones_by_vpc retry {i} iteration {c} returned without error (more available) {token!=None}. {lineno()}") break except ClientError as err: error_message = str(err) if "(Throttling)" in str(err): LOGGER.debug( - "list_hosted_zones_by_vpc throttled due to API limit, retrying: %s", str(err) + lineno()) + f"list_hosted_zones_by_vpc throttled due to API limit, retrying: {err} {lineno()}") else: - LOGGER.info("vpc: %s, instance: %s, unexpected error. %s\n", - vpc_id, instance_id, error_message + lineno()) + LOGGER.info( + f"vpc: {vpc_id}, instance: {instance_id}, unexpected error. {error_messge} {lineno()}") + i += 1 - LOGGER.info("instance: %s, list_hosted_zones_by_vpc %v returned error, waiting before retry. %s", - vpc_id, instance_id, str(i) + lineno()) + LOGGER.info( + f"instance: {instance_id} list_hosted_zones_by_vpc {vpc_id} returned error, waiting {i} sec before retry. {lineno()}") time.sleep(i) count['sleep.count'] += 1 count['sleep.time'] += i count['retry'] += 1 + count['zones.pagination'] = c + time_end = datetime.datetime.now() if hosted_zones == {}: LOGGER.error("vpc_id: %s, instance: %s, list_hosted_zones_by_vpc returned error. Timed out. %s", vpc_id, instance_id, str(i) + lineno()) @@ -1302,6 +1321,10 @@ def new_list_hosted_zones_by_vpc(client, instance_id, vpc_id, region): LOGGER.info("vpc_id: %s, instance: %s, error: %s", vpc_id, instance_id, str(sys.exc_info()[0]) + lineno()) + elapsed_time = time_end - time_start + count['zones'] = len(hosted_zones) + LOGGER.info( + f"list_hosted_zones_by_vpc stats: elapsed_time.ms {elapsed_time.total_seconds()*1000.0} zones {len(hosted_zones)} iterations {c}") return hosted_zones @@ -1449,45 +1472,45 @@ def get_private_hosted_zone_collection_by_vpc(private_hosted_zones): LOGGER.info("unexpected error. %s\n", str(sys.exc_info()[0]) + lineno()) -def get_private_hosted_zones(hosted_zones): - """ - Get private hosted zones - :param hosted_zones: - :return: - """ - try: - private_hosted_zones = [] - - for item in hosted_zones['HostedZones']: - LOGGER.debug("item: %s", str(item) + lineno()) - - if item['Config']['PrivateZone']: - private_hosted_zones.append(item) - - return private_hosted_zones - except: - LOGGER.info("unexpected error. %s\n", str(sys.exc_info()[0]) + lineno()) - +# def get_private_hosted_zones(hosted_zones): +# """ +# Get private hosted zones +# :param hosted_zones: +# :return: +# """ +# try: +# private_hosted_zones = [] +# +# for item in hosted_zones['HostedZones']: +# LOGGER.debug("item: %s", str(item) + lineno()) +# +# if item['Config']['PrivateZone']: +# private_hosted_zones.append(item) +# +# return private_hosted_zones +# except: +# LOGGER.info("unexpected error. %s\n", str(sys.exc_info()[0]) + lineno()) +# # 'HostedZoneSummaries': [{'HostedZoneId': 'Z03702572CGNJTW5OPG68', 'Name': '0.192.10.in-addr.arpa.', 'Owner': {'OwningAccount': '057405694017'}}, {'HostedZoneId': 'Z07556021WTTHLOJ6S3C', 'Name': -def get_private_hosted_zones_by_vpc(hosted_zones): - """ - Get private hosted zones - :param hosted_zones: - :return: - """ - try: - private_hosted_zones = [] - - for item in hosted_zones['HostedZoneSummaries']: - LOGGER.debug("item: %s", str(item) + lineno()) - - private_hosted_zones.append(item) - - return private_hosted_zones - except: - LOGGER.info("unexpected error. %s\n", str(sys.exc_info()[0]) + lineno()) +# def get_private_hosted_zones_by_vpc(hosted_zones): +# """ +# Get private hosted zones +# :param list(str) hosted_zones: List of hosted zone elements from HostedZoneSummaries +# :return: +# """ +# try: +# private_hosted_zones = [] +# +# for item in hosted_zones: +# LOGGER.debug("item: %s", str(item) + lineno()) +# +# private_hosted_zones.append(item) +# +# return private_hosted_zones +# except: +# LOGGER.info("unexpected error. %s\n", str(sys.exc_info()[0]) + lineno()) def get_dhcp_option_set_id_for_vpc(client, instance_id, vpc_id): @@ -3048,7 +3071,8 @@ def tags_to_dict(tags): tag_dict = {} if len(tags) > 0: - tag_dict = {tag.get('Key', '').lstrip().rstrip() : tag.get('Value', '') for tag in tags} + tag_dict = {tag.get('Key', '').lstrip().rstrip() + : tag.get('Value', '') for tag in tags} return tag_dict diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index 22e2872dceaa9bd70fefbae2a050923b8b2dc9ed..493e094f5844f05cf9176cf3ecbc24637d7ddc9c 100644 GIT binary patch literal 25957 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 YO9ci1000010096z0000JWdHyG0HPC}9{>OV literal 25572 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 diff --git a/version.tf b/version.tf index 6b49608..100daf2 100644 --- a/version.tf +++ b/version.tf @@ -1,3 +1,3 @@ locals { - _module_version = "2.0.0" + _module_version = "2.0.1" }