in aws-batch-schedulingpolicy/src/main/java/software/amazon/batch/schedulingpolicy/CreateHandler.java [31:76]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
logger.log("Create handler for SchedulingPolicy invoked.");
if (this.client == null) {
this.client = ClientBuilder.getClient();
}
final ResourceModel model = request.getDesiredResourceState();
if (model.getName() == null) {
model.setName(generateParameterName(
request.getLogicalResourceIdentifier(),
request.getClientRequestToken()
));
}
logger.log("SchedulingPolicy model for create request: " + model.toString());
Map<String, String> tags = new HashMap<>();
if (model.getTags() != null && !model.getTags().isEmpty()) {
tags = model.getTags();
}
if (request.getDesiredResourceTags() != null && !request.getDesiredResourceTags().isEmpty()) {
tags.putAll(request.getDesiredResourceTags());
}
logger.log("Tags to add for" + model.getArn() + " are : " + tags);
try {
CreateSchedulingPolicyResponse createSchedulingPolicyResponse =
proxy.injectCredentialsAndInvokeV2(
Translator.toCreateSchedulingPolicyRequest(model, tags),
this.client::createSchedulingPolicy);
logger.log(String.format("%s [%s] created successfully", ResourceModel.TYPE_NAME, model.getName()));
model.setArn(createSchedulingPolicyResponse.arn());
logger.log("Create scheduling policy handler final result: " + createSchedulingPolicyResponse.toString());
} catch (final BatchException e) {
Exceptions.handleBatchExceptions(request, callbackContext, e);
}
return ProgressEvent.defaultSuccessHandler(model);
}