in TerraformScripts/sc_terraform_wrapper/cfn_url_parser.py [0:0]
def seconds_until_expiry(response_url):
qs = parse_qs(response_url)
if 'Expires' in qs:
expire_time = qs['Expires'][0]
current_time = datetime.now(timezone.utc).timestamp()
return int(expire_time) - int(current_time) - RESERVED_RESPONSE_INTERVAL
elif 'X-Amz-Expires' in qs and 'X-Amz-Date' in qs:
amz_date_str = qs['X-Amz-Date'][0]
amz_date = dateutil.parser.parse(amz_date_str)
current_date = datetime.now(amz_date.tzinfo)
url_duration_seconds = int(qs['X-Amz-Expires'][0])
url_duration = timedelta(seconds=url_duration_seconds)
seconds_until_expiry = (amz_date + url_duration - current_date).total_seconds()
return int(seconds_until_expiry) - RESERVED_RESPONSE_INTERVAL
else:
raise Exception('Unexpected CloudFormation Response URL format')