From f66cb0d9a3e2723229ad696ad71c9f3ceae1271b Mon Sep 17 00:00:00 2001 From: badra001 Date: Wed, 26 Apr 2023 15:48:50 -0400 Subject: [PATCH] fix --- code/ddns-lambda.py | 31 ++++++++++++++++++++++++------- code/ddns-lambda.zip | Bin 22854 -> 23097 bytes 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index f3cdce8..b2af36a 100755 --- a/code/ddns-lambda.py +++ b/code/ddns-lambda.py @@ -73,7 +73,7 @@ LOGGER = logging.getLogger() account_id = None region = None -VERSION = '1.2.0b61' +VERSION = '1.2.0b63' # Read Env variables DEBUG_LOG_LEVEL = os.environ.get('DebugLogLevel', 'INFO') @@ -403,14 +403,11 @@ def lambda_handler( instance = get_item_from_dynamodb_table(dynamodb_client, DDBNAME, instance_id) LOGGER.info("instance attributes: %s", str(instance) + lineno()) try: - # LOGGER.info(f"instance_data type {type(instance)} {lineno()}") - # instance_data = json.loads(instance) - # LOGGER.info(f"getting _DnsEntries {lineno()}") dns_data_raw = instance.get('_DnsEntries', []) - LOGGER.info( + LOGGER.debug( f"got _DnsEntries type {type(dns_data_raw)} value {dns_data_raw} {lineno()}") dns_data = [dns_data_tuple(**item) for item in dns_data_raw] - LOGGER.info(f"converted _DnsEntries to namdtuples {dns_data} {lineno()}") + LOGGER.debug(f"converted _DnsEntries to namdtuples {dns_data} {lineno()}") LOGGER.info( f"Found entries from DDB for DNS records: {str(dns_data)} {lineno()}") except Exception as err: @@ -887,8 +884,21 @@ def lambda_handler( LOGGER.info( f"flags=noreverse, 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. +# 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 +# so using existing tag data will not be valid + + if state != 'running': if not flags['noforward']: + heritage_records = {} + for entry in dns_data: + if entry.rr_type == 'TXT' and entry.rr_value.startswith('heritage='): + heritage_records[entry.rr_name] = entry.rr_value + for entry in dns_data: + if not (entry.rr_type == 'TXT' and entry.rr_value.startswith('heritage=')): + process_response = new_process_delete_records( + instance_id, entry.zone_id, entry.rr_name, entry.zone_name, entry.rr_type, entry.rr_value, heritage_records.get(entry.rr_name, '')) + # Process and delete A record and associated TXT record process_response = process_delete_records( route53, @@ -2734,6 +2744,12 @@ def publish_to_sns(client, message): LOGGER.debug("No SNS Topic specified, ignoring") +def new_process_delete_records(instance_id, zone_id, record_name, zone_name, record_type, record_value, heritage_value): + LOGGER.info( + f"new delete records: instance {instance_id}, zone_id {zone_id}, name {record_name} zone_name {zone_name} type {record_type} value {record_value} heritage {heritage_value}") + return + + def process_delete_records(route53, instance_id, zone_id, record_name, zone_name, record_type, record_value, heritage_value): """ @@ -2745,6 +2761,7 @@ def process_delete_records(route53, instance_id, zone_id, :param zone_name: :param record_type: :param record_value: + :param heritage_value: :return response: # dictionary of 'delete_success' and 'msg' """ diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index e9d4d11087f6ad5c2467378e188a77cbf3e52fad..d56b7a2276a7ea6a89fb5ebdf0478c54fdf289c5 100644 GIT binary patch delta 21901 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�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 Y550n`SpWe000NT_SuqCZSpWb404`U5=>Px# delta 21656 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