private RestResponse<?> doDeploy(DeployApplicationRequest deployApplicationRequest, Application application, ApplicationEnvironment environment,
Topology topology) {
DeploymentTopologyDTO deploymentTopologyDTO = deploymentTopologyDTOBuilder.prepareDeployment(topology, application, environment);
TopologyValidationResult validation = deploymentTopologyDTO.getValidation();
if (!validation.isValid()) {
return RestResponseBuilder.<TopologyValidationResult> builder()
.error(new RestError(RestErrorCode.INVALID_DEPLOYMENT_TOPOLOGY.getCode(), "The deployment topology for the application <"
+ application.getName() + "> on the environment <" + environment.getName() + "> is not valid."))
.data(validation).build();
}
User deployer = AuthorizationUtil.getCurrentUser();
GitLocation location = gitLocationDao.findDeploymentSetupLocation(application.getId(), environment.getId());
localGitManager.commitAndPush(location, deployer.getUsername(), deployer.getEmail(), "Deployment " + DateTime.now(DateTimeZone.UTC));
SecretProviderCredentials secretProviderCredentials = null;
if (deployApplicationRequest.getSecretProviderCredentials() != null && deployApplicationRequest.getSecretProviderPluginName() != null) {
secretProviderCredentials = new SecretProviderCredentials();
secretProviderCredentials.setCredentials(deployApplicationRequest.getSecretProviderCredentials());
secretProviderCredentials.setPluginName(deployApplicationRequest.getSecretProviderPluginName());
}
deployService.deploy(deployer, secretProviderCredentials, deploymentTopologyDTO.getTopology(), application);
return RestResponseBuilder.<Void> builder().build();
}