From 4dc8b710562c4909aec27696a9141e1ae189f640 Mon Sep 17 00:00:00 2001 From: badra001 Date: Mon, 18 Apr 2022 16:43:45 -0400 Subject: [PATCH] 1. created a new def process_delete_record function to combine "repeating" tasks between A, PTR, and CNAME process. The code was combined with what was there before. Instead of doing the same process over 3 times, I just created a function and call it 3 times. 1. The def process_delete_record function performs: 1. checks TXT heritage validation (do I own it? does the instance ID match?) 1. Also sends SNS notification if heritage validation fails. 1. If not not pass validation, it skips deletion and sns notify 1. If so, it deletes the records - (A, PTR, or CNAME and associated TXT) 1. Fixed LOGGER.info lines that had a typo (missing parameter) in the sns notification caller. Example line 2274 but several others. 1. Fixed lOGGER.info to convert MAX_API_RETRY to string when writing to log. Example line 2264 but several others. 1. Updated new_get_resource_record with several fixes. 1. Return "" instead of Non if not found -- better align with parent function that calls it. 1. Checks the value of the list_resource_record_sets to match what should be returned. This is because the list_resource_record_sets API returns the next record (instead of matching exact) so wrong record can be retrieved if we do not check it. 1. MaxItem value changed to string. 1. Fixed def parse_heritage to add more logging and better input validation 1. Fixed def get_heritage_item to check input type and add more logging --- CHANGELOG.md | 17 +++++++++++++++++ code/ddns-lambda.zip | Bin 16899 -> 17797 bytes version.tf | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4eadfe..609b806 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,3 +84,20 @@ * 0.2.7 -- 2022-04-12 - code 0.2.3 - added heritage functions + +* 0.3.0 -- 2022-04-18 + - code 0.3.0 + 1. created a new def process_delete_record function to combine "repeating" tasks between A, PTR, and CNAME process. The code was combined with what was there before. Instead of doing the same process over 3 times, I just created a function and call it 3 times. + 1. The def process_delete_record function performs: + 1. checks TXT heritage validation (do I own it? does the instance ID match?) + 1. Also sends SNS notification if heritage validation fails. + 1. If not not pass validation, it skips deletion and sns notify + 1. If so, it deletes the records - (A, PTR, or CNAME and associated TXT) + 1. Fixed LOGGER.info lines that had a typo (missing parameter) in the sns notification caller. Example line 2274 but several others. + 1. Fixed lOGGER.info to convert MAX_API_RETRY to string when writing to log. Example line 2264 but several others. + 1. Updated new_get_resource_record with several fixes. + 1. Return "" instead of Non if not found -- better align with parent function that calls it. + 1. Checks the value of the list_resource_record_sets to match what should be returned. This is because the list_resource_record_sets API returns the next record (instead of matching exact) so wrong record can be retrieved if we do not check it. + 1. MaxItem value changed to string. + 1. Fixed def parse_heritage to add more logging and better input validation + 1. Fixed def get_heritage_item to check input type and add more logging diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index ed3d2401ecc13e3401e45ffee01e4e7d43bff077..d151f81c08016be0aa606ba0033df551440c36be 100644 GIT binary patch literal 17797 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 literal 16899 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 Y4rvJRW@Q7ZW(2|zAUzX!)B^(p0G2b;P5=M^ diff --git a/version.tf b/version.tf index 3a112aa..24aa9b2 100644 --- a/version.tf +++ b/version.tf @@ -1,3 +1,3 @@ locals { - _module_version = "0.2.7" + _module_version = "0.3.0" }