in aws-ec2-enclavecertificateiamroleassociation/src/main/java/software/amazon/ec2/enclavecertificateiamroleassociation/BaseHandlerStd.java [45:99]
protected abstract ProgressEvent<ResourceModel, CallbackContext> handleRequest(final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final ProxyClient<Ec2Client> proxyClient,
final Logger logger);
protected ProgressEvent<ResourceModel, CallbackContext> handleException(final Throwable e,
final Logger logger) {
logger.log(String.format("Error during operation: %s, Error message: %s",
this.getClass().getSimpleName(),
e.getMessage()));
logger.log(Arrays.toString(e.getStackTrace()));
if (e instanceof AwsServiceException) {
final String errorCode = ((AwsServiceException) e).awsErrorDetails().errorCode();
switch (errorCode) {
case ERROR_CODE_CERTIFICATE_TOO_MANY_ASSOCIATED_ROLES:
return ProgressEvent.defaultFailureHandler(new CfnServiceLimitExceededException(e),
HandlerErrorCode.ServiceLimitExceeded);
case ERROR_CODE_CERTIFICATE_ARN_MALFORMED:
case ERROR_CODE_CERTIFICATE_ARN_NOT_FOUND:
case ERROR_CODE_ROLE_ARN_MALFORMED:
case ERROR_CODE_ROLE_ARN_NOT_FOUND:
return ProgressEvent.defaultFailureHandler(new CfnInvalidRequestException(e),
HandlerErrorCode.InvalidRequest);
case ERROR_CODE_SERVER_INTERNAL:
return ProgressEvent.defaultFailureHandler(new CfnInternalFailureException(e),
HandlerErrorCode.InternalFailure);
case ERROR_CODE_SERVICE_UNAVAILABLE:
return ProgressEvent.defaultFailureHandler(new CfnServiceInternalErrorException(e),
HandlerErrorCode.ServiceInternalError);
case ERROR_CODE_UNAUTHORIZED_OPERATION:
return ProgressEvent.defaultFailureHandler(new CfnAccessDeniedException(e),
HandlerErrorCode.AccessDenied);
}
// For all the exceptions not captured by error code above
final int statusCode = ((AwsServiceException) e).statusCode();
if (statusCode >= 400 && statusCode < 500) {
return ProgressEvent.defaultFailureHandler(new CfnInvalidRequestException(e),
HandlerErrorCode.InvalidRequest);
} else if (statusCode >= 500 && statusCode < 600) {
return ProgressEvent.defaultFailureHandler(new CfnServiceInternalErrorException(e),
HandlerErrorCode.ServiceInternalError);
}
} else if (e instanceof CfnInvalidRequestException) {
return ProgressEvent.defaultFailureHandler(new CfnInvalidRequestException(e),
HandlerErrorCode.InvalidRequest);
}
return ProgressEvent.defaultFailureHandler(new CfnGeneralServiceException(e),
HandlerErrorCode.GeneralServiceException);
}