in aws-ssm-maintenancewindow/src/main/java/software/amazon/ssm/maintenancewindow/ReadHandler.java [42:89]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
logger.log(String.format("Processing ReadHandler request %s", request));
final ResourceModel model = request.getDesiredResourceState();
final ProgressEvent<ResourceModel, CallbackContext> progressEvent = new ProgressEvent<>();
progressEvent.setStatus(OperationStatus.FAILED);
final String windowId = model.getWindowId();
if (StringUtils.isNullOrEmpty(windowId)) {
progressEvent.setErrorCode(HandlerErrorCode.InvalidRequest);
progressEvent.setMessage("WindowId must be present to read the existing maintenance window.");
return progressEvent;
}
final GetMaintenanceWindowRequest getMaintenanceWindowRequest =
GetMaintenanceWindowRequest.builder()
.windowId(windowId)
.build();
try {
final GetMaintenanceWindowResponse response =
proxy.injectCredentialsAndInvokeV2(getMaintenanceWindowRequest, SSM_CLIENT::getMaintenanceWindow);
final ResourceModel resourcemodel =
getMaintenanceWindowTranslator.getMaintenanceWindowResponseToResourceModel(response);
progressEvent.setResourceModel(resourcemodel);
progressEvent.setStatus(OperationStatus.SUCCESS);
} catch (final Exception e) {
final BaseHandlerException cfnException = exceptionTranslator
.translateFromServiceException(e, getMaintenanceWindowRequest);
logger.log(cfnException.getCause().getMessage());
throw cfnException;
}
return progressEvent;
}