summaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java503
1 files changed, 503 insertions, 0 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
new file mode 100644
index 0000000000..a2d1d708c1
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
@@ -0,0 +1,503 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
+import org.openecomp.sdc.logging.types.LoggerConstants;
+import org.openecomp.sdc.logging.types.LoggerErrorCode;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateComputeInComponentErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ListComputeResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.Compute;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComputeCompositionSchemaInput;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
+import org.openecomp.sdc.versioning.VersioningUtil;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class ComputeManagerImpl implements ComputeManager {
+
+ private static final MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private ComputeDao computeDao;
+ private CompositionEntityDataManager compositionEntityDataManager;
+ private VendorSoftwareProductInfoDao vspInfoDao;
+ private DeploymentFlavorDao deploymentFlavorDao;
+ private ComponentDao componentDao;
+ private static final String MANUAL = "Manual";
+
+ public ComputeManagerImpl(
+ VendorSoftwareProductInfoDao vspInfoDao,
+ ComputeDao computeDao,
+ CompositionEntityDataManager compositionEntityDataManager,
+ DeploymentFlavorDao deploymentFlavorDao,
+ ComponentDao componentDao
+ ) {
+ this.computeDao = computeDao;
+ this.compositionEntityDataManager = compositionEntityDataManager;
+ this.vspInfoDao = vspInfoDao;
+ this.deploymentFlavorDao = deploymentFlavorDao;
+ this.componentDao = componentDao;
+ }
+
+ @Override
+ public ComputeEntity createCompute(ComputeEntity compute, String user) {
+ ComputeEntity createdCompute = null;
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", compute.getVspId(),
+ compute.getComponentId());
+
+ /*Version activeVersion =
+ getVersionInfo(compute.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
+ compute.setVersion(activeVersion);*/
+ //if (!isManual(compute.getVspId(), activeVersion)) {
+ if (!vspInfoDao.isManual(compute.getVspId(), compute.getVersion())) {
+ ErrorCode onboardingMethodUpdateErrorCode = NotSupportedHeatOnboardMethodErrorBuilder
+ .getAddComputeNotSupportedHeatOnboardMethodErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ onboardingMethodUpdateErrorCode.message());
+ throw new CoreException(onboardingMethodUpdateErrorCode);
+ } else {
+ //validateComponentId(compute.getVspId(),compute.getVersion(),compute.getComponentId());
+ validateCompute(compute);
+ createdCompute = createCompute(compute);
+ }
+
+ mdcDataDebugMessage
+ .debugExitMessage("VSP id, component id", compute.getVspId(), compute.getComponentId());
+
+ return createdCompute;
+ }
+
+ private ComputeEntity createCompute(ComputeEntity compute) {
+
+ return compositionEntityDataManager.createCompute(compute);
+ }
+
+ private void validateCompute(ComputeEntity compute) {
+ Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
+ (),compute.getComponentId());
+
+ if (!isComputeNameUnique(vfcComputeList,compute.getComputeCompositionData().getName())) {
+ final ErrorCode duplicateComputeInComponentErrorBuilder =
+ new DuplicateComputeInComponentErrorBuilder(compute.getComputeCompositionData().getName(),
+ compute.getComponentId()).build();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ duplicateComputeInComponentErrorBuilder.message());
+ throw new CoreException(duplicateComputeInComponentErrorBuilder);
+ }
+
+ }
+
+ private void validateComputeUpdate(ComputeEntity compute) {
+ Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
+ (),compute.getComponentId());
+
+ for (ComputeEntity ce : vfcComputeList) {
+ if (ce.getId().equals(compute.getId())) {
+ vfcComputeList.remove(ce);
+ break;
+ }
+ }
+
+ if (!isComputeNameUnique(vfcComputeList,compute.getComputeCompositionData().getName())) {
+ final ErrorCode duplicateComputeInComponentErrorBuilder =
+ new DuplicateComputeInComponentErrorBuilder(compute.getComputeCompositionData().getName(),
+ compute.getComponentId()).build();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ duplicateComputeInComponentErrorBuilder.message());
+ throw new CoreException(duplicateComputeInComponentErrorBuilder);
+ }
+
+ }
+
+ @Override
+ public Collection<ListComputeResponse> listCompute(String vspId, Version version,
+ String componentId, String user) {
+
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
+ //validateComponentId(vspId, version, componentId);
+ ComputeEntity entity = new ComputeEntity(vspId, version, componentId, null);
+ Collection<ComputeEntity> computes = computeDao.list(entity);
+
+ Collection<ListComputeResponse> computeResponse =
+ getListComputeResponse(vspId, version, user, computes);
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
+
+ return computeResponse;
+ }
+
+ private Collection<ListComputeResponse> getListComputeResponse(String vspId, Version version,
+ String user,
+ Collection<ComputeEntity> computes) {
+ Set<String> vspComputes = getComputeAssociatedWithDepFlavors(vspId, version, user);
+ Collection<ListComputeResponse> computeResponse = new ArrayList<ListComputeResponse>();
+ for(ComputeEntity computeEntity : computes) {
+ ListComputeResponse response = new ListComputeResponse();
+ response.setComputeEntity(computeEntity);
+ if(vspComputes.contains(computeEntity.getId())) {
+ response.setAssociatedWithDeploymentFlavor(true);
+ } else {
+ response.setAssociatedWithDeploymentFlavor(false);
+ }
+ computeResponse.add(response);
+ }
+ return computeResponse;
+ }
+
+ private Set<String> getComputeAssociatedWithDepFlavors(String vspId, Version version,
+ String user) {
+ final Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorDao.list(new DeploymentFlavorEntity(vspId, version, null));
+ Set<String> vspComputes = new HashSet<String>();
+ for(DeploymentFlavorEntity entity : deploymentFlavorEntities) {
+ final List<ComponentComputeAssociation> componentComputeAssociations =
+ entity.getDeploymentFlavorCompositionData().getComponentComputeAssociations();
+ if(componentComputeAssociations != null && !componentComputeAssociations.isEmpty()) {
+ for(ComponentComputeAssociation association : componentComputeAssociations) {
+ vspComputes.add(association.getComputeFlavorId());
+ }
+ }
+ }
+ return vspComputes;
+ }
+
+ private boolean isComputeNameUnique(Collection<ComputeEntity> vfcComputeList, String name) {
+ for (ComputeEntity compute : vfcComputeList) {
+ if (compute.getComputeCompositionData().getName().equalsIgnoreCase(name)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private Collection<ComputeEntity> listCompute(String vspId, Version version,String componentId) {
+ Collection<ComputeEntity> computeEntities =
+ computeDao.list(new ComputeEntity(vspId, version, componentId, null));
+
+ return computeEntities;
+ }
+
+ @Override
+ public CompositionEntityResponse<ComputeData> getCompute(String vspId, Version version,
+ String componentId,
+ String computeFlavorId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+ ComputeEntity computeEntity = getCompute(vspId, version, componentId, computeFlavorId);
+ ComputeData compute = computeEntity.getComputeCompositionData();
+
+ ComputeCompositionSchemaInput schemaInput = new ComputeCompositionSchemaInput();
+ schemaInput.setManual(vspInfoDao.isManual(vspId, version));
+ schemaInput.setCompute(compute);
+
+ CompositionEntityResponse<ComputeData> response = new CompositionEntityResponse<>();
+ response.setId(computeFlavorId);
+ response.setData(compute);
+ response.setSchema(getComputeCompositionSchema(schemaInput));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+
+ return response;
+ }
+
+ private ComputeEntity getCompute(String vspId, Version version, String componentId, String
+ computeFlavorId) {
+ //validateComponentId(vspId,version,componentId);
+ ComputeEntity retrieved = computeDao.get(new ComputeEntity(vspId, version, componentId,
+ computeFlavorId));
+ VersioningUtil
+ .validateEntityExistence(retrieved, new ComputeEntity(vspId, version, componentId,
+ computeFlavorId), VspDetails.ENTITY_TYPE);
+ return retrieved;
+ }
+
+ /*private void validateComponentId(String vspId, Version version, String componentId) {
+ ComponentEntity retrivedComponent = componentDao.get(new ComponentEntity(vspId, version,
+ componentId));
+ VersioningUtil
+ .validateEntityExistence(retrivedComponent, new ComponentEntity(vspId, version,
+ componentId),VspDetails.ENTITY_TYPE);
+ }*/
+
+ @Override
+ public QuestionnaireResponse getComputeQuestionnaire(String vspId, Version version, String
+ componentId, String computeId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, componentId", vspId, componentId, computeId);
+
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+ //validateComponentId(vspId,version,componentId);
+ QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
+ //validateComponentId(vspId,version,componentId);
+ ComputeEntity computeQuestionnaire = computeDao.getQuestionnaireData(vspId, version, componentId, computeId);
+ VersioningUtil
+ .validateEntityExistence(computeQuestionnaire, new ComputeEntity(vspId, version, componentId,
+ computeId), VspDetails.ENTITY_TYPE);
+ questionnaireResponse.setData(computeQuestionnaire.getQuestionnaireData());
+ questionnaireResponse.setSchema(getComputeQuestionnaireSchema(null));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId,
+ componentId, computeId);
+
+ return questionnaireResponse;
+ }
+
+
+ protected String getComputeQuestionnaireSchema(SchemaTemplateInput schemaInput) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return SchemaGenerator
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.compute,
+ schemaInput);
+ }
+
+
+ @Override
+ public void updateComputeQuestionnaire(String vspId, Version version, String componentId, String
+ computeId,
+ String questionnaireData, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id, compute id", vspId,
+ componentId, computeId);
+
+ /*Version activeVersion =
+ getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
+ getComponent(vspId, activeVersion, componentId);*/
+ ComputeEntity retrieved = computeDao.get(new ComputeEntity(vspId,version,componentId,
+ computeId));
+ VersioningUtil.validateEntityExistence(retrieved, new ComputeEntity(vspId, version,
+ componentId, computeId), VspDetails.ENTITY_TYPE);
+
+ computeDao.updateQuestionnaireData(vspId, version, componentId, computeId, questionnaireData);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id, compute id", vspId,
+ componentId, computeId);
+ }
+
+ @Override
+ public CompositionEntityValidationData updateCompute(ComputeEntity compute, String user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VSP id, component id", compute.getVspId(), compute.getComponentId(),
+ compute.getId());
+
+ /*Version activeVersion =
+ getVersionInfo(image.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
+ image.setVersion(activeVersion);*/
+
+ ComputeEntity retrieved = getComputeEntity(compute.getVspId(), compute.getVersion(), compute.getComponentId(),
+ compute.getId());
+
+ if(!vspInfoDao.isManual(compute.getVspId(), compute.getVersion())) {
+ final ComputeData computeCompositionData = compute.getComputeCompositionData();
+ final String name = computeCompositionData.getName();
+ //final String format = computeCompositionData.getFormat();
+ validateHeatVspComputeUpdate("Name", name, retrieved.getComputeCompositionData()
+ .getName());
+ /*validateHeatVspComputeUpdate("format", format, retrieved.getComputeCompositionData()
+ .getFormat());*/
+ }
+
+ Collection<ComputeEntity> vfcComputeList = listComputes(compute.getVspId() ,
+ compute.getVersion(), compute.getComponentId());
+
+ //Set to null so that retrieved object is equal to one in list and gets removed.
+ retrieved.setQuestionnaireData(null);
+ vfcComputeList.remove(retrieved);
+ if(vspInfoDao.isManual(compute.getVspId(), compute.getVersion()))
+ validateVfcCompute(compute, vfcComputeList);
+
+ //Set format to default value in order to handle FTL validation when compute format is null
+ /*if(compute.getComputeCompositionData().getFormat() == null)
+ compute.getComputeCompositionData().setFormat(ComputeFormat.qcow2.name());*/
+
+ ComputeCompositionSchemaInput schemaInput = new ComputeCompositionSchemaInput();
+ schemaInput.setCompute(compute.getComputeCompositionData());
+
+ CompositionEntityValidationData validationData = compositionEntityDataManager
+ .validateEntity(compute, SchemaTemplateContext.composition, schemaInput);
+ if (CollectionUtils.isEmpty(validationData.getErrors())) {
+ computeDao.update(compute);
+ }
+
+ mdcDataDebugMessage
+ .debugExitMessage("VSP id, component id", compute.getVspId(), compute.getComponentId(),
+ compute.getId());
+
+ return validationData;
+ }
+
+ private void validateHeatVspComputeUpdate(String name, String value, String retrivedValue) {
+
+ if(value != null && !value.equals(retrivedValue)) {
+
+ final ErrorCode updateHeatComputeErrorBuilder =
+ DuplicateComputeInComponentErrorBuilder.getComputeHeatReadOnlyErrorBuilder(name);
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ updateHeatComputeErrorBuilder.message());
+ throw new CoreException(updateHeatComputeErrorBuilder);
+ }
+ }
+
+ private void validateVfcCompute(ComputeEntity compute, Collection<ComputeEntity> vfcComputeList) {
+ if (isComputeNameDuplicate(vfcComputeList,compute.getComputeCompositionData().getName(), compute.getId())) {
+ ErrorCode errorCode = DuplicateComputeInComponentErrorBuilder.getDuplicateComputeNameErrorBuilder(compute
+ .getComputeCompositionData().getName(), compute.getComponentId());
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+
+ throw new CoreException(errorCode);
+ }
+ }
+
+ private boolean isComputeNameDuplicate(Collection<ComputeEntity> computes, String name, String computeId) {
+ for (ComputeEntity compute : computes) {
+ if (compute.getComputeCompositionData().getName().equals(name) && !compute.getId().equals(computeId)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ private ComputeEntity getComputeEntity(String vspId, Version version, String componentId,
+ String computeId) {
+ //validateComponentId(vspId,version,componentId);
+ ComputeEntity computeEntity = computeDao.get(new ComputeEntity(vspId, version, componentId, computeId));
+ VersioningUtil.validateEntityExistence(computeEntity, new ComputeEntity(vspId, version, componentId,
+ computeId), VspDetails.ENTITY_TYPE);
+ return computeEntity;
+ }
+
+ private Collection<ComputeEntity> listComputes(String vspId, Version version, String componentId) {
+ return computeDao.list(new ComputeEntity(vspId, version, componentId, null));
+ }
+
+ @Override
+ public void deleteCompute(String vspId, Version version, String componentId, String
+ computeFlavorId, String user) {
+ final String VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG =
+ "Composition entities may not be created / deleted for Vendor Software Product "
+ + "whose entities were uploaded";
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+
+ /*Version activeVersion =
+ getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();*/
+ if (!vspInfoDao.isManual(vspId, version)) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.DELETE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't delete compute");
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
+ .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
+ }
+ ComputeEntity retrived = getCompute(vspId,version,componentId,computeFlavorId);
+ if (retrived != null){
+ deleteComputeFromDeploymentFlavors(vspId,version,computeFlavorId);
+ computeDao.delete(new ComputeEntity(vspId, version, componentId, computeFlavorId));
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+ }
+
+ private void deleteComputeFromDeploymentFlavors(String vspId, Version activeVersion,
+ String computeFlavorId) {
+ //Collection<DeploymentFlavorEntity> listDF = listDeploymentFlavors(vspId, activeVersion);
+ Collection<DeploymentFlavorEntity> listDF = deploymentFlavorDao.list(new DeploymentFlavorEntity
+ (vspId, activeVersion, null));
+ for(DeploymentFlavorEntity df : listDF) {
+ DeploymentFlavorEntity deploymentFlavorEntity=removeComputeFromDF(df, computeFlavorId);
+ if(deploymentFlavorEntity!=null)
+ deploymentFlavorDao.update(deploymentFlavorEntity);
+ }
+ }
+
+ private DeploymentFlavorEntity removeComputeFromDF(DeploymentFlavorEntity df, String
+ computeFlavorId) {
+ DeploymentFlavor flavor = df.getDeploymentFlavorCompositionData();
+ List<ComponentComputeAssociation> associations = flavor.getComponentComputeAssociations();
+ if (associations != null) {
+ List<ComponentComputeAssociation> updatedAssociations = new ArrayList<>();
+ for (ComponentComputeAssociation ca : associations) {
+ if (ca.getComputeFlavorId() != null && ca.getComputeFlavorId().equals(computeFlavorId)) {
+ ComponentComputeAssociation updateCaremoveCompute = new ComponentComputeAssociation();
+ updateCaremoveCompute.setComponentId(ca.getComponentId());
+ updatedAssociations.add(updateCaremoveCompute);
+ } else {
+ updatedAssociations.add(ca);
+ }
+ }
+ flavor.setComponentComputeAssociations(updatedAssociations);
+ df.setDeploymentFlavorCompositionData(flavor);
+ return df;
+ }
+ return null;
+ }
+
+ protected String getComputeCompositionSchema(SchemaTemplateInput schemaInput){
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return SchemaGenerator.generate(SchemaTemplateContext.composition, CompositionEntityType.compute, schemaInput);
+ }
+
+ /*boolean isManual(String vspId, Version version) {
+
+ VspDetails vsp = vspInfoDao.get(new VspDetails(vspId, version));
+ String onboardingMethod = vsp.getOnboardingMethod();
+ if (MANUAL.equals(onboardingMethod)) {
+ return true;
+ }
+ return false;
+ }*/
+
+}