in src/mount_efs/__init__.py [0:0]
def get_az_id_by_az_name_helper(ec2_client, az_name, dryrun=False):
operation = "DescribeAvailabilityZones"
kwargs = {"ZoneNames": [az_name]}
if dryrun:
kwargs["DryRun"] = True
try:
az_info = ec2_describe_availability_zones_helper(ec2_client, kwargs)
logging.debug("Found the az information for %s: %s", az_name, az_info)
return az_info
except ClientError as e:
exception = e.response["Error"]["Code"]
exception_message = e.response["Error"]["Message"]
if exception == "DryRunOperation":
logging.debug("Describe availability zones dryrun succeed.")
return
elif exception == "UnauthorizedOperation":
fallback_message = "Unauthorized to perform operation %s." % operation
elif exception == "InvalidParameterValue":
fallback_message = "Invalid availability zone %s" % az_name
elif exception == "ServiceUnavailableException":
fallback_message = (
"The ec2 service cannot complete the request, %s" % exception_message
)
elif exception == "AccessDeniedException":
fallback_message = exception_message
else:
fallback_message = "Unexpected error: %s" % exception_message
except NoCredentialsError as e:
fallback_message = (
"%s when performing operation %s, please confirm your aws credentials are properly configured."
% (e, operation)
)
except EndpointConnectionError as e:
fallback_message = (
"Could not connect to the endpoint when performing operation %s, %s"
% (operation, e)
)
except Exception as e:
fallback_message = "Unknown error when performing operation %s, %s." % (
operation,
e,
)
raise FallbackException(fallback_message)