From 04fa5668ee6ebafaea4c8c9d5497dab828f6022e Mon Sep 17 00:00:00 2001 From: badra001 Date: Sat, 29 Apr 2023 15:33:17 -0400 Subject: [PATCH] fix --- code/ddns-lambda.py | 44 +++++++++++++++++++++---------------------- code/ddns-lambda.zip | Bin 26222 -> 26212 bytes 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index 8d10ab5..a27bdb0 100755 --- a/code/ddns-lambda.py +++ b/code/ddns-lambda.py @@ -802,16 +802,17 @@ def lambda_handler( # Get the PHZ ID for the Zone zone_forward_item = phz_collection_by_vpc.get(final_hosted_zone_name, {}) if zone_forward_item: - zone_data_forward = zone_data_tuple( - *phz_collection_by_vpc[final_hosted_zone_name].values()) + zone_data_forward = zone_data_tuple( + *phz_collection_by_vpc[final_hosted_zone_name].values()) else: - zone_data_forward = zone_data_tuple(None, None, None, None, None) + zone_data_forward = zone_data_tuple(None, None, None, None, None) - zone_reverse_item = phz_collection_by_vpc.get(tag_data['ptr_entry'].zonename], {}) + zone_reverse_item = phz_collection_by_vpc.get(tag_data['ptr_entry'].zonename, {}) if zone_reverse_item: - zone_data_reverse = zone_data_tuple(*phz_collection_by_vpc[tag_data['ptr_entry'].zonename].values()) + zone_data_reverse = zone_data_tuple( + *phz_collection_by_vpc[tag_data['ptr_entry'].zonename].values()) else: - zone_data_reverse = zone_data_tuple(None, None, None, None, None) + zone_data_reverse = zone_data_tuple(None, None, None, None, None) # final_hosted_zone_item = phz_collection_by_vpc[final_hosted_zone_name] # final_hosted_zone_id = zone_data_forward.zone_id @@ -824,7 +825,7 @@ def lambda_handler( f"private_hosted_zone: zone_id {zone_data_forward.zone_id} is_mine {zone_data_forward.owner_account==account_id} owner {zone_data_forward.owner_account}: {lineno()}") # create the TXT heritage record - heritage=initialize_heritage(HERITAGE_TAG, VERSION, + heritage = initialize_heritage(HERITAGE_TAG, VERSION, { 'account_id': account_id, 'region': region, @@ -910,12 +911,12 @@ def lambda_handler( LOGGER.error("instance: %s, unexpected error. %s\n", instance_id, str(err) + lineno()) else: - if not zone_data_forward.zone_id: - LOGGER.info( - f"not adding A and heritage TXT for host {final_private_hostname} zone {zone_data_forward.name} no such zone value {private_ip}") - else: - LOGGER.info( - f"flags=noforward, not adding A and heritage TXT for host {final_private_hostname} zone {zone_data_forward.name} value {private_ip}") + if not zone_data_forward.zone_id: + LOGGER.info( + f"not adding A and heritage TXT for host {final_private_hostname} zone {zone_data_forward.name} no such zone value {private_ip}") + else: + LOGGER.info( + f"flags=noforward, not adding A and heritage TXT for host {final_private_hostname} zone {zone_data_forward.name} value {private_ip}") if not flags['notpr'] and zone_data_reverse.zone_id: # fqdn = create_fqdn(final_private_hostname, final_hosted_zone_name) @@ -986,11 +987,11 @@ def lambda_handler( instance_id, str(err) + lineno()) else: if not zone_data_reverse.zone_id: - LOGGER.info( - f"not adding PTR and heritage TXT for host {tag_data['ptr_entry'].hostname} zone {tag_data['ptr_entry'].zonename} no such zone value {final_private_dns_name}") + LOGGER.info( + f"not adding PTR and heritage TXT for host {tag_data['ptr_entry'].hostname} zone {tag_data['ptr_entry'].zonename} no such zone value {final_private_dns_name}") else: - LOGGER.info( - f"flags=noptr, not adding PTR and heritage TXT for host {tag_data['ptr_entry'].hostname} zone {tag_data['ptr_entry'].zonename} value {final_private_dns_name}") + LOGGER.info( + f"flags=noptr, not adding PTR and heritage TXT for host {tag_data['ptr_entry'].hostname} zone {tag_data['ptr_entry'].zonename} value {final_private_dns_name}") # else: # not running so delete the records. Note this may leave orphans around if the flags are set and then the host is shut down. We may want to remove no matter what. # go through the dns_data records, and delete them. dns_data contains the records that were added. It is possible the tags have changed @@ -1026,11 +1027,11 @@ def lambda_handler( # cname_domain_suffix_id = cname_domain_suffix_item['zone_id'] # LOGGER.debug("cname_domain_suffix_id: %s", str(cname_domain_suffix_id)) - cf_zonename_item = phz_collection_by_vpc.get(cf_zonename,None) + cf_zonename_item = phz_collection_by_vpc.get(cf_zonename, None) if cf_zonename_item: - cf_zonename_id = cf_zonename_item['zone_id'] + cf_zonename_id = cf_zonename_item['zone_id'] else: - cf_zonename_id = None + cf_zonename_id = None LOGGER.debug(f"cname_domain_suffix_id: {cf_zonename_id}") # create CNAME record in private zone @@ -3095,8 +3096,7 @@ 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 40c89d4df8f6f79bb43f282e6e91b368c9b12941..6a7113156f9610772d451253f2d8611c5f3f36d2 100644 GIT binary patch delta 18157 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