Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/generate UUID #2470

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.eclipse.xpanse.modules.deployment.ServiceDeploymentEntityHandler;
import org.eclipse.xpanse.modules.deployment.ServiceOrderManager;
import org.eclipse.xpanse.modules.deployment.serviceporting.consts.ServicePortingConstants;
import org.eclipse.xpanse.modules.logging.CustomRequestIdGenerator;
import org.eclipse.xpanse.modules.models.common.enums.UserOperation;
import org.eclipse.xpanse.modules.models.service.deployment.exceptions.BillingModeNotSupported;
import org.eclipse.xpanse.modules.models.service.deployment.exceptions.ServiceLockedException;
Expand Down Expand Up @@ -106,13 +105,19 @@ public ServiceOrder port(@Valid @RequestBody ServicePortingRequest servicePortin
ServiceOrderEntity servicePortingOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(
servicePortingTask, deployServiceEntity, Handler.WORKFLOW);
servicePortingTask.setOrderId(servicePortingOrderEntity.getOrderId());
Map<String, Object> variables = getServicePortingProcessVariables(servicePortingTask);
ProcessInstance instance =
workflowUtils.startProcessWithVariables(
ServicePortingConstants.PROCESS_KEY, variables);
servicePortingOrderEntity.setWorkflowId(instance.getProcessInstanceId());
serviceOrderManager.startOrderProgress(servicePortingOrderEntity);
return new ServiceOrder(servicePortingTask.getOrderId(), servicePortingTask.getServiceId());
UUID serviceId =
(UUID)
workflowUtils
.getVariablesByProcessInstanceId(instance.getProcessInstanceId())
.get(ServicePortingConstants.NEW_SERVICE_ID);
return new ServiceOrder(servicePortingTask.getOrderId(), serviceId);
}

private void validateData(ServicePortingRequest servicePortingRequest) {
Expand Down Expand Up @@ -155,9 +160,7 @@ private void validateData(ServicePortingRequest servicePortingRequest) {

private DeployTask getServicePortingTask(ServicePortingRequest servicePortingRequest) {
DeployTask servicePortingTask = new DeployTask();
servicePortingTask.setOrderId(CustomRequestIdGenerator.generateOrderId());
servicePortingTask.setTaskType(ServiceOrderType.PORT);
servicePortingTask.setServiceId(UUID.randomUUID());
servicePortingTask.setOriginalServiceId(servicePortingRequest.getOriginalServiceId());
servicePortingTask.setRequest(servicePortingRequest);
return servicePortingTask;
Expand All @@ -170,7 +173,6 @@ private Map<String, Object> getServicePortingProcessVariables(DeployTask service
variables.put(
ServicePortingConstants.ORIGINAL_SERVICE_ID,
servicePortingTask.getOriginalServiceId());
variables.put(ServicePortingConstants.NEW_SERVICE_ID, servicePortingTask.getServiceId());
variables.put(
ServicePortingConstants.SERVICE_PORTING_REQUEST, servicePortingTask.getRequest());
variables.put(ServicePortingConstants.USER_ID, servicePortingTask.getUserId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import org.eclipse.xpanse.modules.deployment.ServiceDeploymentEntityHandler;
import org.eclipse.xpanse.modules.deployment.ServiceOrderManager;
import org.eclipse.xpanse.modules.deployment.recreate.consts.RecreateConstants;
import org.eclipse.xpanse.modules.logging.CustomRequestIdGenerator;
import org.eclipse.xpanse.modules.models.common.enums.UserOperation;
import org.eclipse.xpanse.modules.models.service.deployment.exceptions.InvalidServiceStateException;
import org.eclipse.xpanse.modules.models.service.deployment.exceptions.ServiceLockedException;
Expand Down Expand Up @@ -133,7 +132,7 @@ public ServiceOrder recreateService(@Valid @PathVariable("serviceId") UUID servi
ServiceOrderEntity recreateOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(
recreateTask, serviceDeploymentEntity, Handler.WORKFLOW);

recreateTask.setOrderId(recreateOrderEntity.getOrderId());
// prepare recreate process variables
Map<String, Object> variables = getRecreateProcessVariables(recreateTask);
ProcessInstance instance =
Expand All @@ -145,7 +144,6 @@ public ServiceOrder recreateService(@Valid @PathVariable("serviceId") UUID servi

private DeployTask getRecreateTask(ServiceDeploymentEntity serviceDeploymentEntity) {
DeployTask recreateTask = new DeployTask();
recreateTask.setOrderId(CustomRequestIdGenerator.generateOrderId());
recreateTask.setTaskType(ServiceOrderType.RECREATE);
recreateTask.setServiceId(serviceDeploymentEntity.getId());
recreateTask.setOriginalServiceId(serviceDeploymentEntity.getId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.MapKeyColumn;
Expand Down Expand Up @@ -54,7 +56,9 @@
@EqualsAndHashCode(callSuper = true)
public class ServiceDeploymentEntity extends CreatedModifiedTime {

@Id private UUID id;
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;

/** The id of user who deployed the service. */
@Column(name = "USER_ID")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
Expand Down Expand Up @@ -45,6 +47,7 @@ public class ServiceOrderEntity implements Serializable {
@Serial private static final long serialVersionUID = 8759112775257851274L;

@Id
@GeneratedValue(strategy = GenerationType.UUID)
@Column(name = "ORDER_ID", nullable = false)
private UUID orderId;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
Expand Down Expand Up @@ -48,6 +50,7 @@
public class ServiceTemplateEntity extends CreatedModifiedTime {

@Id
@GeneratedValue(strategy = GenerationType.UUID)
@Column(name = "ID", nullable = false)
private UUID id;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
Expand All @@ -39,6 +41,7 @@
public class ServiceTemplateRequestHistoryEntity extends CreatedModifiedTime {

@Id
@GeneratedValue(strategy = GenerationType.UUID)
@Column(name = "REQUEST_ID", nullable = false)
private UUID requestId;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateStorage;
import org.eclipse.xpanse.modules.deployment.recreate.consts.RecreateConstants;
import org.eclipse.xpanse.modules.deployment.serviceporting.consts.ServicePortingConstants;
import org.eclipse.xpanse.modules.logging.CustomRequestIdGenerator;
import org.eclipse.xpanse.modules.models.response.ErrorResponse;
import org.eclipse.xpanse.modules.models.response.ErrorType;
import org.eclipse.xpanse.modules.models.service.deployment.DeployResource;
Expand Down Expand Up @@ -142,11 +141,11 @@ public void rollbackOnDeploymentFailure(
DeployResult rollbackResult;
RuntimeException exception = null;
log.info("Performing rollback of already provisioned resources.");
rollbackTask.setOrderId(CustomRequestIdGenerator.generateOrderId());
rollbackTask.setTaskType(ServiceOrderType.ROLLBACK);
ServiceOrderEntity serviceOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(
rollbackTask, serviceDeploymentEntity, handler);
rollbackTask.setOrderId(serviceOrderEntity.getOrderId());
Deployer deployer =
deployerKindManager.getDeployment(
rollbackTask.getOcl().getDeployment().getDeployerTool().getKind());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateStorage;
import org.eclipse.xpanse.modules.database.utils.EntityTranslationUtils;
import org.eclipse.xpanse.modules.deployment.polling.ServiceDeploymentStatusChangePolling;
import org.eclipse.xpanse.modules.logging.CustomRequestIdGenerator;
import org.eclipse.xpanse.modules.models.common.enums.Csp;
import org.eclipse.xpanse.modules.models.common.enums.UserOperation;
import org.eclipse.xpanse.modules.models.service.config.ServiceLockConfig;
Expand Down Expand Up @@ -110,10 +109,8 @@ public class DeployService {
* @return ServiceOrder.
*/
public ServiceOrder createOrderToDeployNewService(DeployRequest deployRequest) {
UUID newServiceId = UUID.randomUUID();
MDC.put(SERVICE_ID, newServiceId.toString());
String userId = userServiceHelper.getCurrentUserId();
DeployTask deployTask = createNewDeployTask(newServiceId, userId, deployRequest);
DeployTask deployTask = createNewDeployTask(userId, deployRequest);
deployService(deployTask);
return new ServiceOrder(deployTask.getOrderId(), deployTask.getServiceId());
}
Expand Down Expand Up @@ -265,8 +262,7 @@ private ServiceDeploymentEntity getServiceOwnedByCurrentUser(
* @param deployRequest deploy request.
* @return new deploy task.
*/
private DeployTask createNewDeployTask(
UUID serviceId, String userId, DeployRequest deployRequest) {
private DeployTask createNewDeployTask(String userId, DeployRequest deployRequest) {
// Find service templates and fill Ocl.
ServiceTemplateQueryModel queryModel =
ServiceTemplateQueryModel.builder()
Expand Down Expand Up @@ -319,8 +315,6 @@ private DeployTask createNewDeployTask(
deployRequest.setCustomerServiceName(generateCustomerServiceName(deployRequest));
}
DeployTask deployTask = new DeployTask();
deployTask.setOrderId(CustomRequestIdGenerator.generateOrderId());
deployTask.setServiceId(serviceId);
deployTask.setUserId(userId);
deployTask.setDeployRequest(deployRequest);
deployTask.setRequest(deployRequest);
Expand Down Expand Up @@ -375,7 +369,6 @@ private String generateCustomerServiceName(DeployRequest deployRequest) {

private ServiceDeploymentEntity storeNewDeployServiceEntity(DeployTask deployTask) {
ServiceDeploymentEntity entity = new ServiceDeploymentEntity();
entity.setId(deployTask.getServiceId());
entity.setCreatedTime(OffsetDateTime.now());
entity.setVersion(StringUtils.lowerCase(deployTask.getDeployRequest().getVersion()));
entity.setName(StringUtils.lowerCase(deployTask.getDeployRequest().getServiceName()));
Expand Down Expand Up @@ -423,9 +416,12 @@ private void deployService(DeployTask deployTask) {
DeployerKind kind = deployTask.getOcl().getDeployment().getDeployerTool().getKind();
Deployer deployer = deployerKindManager.getDeployment(kind);
ServiceDeploymentEntity serviceEntity = storeNewDeployServiceEntity(deployTask);
MDC.put(SERVICE_ID, serviceEntity.getId().toString());
deployTask.setServiceId(serviceEntity.getId());
Handler handler = getHandler(activeProfiles, kind);
ServiceOrderEntity serviceOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(deployTask, serviceEntity, handler);
deployTask.setOrderId(serviceOrderEntity.getOrderId());
try {
policyValidator.validateDeploymentWithPolicies(deployTask);
serviceOrderManager.startOrderProgress(serviceOrderEntity);
Expand Down Expand Up @@ -457,6 +453,7 @@ private void redeployService(
ServiceOrderEntity serviceOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(
redeployTask, serviceDeploymentEntity, handler);
redeployTask.setOrderId(serviceOrderEntity.getOrderId());
try {
policyValidator.validateDeploymentWithPolicies(redeployTask);
serviceDeploymentEntityHandler.updateServiceDeploymentStatus(
Expand Down Expand Up @@ -578,6 +575,7 @@ public void modifyService(DeployTask modifyTask, ServiceDeploymentEntity service
ServiceOrderEntity serviceOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(
modifyTask, serviceDeployment, handler);
modifyTask.setOrderId(serviceOrderEntity.getOrderId());
try {
serviceDeploymentEntityHandler.updateServiceDeploymentStatus(
serviceDeployment, ServiceDeploymentState.MODIFYING);
Expand Down Expand Up @@ -610,6 +608,7 @@ public void destroyService(
ServiceOrderEntity serviceOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(
destroyTask, serviceDeploymentEntity, handler);
destroyTask.setOrderId(serviceOrderEntity.getOrderId());
try {
if (ServiceOrderType.ROLLBACK != destroyTask.getTaskType()) {
serviceDeploymentEntityHandler.updateServiceDeploymentStatus(
Expand Down Expand Up @@ -643,6 +642,7 @@ private void purgeService(DeployTask purgeTask, ServiceDeploymentEntity serviceD
ServiceOrderEntity serviceOrderEntity =
serviceOrderManager.storeNewServiceOrderEntity(
purgeTask, serviceDeployment, handler);
purgeTask.setOrderId(serviceOrderEntity.getOrderId());
if (!CollectionUtils.isEmpty(serviceDeployment.getDeployResources())) {
try {
log.info(
Expand Down Expand Up @@ -674,12 +674,11 @@ private void purgeService(DeployTask purgeTask, ServiceDeploymentEntity serviceD
* @return serviceOrder
*/
public ServiceOrder deployServiceByWorkflow(DeployTask workFlowDeployTask) {
UUID newServiceId = workFlowDeployTask.getServiceId();
MDC.put(SERVICE_ID, newServiceId.toString());
// check if the new service is already deployed.
ServiceDeploymentEntity deployServiceEntity =
serviceDeploymentStorage.findServiceDeploymentById(newServiceId);
if (Objects.nonNull(deployServiceEntity)) {
if (workFlowDeployTask.getTaskType() == ServiceOrderType.RECREATE) {
ServiceDeploymentEntity deployServiceEntity =
serviceDeploymentStorage.findServiceDeploymentById(
workFlowDeployTask.getServiceId());
MDC.put(SERVICE_ID, workFlowDeployTask.getServiceId().toString());
// retry to deploy the service.
DeployTask retryTask = getRedeployTask(deployServiceEntity);
retryTask.setOriginalServiceId(workFlowDeployTask.getOriginalServiceId());
Expand All @@ -690,15 +689,13 @@ public ServiceOrder deployServiceByWorkflow(DeployTask workFlowDeployTask) {
} else {
DeployTask deployTask =
createNewDeployTask(
newServiceId,
workFlowDeployTask.getUserId(),
workFlowDeployTask.getDeployRequest());
workFlowDeployTask.getUserId(), workFlowDeployTask.getDeployRequest());
deployTask.setOriginalServiceId(workFlowDeployTask.getOriginalServiceId());
deployTask.setParentOrderId(workFlowDeployTask.getParentOrderId());
deployTask.setWorkflowId(workFlowDeployTask.getWorkflowId());
deployService(deployTask);
return new ServiceOrder(workFlowDeployTask.getOrderId(), deployTask.getServiceId());
}
return new ServiceOrder(workFlowDeployTask.getOrderId(), workFlowDeployTask.getServiceId());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import org.eclipse.xpanse.modules.database.servicechange.ServiceChangeRequestStorage;
import org.eclipse.xpanse.modules.database.serviceorder.ServiceOrderEntity;
import org.eclipse.xpanse.modules.database.utils.EntityTranslationUtils;
import org.eclipse.xpanse.modules.logging.CustomRequestIdGenerator;
import org.eclipse.xpanse.modules.models.response.ErrorResponse;
import org.eclipse.xpanse.modules.models.response.ErrorType;
import org.eclipse.xpanse.modules.models.service.deployment.DeployResource;
Expand Down Expand Up @@ -67,10 +66,9 @@ public UUID createServiceOrderAndQueueServiceChangeRequests(
Map<String, List<DeployResource>> deployResourceMap,
List<ServiceChangeScript> serviceChangeScripts,
ServiceOrderType serviceOrderType) {
UUID orderId = CustomRequestIdGenerator.generateOrderId();
ServiceOrderEntity serviceOrderEntity =
serviceOrderManager.createAndStoreGenericServiceOrderEntity(
orderId, serviceDeploymentEntity, serviceOrderType, originalRequestObject);
serviceDeploymentEntity, serviceOrderType, originalRequestObject);
List<ServiceChangeRequestEntity> requests = new ArrayList<>();
deployResourceMap.forEach(
(groupName, deployResourceList) ->
Expand Down Expand Up @@ -111,15 +109,15 @@ public UUID createServiceOrderAndQueueServiceChangeRequests(
} else {
// if no requests were created, then the order is completed as failed.
serviceOrderManager.completeOrderProgress(
orderId,
serviceOrderEntity.getOrderId(),
OrderStatus.FAILED,
ErrorResponse.errorResponse(
ErrorType.SERVICE_CHANGE_FAILED,
List.of(
"No change requests created for the requested change"
+ " properties.")));
}
return orderId;
return serviceOrderEntity.getOrderId();
}

/** Query service change details update request by queryModel. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import org.eclipse.xpanse.modules.database.serviceconfiguration.ServiceConfigurationEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateEntity;
import org.eclipse.xpanse.modules.database.servicetemplate.ServiceTemplateStorage;
import org.eclipse.xpanse.modules.logging.CustomRequestIdGenerator;
import org.eclipse.xpanse.modules.models.service.deployment.DeployRequest;
import org.eclipse.xpanse.modules.models.service.order.enums.ServiceOrderType;
import org.eclipse.xpanse.modules.models.servicetemplate.ServiceChangeManage;
Expand Down Expand Up @@ -49,7 +48,6 @@ public DeployTask getDeployTaskByStoredService(
ServiceOrderType orderType, ServiceDeploymentEntity serviceDeploymentEntity) {
// Set Ocl and CreateRequest
DeployTask deployTask = new DeployTask();
deployTask.setOrderId(CustomRequestIdGenerator.generateOrderId());
deployTask.setTaskType(orderType);
deployTask.setServiceId(serviceDeploymentEntity.getId());
deployTask.setUserId(serviceDeploymentEntity.getUserId());
Expand Down
Loading
Loading