in aws-codeartifact-repository/src/main/java/software/amazon/codeartifact/repository/BaseHandlerStd.java [38:80]
protected abstract ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final ProxyClient<CodeartifactClient> proxyClient,
final Logger logger);
protected ProgressEvent<ResourceModel, CallbackContext> associateExternalConnections(
final ProgressEvent<ResourceModel, CallbackContext> progress,
final CallbackContext callbackContext,
final ResourceHandlerRequest<ResourceModel> request,
final ProxyClient<CodeartifactClient> proxyClient,
final Set<String> externalConnectionsToAdd,
final Logger logger
) {
ResourceModel resourceModel = request.getDesiredResourceState();
logger.log(String.format("Adding external connections: %s", externalConnectionsToAdd.toString()));
if (CollectionUtils.isNullOrEmpty(externalConnectionsToAdd)) {
logger.log("No external connections to add");
// Nothing to add, continue
return ProgressEvent.progress(resourceModel, callbackContext);
}
// Loop is currently not necessary because only 1 external connection is allowed, leaving this in for
// when multiple are supported
externalConnectionsToAdd.forEach(ec -> {
try {
AssociateExternalConnectionRequest associateExternalConnectionRequest
= Translator.translateAssociateExternalConnectionsRequest(resourceModel, ec);
proxyClient.injectCredentialsAndInvokeV2(associateExternalConnectionRequest, proxyClient.client()::associateExternalConnection);
} catch (final AwsServiceException e) {
String repositoryName = progress.getResourceModel().getRepositoryName();
Translator.throwCfnException(e, Constants.ASSOCIATE_EXTERNAL_CONNECTION, repositoryName);
}
logger.log(String.format("Successfully associated external connection: %s", ec));
});
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(resourceModel)
.status(OperationStatus.IN_PROGRESS)
.build();
}