From 86dac12535009f78d74cf2251b8c30532987bae7 Mon Sep 17 00:00:00 2001 From: badra001 Date: Tue, 25 Apr 2023 19:49:16 -0400 Subject: [PATCH] fix --- code/ddns-lambda.py | 103 ++++++++++++++++++++++--------------------- code/ddns-lambda.zip | Bin 21311 -> 21353 bytes 2 files changed, 53 insertions(+), 50 deletions(-) diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index 8fdf5ae..d8a3cb2 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.0b46' +VERSION = '1.2.0b48' # Read Env variables DEBUG_LOG_LEVEL = os.environ.get('DebugLogLevel', 'INFO') @@ -459,7 +459,7 @@ def lambda_handler( vpc_id = instance['Reservations'][0]['Instances'][0]['VpcId'] # Are DNS Hostnames and DNS Support enabled? - if is_dns_hostnames_enabled(compute, instance_id, vpc_id): + fif is_dns_hostnames_enabled(compute, instance_id, vpc_id): LOGGER.debug("DNS hostnames enabled for %s", str(vpc_id) + lineno()) else: LOGGER.error( @@ -626,54 +626,56 @@ def lambda_handler( tag_data['name'] = tag_data_tuple(*process_tags_name(tags)) LOGGER.debug("New tag_data structure: %s", str(pformat(tag_data)) + lineno()) - if tag_data['option_name'].valid and tag_data['option_zone'].valid: - LOGGER.info("instance: %s, using custom hostname tag %s and custom zone tag %s.", - instance_id, tag_data['option_name'].hostname, tag_data['option_zone'].zonename) - f_hostname = tag_data['option_name'].hostname - f_zonename = tag_data['option_zone'].zonename - - elif tag_data['option_name'].valid and not tag_data['option_zone'].valid and tag_data['dhcp_options'].valid: - LOGGER.info("instance: %s, using custom hostname %s and not custom zone %s (not-valid) and dhcp_options zone %s.", - instance_id, tag_data['option_name'].hostname, tag_data['option_zone'].zonename, tag_data['dhcp_options'].zonename) - f_hostname = tag_data['option_name'].hostname - f_zonename = tag_data['dhcp_options'].zonename - - elif tag_data['name'].valid and tag_data['option_zone'].valid: - LOGGER.info("instance: %s, using hostname %s from Name and custom zone %s.", - instance_id, tag_data['name'].hostname, tag_data['option_zone'].zonename) - f_hostname = tag_data['name'].hostname - f_zonename = tag_data['option_zone'].zonename - - elif tag_data['name'].valid: - LOGGER.info("instance: %s, using hostname %s and zone %s from Name tag.", - instance_id, tag_data['name'].hostname, tag_data['name'].zonename) - f_hostname = tag_data['name'].hostname - f_zonename = tag_data['name'].zonename - - elif tag_data['name'].valid and tag_data['dhcp_options'].valid: - LOGGER.info("instance: %s, using hostname %s and dhcp_options zone %s.", - instance_id, tag_data['name'].hostname, tag_data['dhcp_options'].zonename) - f_hostname = tag_data['name'].hostname - f_zonename = tag_data['dhcp_options'].zonename - - elif tag_data['option_zone'].valid and not tag_data['option_name'].valid and not tag_data['name'].valid: - LOGGER.info("instance: %s, not using hostname %s or %s, using custom zone %s, using ip-address %s for hostname.", - instance_id, tag_data['option_name'].hostname, tag_data['name'].hostname, tag_data['option_zone'].zonename, private_ip) - f_hostname = '-'.join(['ip'] + private_ip.split('.')) - f_zonename = tag_data['option_zone'].zonename - - elif tag_data['dhcp_options'].valid: - LOGGER.info("instance: %s, using ip-address %s for hostname and zone %s.", - instance_id, private_ip, tag_data['dhcp_options'].zonename) - f_hostname = '-'.join(['ip'] + private_ip.split('.')) - f_zonename = tag_data['dhcp_options'].zonename + default_hostname = '-'.join(['ip'] + private_ip.split('.')) + if tag_data['option_zone'].valid: + if tag_data['option_name'].valid: + LOGGER.info("instance: %s, using tag_option hostname tag %s and tag_option zone tag %s.", + instance_id, tag_data['option_name'].hostname, tag_data['option_zone'].zonename) + f_hostname = tag_data['option_name'].hostname + f_zonename = tag_data['option_zone'].zonename + elif tag_data['name'].valid: + LOGGER.info("instance: %s, using tag_key Name hostname tag %s and tag_option zone tag %s.", + instance_id, tag_data['name'].hostname, tag_data['option_zone'].zonename) + f_hostname = tag_data['name'].hostname + f_zonename = tag_data['option_zone'].zonename + else: + LOGGER.info("instance: %s, using default ip-address %s for hostname and tag_option zone %s.", + instance_id, default_hostname, tag_data['option_zone'].zonename) + f_hostname = default_hostname + f_zonename = tag_data['option_zone'].zonename else: - LOGGER.error( - "instance: %s, No DHCP Associated for VPC and no custom tags. Exiting Script", instance_id) - caller_response.append( - 'No DHCP Associated for VPC and no custom tags. Exiting Script') - return caller_response + if tag_data['option_name'].valid: + LOGGER.info("instance: %s, using tag_option hostname %s and and tag_option zone %s.", + instance_id, tag_data['option_name'].hostname, tag_data['option_name'].zonename) + f_hostname = tag_data['option_name'].hostname + f_zonename = tag_data['option_name'].zonename + if not tag_data['option_name'].valid and tag_data['option_name'].hostname != '' and tag_data['dhcp_options'].valid: + LOGGER.info("instance: %s, using tag_option hostname %s and and dhcp_options zone %s.", + instance_id, tag_data['option_name'].hostname, tag_data['dhcp_options'].zonename) + f_hostname = tag_data['option_name'].hostname + f_zonename = tag_data['dhcp_options'].zonename + elif tag_data['name'].valid: + LOGGER.info("instance: %s, using tag_key Name hostname %s and tag_key Name zone %s.", + instance_id, tag_data['name'].hostname, tag_data['name'].zonename) + f_hostname = tag_data['name'].hostname + f_zonename = tag_data['name'].zonename + elif not tag_data['name'].valid and tag_data['dhcp_options'].valid: + LOGGER.info("instance: %s, using default ip-addresss hostname %s and dhcp_options zone %s.", + instance_id, default_hostname, tag_data['dhcp_options'].zonename) + f_hostname = default_hostname + f_zonename = tag_data['dhcp_options'].zonename +# elif not tag_data['name'].valid and not tag_data['dhcp_options'].valid: + else: + LOGGER.info("instance: %s, no valid hostname or zone found", instance_id) + f_hostname = None + f_zonename = None + LOGGER.error( + "instance: %s, No DHCP Associated for VPC and no custom tags. Exiting Script", instance_id) + caller_response.append( + 'No DHCP Associated for VPC and no custom tags. Exiting Script') + return caller_response +# note this will not continue and set a cname final_private_hostname = f_hostname final_hosted_zone_name = f_zonename @@ -2917,7 +2919,7 @@ def process_tags_flags(tags): def process_tags_value(name): """ - Process the name from one of the tags and return vald (true|false), hosname, domainname, if the domainname exists in a PHZ + Process the name from one of the tags and return vald (true|false), hostname, domainname, if the domainname exists in a PHZ :param str: name (hostname or domainname) to check :return tuple(bool,str,str): true|false if vaid, hostname, domainname @@ -3043,7 +3045,8 @@ def parse_hostname_to_components(name): domain = '.'.join(names[i:]) + '.' if phz_collection_by_vpc.get(domain): return (host, domain) - LOGGER.error('No PHZ found for any domain components of %s: %s', name, str(lineno)) + LOGGER.error( + f"No PHZ found for any domain components of {name} associated with this vpc: {lineno()}") return None diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index 26db47257124f41b787e4090016802a21bc64608..1d1504f0dcf1ad9461386f7a6e0fa79b1a3ddd05 100644 GIT binary patch delta 21308 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 DXji3z delta 21228 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 z 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 bA&SEZBy-8JQUCy0<&!Z}G6wBZ00000nguna