Skip to content

Commit

Permalink
Link service template ID and the DeployedService data.
Browse files Browse the repository at this point in the history
  • Loading branch information
Alice1319 committed Feb 20, 2024
1 parent a9be3d0 commit 3f848ae
Show file tree
Hide file tree
Showing 23 changed files with 197 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ public class DeployServiceEntity extends CreateModifiedTime {
@Enumerated(EnumType.STRING)
private ServiceState serviceState = ServiceState.NOT_RUNNING;

/**
* The id of the Service Template.
*/
private UUID serviceTemplateId;

/**
* The Ocl object of the XpanseDeployTask.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.xpanse.modules.database.resource.DeployResourceEntity;
import org.eclipse.xpanse.modules.database.service.DeployServiceEntity;
Expand Down Expand Up @@ -70,6 +71,9 @@ public static DeployedServiceDetails transDeployServiceEntityToServiceDetailVo(
deployedServiceDetails.setDeployedServiceProperties(
deployServiceEntity.getProperties());
}
if (Objects.nonNull(deployServiceEntity.getServiceTemplateId())) {
deployedServiceDetails.setServiceTemplateId(deployServiceEntity.getServiceTemplateId());
}
return deployedServiceDetails;
}

Expand All @@ -91,6 +95,10 @@ public static DeployedServiceDetails transDeployServiceEntityToServiceDetailVo(
vendorHostedDeployedServiceDetails.setDeployedServiceProperties(
deployServiceEntity.getProperties());
}
if (Objects.nonNull(deployServiceEntity.getServiceTemplateId())) {
vendorHostedDeployedServiceDetails.setServiceTemplateId(
deployServiceEntity.getServiceTemplateId());
}
return vendorHostedDeployedServiceDetails;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ class DeployServiceEntityTest {
private final String FLAVOR = "1-zookeeper-with-3-worker-nodes-normal";
private final ServiceDeploymentState SERVICE_STATE = ServiceDeploymentState.DEPLOYING;
private final ServiceState SERVICE_RUN_STATE = ServiceState.NOT_RUNNING;
private final UUID SERVICE_TEMPLATE_ID =
UUID.fromString("eef27308-92d6-4c7a-866b-a58966b94f3d");
private final DeployRequest CREATE_REQUEST = new DeployRequest();
private final List<DeployResourceEntity> DEPLOY_RESOURCE_LIST = new ArrayList<>();
private final Map<String, String> PROPERTIES = new HashMap<>();
Expand All @@ -60,6 +62,7 @@ void setUp() {
test.setFlavor(FLAVOR);
test.setServiceDeploymentState(SERVICE_STATE);
test.setServiceState(SERVICE_RUN_STATE);
test.setServiceTemplateId(SERVICE_TEMPLATE_ID);
test.setDeployRequest(CREATE_REQUEST);
test.setDeployResourceList(DEPLOY_RESOURCE_LIST);
test.setProperties(PROPERTIES);
Expand All @@ -83,6 +86,7 @@ void testToString() {
+ "flavor=" + FLAVOR + ", "
+ "serviceDeploymentState=" + SERVICE_STATE + ", "
+ "serviceState=" + SERVICE_RUN_STATE + ", "
+ "serviceTemplateId=" + SERVICE_TEMPLATE_ID + ", "
+ "deployRequest=" + CREATE_REQUEST + ", "
//+ "deployResourceList=" + DEPLOY_RESOURCE_LIST+ ", "
+ "properties=" + PROPERTIES + ", "
Expand Down Expand Up @@ -183,6 +187,13 @@ void testEqualsAndHashCode() {
Assertions.assertNotEquals(test.hashCode(), test1.hashCode());
Assertions.assertNotEquals(test1.hashCode(), test2.hashCode());

test1.setServiceTemplateId(SERVICE_TEMPLATE_ID);
Assertions.assertNotEquals(test, test1);
Assertions.assertNotEquals(test, test2);
Assertions.assertNotEquals(test1, test2);
Assertions.assertNotEquals(test.hashCode(), test1.hashCode());
Assertions.assertNotEquals(test1.hashCode(), test2.hashCode());

test1.setDeployRequest(CREATE_REQUEST);
Assertions.assertNotEquals(test, test1);
Assertions.assertNotEquals(test, test2);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,14 @@ public DeployTask createNewDeployTask(DeployRequest deployRequest) {
// Create new deploy task by deploy request.
DeployTask deployTask = new DeployTask();
deployTask.setId(UUID.randomUUID());
deployRequest.setOcl(serviceTemplate.getOcl());
deployTask.setDeployRequest(deployRequest);
deployTask.setNamespace(serviceTemplate.getNamespace());
deployTask.setOcl(serviceTemplate.getOcl());
deployTask.setServiceTemplateId(serviceTemplate.getId());
if (Objects.nonNull(serviceTemplate.getId())) {
deployTask.setServiceTemplateId(serviceTemplate.getId());
} else {
throw new ServiceTemplateNotRegistered("service template id can't be null.");
}
return deployTask;
}

Expand Down Expand Up @@ -134,6 +137,11 @@ private DeployServiceEntity storeNewDeployServiceEntity(DeployTask deployTask) {
entity.setDeployResourceList(new ArrayList<>());
entity.setNamespace(deployTask.getNamespace());
entity.setServiceDeploymentState(ServiceDeploymentState.DEPLOYING);
if (Objects.nonNull(deployTask.getServiceTemplateId())) {
entity.setServiceTemplateId(deployTask.getServiceTemplateId());
} else {
throw new ServiceTemplateNotRegistered("service template id can't be null.");
}
DeployServiceEntity storedEntity = deployServiceEntityHandler.storeAndFlush(entity);
if (Objects.isNull(storedEntity)) {
log.error("Store new deploy service entity with id:{} failed.", deployTask.getId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@

package org.eclipse.xpanse.modules.deployment;

import jakarta.annotation.Resource;
import org.eclipse.xpanse.modules.database.service.DeployServiceEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateStorage;
import org.eclipse.xpanse.modules.orchestrator.deployment.DeployTask;
import org.springframework.stereotype.Component;

Expand All @@ -17,6 +20,9 @@
@Component
public class DeployServiceEntityToDeployTaskConverter {

@Resource
private ServiceTemplateStorage serviceTemplateStorage;

/**
* Method to create a DeployTask from DeployServiceEntity.
*
Expand All @@ -28,7 +34,9 @@ public DeployTask getDeployTaskByStoredService(DeployServiceEntity deployService
DeployTask deployTask = new DeployTask();
deployTask.setId(deployServiceEntity.getId());
deployTask.setDeployRequest(deployServiceEntity.getDeployRequest());
deployTask.setOcl(deployServiceEntity.getDeployRequest().getOcl());
ServiceTemplateEntity serviceTemplateEntity = serviceTemplateStorage.getServiceTemplateById(
deployServiceEntity.getServiceTemplateId());
deployTask.setOcl(serviceTemplateEntity.getOcl());
return deployTask;

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import lombok.extern.slf4j.Slf4j;
import org.eclipse.xpanse.modules.database.service.DeployServiceEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateStorage;
import org.eclipse.xpanse.modules.models.servicetemplate.DeployVariable;
import org.eclipse.xpanse.modules.models.servicetemplate.enums.SensitiveScope;
import org.eclipse.xpanse.modules.security.common.AesUtil;
Expand All @@ -28,6 +29,9 @@ public class SensitiveDataHandler {
@Resource
private AesUtil aesUtil;

@Resource
private ServiceTemplateStorage serviceTemplateStorage;

/**
* Method to mask all sensitive data after deployment is completed.
*
Expand All @@ -36,8 +40,11 @@ public class SensitiveDataHandler {
public void maskSensitiveFields(DeployServiceEntity deployServiceEntity) {
log.debug("masking sensitive input data after deployment");
if (Objects.nonNull(deployServiceEntity.getDeployRequest().getServiceRequestProperties())) {
ServiceTemplateEntity serviceTemplateEntity =
serviceTemplateStorage.getServiceTemplateById(
deployServiceEntity.getServiceTemplateId());
for (DeployVariable deployVariable
: deployServiceEntity.getDeployRequest().getOcl().getDeployment()
: serviceTemplateEntity.getOcl().getDeployment()
.getVariables()) {
if (deployVariable.getSensitiveScope() != SensitiveScope.NONE
&& (deployServiceEntity.getDeployRequest().getServiceRequestProperties()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@ private DeployedService convertToDeployedService(DeployServiceEntity serviceEnti
BeanUtils.copyProperties(serviceEntity, deployedService);
deployedService.setServiceHostingType(
serviceEntity.getDeployRequest().getServiceHostingType());
if (Objects.nonNull(serviceEntity.getServiceTemplateId())) {
deployedService.setServiceTemplateId(serviceEntity.getServiceTemplateId());
}
return deployedService;
}
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import org.apache.commons.lang3.StringUtils;
import org.eclipse.xpanse.modules.database.service.DeployServiceEntity;
import org.eclipse.xpanse.modules.database.servicemigration.ServiceMigrationEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateStorage;
import org.eclipse.xpanse.modules.deployment.DeployResultManager;
import org.eclipse.xpanse.modules.deployment.DeployService;
import org.eclipse.xpanse.modules.deployment.DeployServiceEntityHandler;
Expand Down Expand Up @@ -57,6 +59,9 @@ public class OpenTofuDeploymentResultCallbackManager {
@Resource
private WorkflowUtils workflowUtils;

@Resource
private ServiceTemplateStorage serviceTemplateStorage;

/**
* Callback method after deployment is complete.
*/
Expand All @@ -68,8 +73,11 @@ public void deployCallback(UUID taskId, OpenTofuResult result) {
DeployResult deployResult = handlerCallbackOpenTofuResult(result);
deployResult.setId(taskId);
if (StringUtils.isNotBlank(result.getTerraformState())) {
ServiceTemplateEntity serviceTemplateEntity =
serviceTemplateStorage.getServiceTemplateById(
deployServiceEntity.getServiceTemplateId());
resourceHandlerManager.getResourceHandler(deployServiceEntity.getCsp(),
deployServiceEntity.getDeployRequest().getOcl()
serviceTemplateEntity.getOcl()
.getDeployment().getKind()).handler(deployResult);
}
DeployServiceEntity updatedDeployServiceEntity =
Expand Down Expand Up @@ -102,8 +110,11 @@ public void destroyCallback(UUID taskId, OpenTofuResult result) {
DeployResult destroyResult = handlerCallbackOpenTofuResult(result);
destroyResult.setId(taskId);
if (StringUtils.isNotBlank(result.getTerraformState())) {
ServiceTemplateEntity serviceTemplateEntity =
serviceTemplateStorage.getServiceTemplateById(
deployServiceEntity.getServiceTemplateId());
resourceHandlerManager.getResourceHandler(deployServiceEntity.getCsp(),
deployServiceEntity.getDeployRequest().getOcl()
serviceTemplateEntity.getOcl()
.getDeployment().getKind()).handler(destroyResult);
}
deployResultManager.updateDeployServiceEntityWithDeployResult(destroyResult,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import org.apache.commons.lang3.StringUtils;
import org.eclipse.xpanse.modules.database.service.DeployServiceEntity;
import org.eclipse.xpanse.modules.database.servicemigration.ServiceMigrationEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateStorage;
import org.eclipse.xpanse.modules.deployment.DeployResultManager;
import org.eclipse.xpanse.modules.deployment.DeployService;
import org.eclipse.xpanse.modules.deployment.DeployServiceEntityHandler;
Expand Down Expand Up @@ -56,6 +58,9 @@ public class TerraformDeploymentResultCallbackManager {
@Resource
private WorkflowUtils workflowUtils;

@Resource
private ServiceTemplateStorage serviceTemplateStorage;

/**
* Callback method after deployment is complete.
*/
Expand All @@ -67,8 +72,11 @@ public void deployCallback(UUID taskId, TerraformResult result) {
DeployResult deployResult = handlerCallbackTerraformResult(result);
deployResult.setId(taskId);
if (StringUtils.isNotBlank(result.getTerraformState())) {
ServiceTemplateEntity serviceTemplateEntity =
serviceTemplateStorage.getServiceTemplateById(
deployServiceEntity.getServiceTemplateId());
resourceHandlerManager.getResourceHandler(deployServiceEntity.getCsp(),
deployServiceEntity.getDeployRequest().getOcl()
serviceTemplateEntity.getOcl()
.getDeployment().getKind()).handler(deployResult);
}
DeployServiceEntity updatedDeployServiceEntity =
Expand Down Expand Up @@ -101,8 +109,11 @@ public void destroyCallback(UUID taskId, TerraformResult result) {
DeployResult destroyResult = handlerCallbackTerraformResult(result);
destroyResult.setId(taskId);
if (StringUtils.isNotBlank(result.getTerraformState())) {
ServiceTemplateEntity serviceTemplateEntity =
serviceTemplateStorage.getServiceTemplateById(
deployServiceEntity.getServiceTemplateId());
resourceHandlerManager.getResourceHandler(deployServiceEntity.getCsp(),
deployServiceEntity.getDeployRequest().getOcl()
serviceTemplateEntity.getOcl()
.getDeployment().getKind()).handler(destroyResult);
}
deployResultManager.updateDeployServiceEntityWithDeployResult(destroyResult,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ void setUp() throws Exception {
ocl = oclLoader.getOcl(URI.create("file:src/test/resources/opentofu_test.yaml").toURL());

deployRequest = new DeployRequest();
deployRequest.setOcl(ocl);
deployRequest.setServiceName(ocl.getName());
deployRequest.setVersion(ocl.getServiceVersion());
deployRequest.setFlavor(ocl.getFlavors().getFirst().getName());
Expand Down Expand Up @@ -214,7 +213,6 @@ void testGetDeployerKind() {
@Test
void testGetDeployPlanAsJson() {
DeployRequest deployRequest = new DeployRequest();
deployRequest.setOcl(ocl);
deployRequest.setServiceName(ocl.getName());
deployRequest.setVersion(ocl.getServiceVersion());
deployRequest.setFlavor(ocl.getFlavors().getFirst().getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ void setUp() throws Exception {
ocl = oclLoader.getOcl(URI.create("file:src/test/resources/opentofu_test.yaml").toURL());

DeployRequest deployRequest = new DeployRequest();
deployRequest.setOcl(ocl);
deployRequest.setServiceName(ocl.getName());
deployRequest.setVersion(ocl.getServiceVersion());
deployRequest.setFlavor(ocl.getFlavors().getFirst().getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ void setUp() throws Exception {
ocl = oclLoader.getOcl(URI.create("file:src/test/resources/terraform_test.yaml").toURL());

DeployRequest deployRequest = new DeployRequest();
deployRequest.setOcl(ocl);
deployRequest.setServiceName(ocl.getName());
deployRequest.setVersion(ocl.getServiceVersion());
deployRequest.setFlavor(ocl.getFlavors().getFirst().getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ void setUp() throws Exception {
ocl = oclLoader.getOcl(URI.create("file:src/test/resources/terraform_test.yaml").toURL());

deployRequest = new DeployRequest();
deployRequest.setOcl(ocl);
deployRequest.setServiceName(ocl.getName());
deployRequest.setVersion(ocl.getServiceVersion());
deployRequest.setFlavor(ocl.getFlavors().getFirst().getName());
Expand Down Expand Up @@ -219,7 +218,6 @@ void testGetDeployerKind() {
@Test
void testGetDeployPlanAsJson() {
DeployRequest deployRequest = new DeployRequest();
deployRequest.setOcl(ocl);
deployRequest.setServiceName(ocl.getName());
deployRequest.setVersion(ocl.getServiceVersion());
deployRequest.setFlavor(ocl.getFlavors().getFirst().getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import lombok.Data;
import org.eclipse.xpanse.modules.models.common.enums.Category;
import org.eclipse.xpanse.modules.models.common.enums.Csp;
import org.eclipse.xpanse.modules.models.servicetemplate.Ocl;
import org.eclipse.xpanse.modules.models.servicetemplate.enums.ServiceHostingType;

/**
Expand Down Expand Up @@ -89,9 +88,6 @@ public class DeployRequestBase implements Serializable {
+ "for deploying cloud resources.")
private ServiceHostingType serviceHostingType;

@Hidden
private Ocl ocl;

/**
* The property of the Service.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@ public class DeployedService {
@Schema(description = "The flavor of the service")
private String flavor;

/**
* The id of the Service Template.
*/
@Schema(description = "The id of the Service Template")
private UUID serviceTemplateId;

/**
* The state of the Service.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class DeployRequestTest {
private static final String region = "us-east-1";
private static final Csp csp = Csp.AWS;
private static final String flavor = "flavor";
private static final Ocl ocl = new Ocl();
private static final Map<String, Object> properties = Collections.singletonMap("key", "value");
private static DeployRequest request;

Expand All @@ -49,7 +48,6 @@ void setUp() {
request.setRegion(region);
request.setCsp(csp);
request.setFlavor(flavor);
request.setOcl(ocl);
request.setServiceRequestProperties(properties);
}

Expand All @@ -64,7 +62,6 @@ void testGetterAndSetter() {
assertEquals(region, request.getRegion());
assertEquals(csp, request.getCsp());
assertEquals(flavor, request.getFlavor());
assertEquals(ocl, request.getOcl());
assertEquals(properties, request.getServiceRequestProperties());
}

Expand Down Expand Up @@ -141,7 +138,6 @@ void testEqualsAndHashCode() {
assertNotEquals(request.hashCode(), request1.hashCode());
assertNotEquals(request1.hashCode(), request2.hashCode());

request1.setOcl(ocl);
assertNotEquals(request, request1);
assertNotEquals(request1, request2);
assertNotEquals(request.hashCode(), request1.hashCode());
Expand All @@ -166,7 +162,6 @@ void testToString() {
request.setRegion(region);
request.setCsp(csp);
request.setFlavor(flavor);
request.setOcl(ocl);
request.setServiceHostingType(ServiceHostingType.SERVICE_VENDOR);
request.setServiceRequestProperties(properties);

Expand All @@ -180,7 +175,6 @@ void testToString() {
", csp=" + csp +
", flavor=" + flavor +
", serviceHostingType=" + ServiceHostingType.SERVICE_VENDOR +
", ocl=" + ocl +
", serviceRequestProperties=" + properties +
"), id=" + id + ")";
assertEquals(expectedToString, request.toString());
Expand Down

0 comments on commit 3f848ae

Please sign in to comment.