in SecretsManagerRDSMariaDBRotationMultiUser/lambda_function.py [0:0]
def get_ssl_config(secret_dict):
"""Gets the desired SSL and fall back behavior using a secret dictionary
This helper function uses the existance and value the 'ssl' key in a secret dictionary
to determine desired SSL connectivity configuration. Its behavior is as follows:
- 'ssl' key DNE or invalid type/value: return True, True
- 'ssl' key is bool: return secret_dict['ssl'], False
- 'ssl' key equals "true" ignoring case: return True, False
- 'ssl' key equals "false" ignoring case: return False, False
Args:
secret_dict (dict): The Secret Dictionary
Returns:
Tuple(use_ssl, fall_back): SSL configuration
- use_ssl (bool): Flag indicating if an SSL connection should be attempted
- fall_back (bool): Flag indicating if non-SSL connection should be attempted if SSL connection fails
"""
# Default to True for SSL and fall_back mode if 'ssl' key DNE
if 'ssl' not in secret_dict:
return True, True
# Handle type bool
if isinstance(secret_dict['ssl'], bool):
return secret_dict['ssl'], False
# Handle type string
if isinstance(secret_dict['ssl'], str):
ssl = secret_dict['ssl'].lower()
if ssl == "true":
return True, False
elif ssl == "false":
return False, False
else:
# Invalid string value, default to True for both SSL and fall_back mode
return True, True
# Invalid type, default to True for both SSL and fall_back mode
return True, True