aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.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/VendorSoftwareProductManagerImpl.java')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java1735
1 files changed, 535 insertions, 1200 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
index 191c8d728c..0d2023f387 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,166 +20,300 @@
package org.openecomp.sdc.vendorsoftwareproduct.impl;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.CSAR;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UPLOAD_RAW_DATA;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.VSP_PACKAGE_ZIP;
-
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.core.enrichment.EnrichmentArtifactsServiceFactory;
import org.openecomp.core.enrichment.api.EnrichmentManager;
-import org.openecomp.core.enrichment.enrichmentartifacts.EnrichmentArtifactsService;
import org.openecomp.core.enrichment.factory.EnrichmentManagerFactory;
-import org.openecomp.core.enrichment.types.ComponentArtifactType;
import org.openecomp.core.model.dao.EnrichedServiceModelDao;
-import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
import org.openecomp.core.model.dao.ServiceModelDao;
-import org.openecomp.core.model.dao.ServiceModelDaoFactory;
import org.openecomp.core.model.types.ServiceElement;
import org.openecomp.core.util.UniqueValueUtil;
-import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonSchemaDataGenerator;
import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.core.validation.api.ValidationManager;
-import org.openecomp.core.validation.errors.Messages;
-import org.openecomp.core.validation.types.MessageContainerUtil;
+import org.openecomp.core.validation.util.MessageContainerUtil;
+import org.openecomp.sdc.activityLog.ActivityLogManager;
+import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
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.common.errors.ValidationErrorBuilder;
-import org.openecomp.sdc.common.utils.AsdcCommon;
+import org.openecomp.sdc.common.utils.CommonUtil;
+import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.enrichment.impl.tosca.ComponentInfo;
-import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
-import org.openecomp.sdc.heat.datatypes.structure.ValidationStructureList;
-import org.openecomp.sdc.heat.services.tree.HeatTreeManager;
-import org.openecomp.sdc.heat.services.tree.HeatTreeManagerUtil;
+import org.openecomp.sdc.healing.api.HealingManager;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+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.LoggerServiceName;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
-import org.openecomp.sdc.validation.utils.ValidationManagerUtil;
-import org.openecomp.sdc.vendorlicense.VendorLicenseArtifactServiceFactory;
+import org.openecomp.sdc.validation.util.ValidationManagerUtil;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
-import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
import org.openecomp.sdc.vendorlicense.licenseartifacts.VendorLicenseArtifactsService;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentArtifactEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.errors.VendorSoftwareProductNotFoundErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessArtifactEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.CreatePackageForNonFinalVendorSoftwareProductErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.FileCreationErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.MibUploadErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.InformationArtifactCreationErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.PackageInvalidErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.PackageNotFoundErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.TranslationFileCreationErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.UploadInvalidErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductInvalidErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductNotFoundErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.services.CompositionDataExtractor;
-import org.openecomp.sdc.vendorsoftwareproduct.services.CompositionEntityDataManager;
-import org.openecomp.sdc.vendorsoftwareproduct.services.SchemaGenerator;
-import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireValidationResult;
-import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComponentCompositionSchemaInput;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComponentQuestionnaireSchemaInput;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.NetworkCompositionSchemaInput;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.NicCompositionSchemaInput;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
-import org.openecomp.sdc.vendorsoftwareproduct.util.CompilationUtil;
-import org.openecomp.sdc.vendorsoftwareproduct.util.VendorSoftwareProductUtils;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.ComponentDependencyTracker;
import org.openecomp.sdc.versioning.VersioningManager;
-import org.openecomp.sdc.versioning.VersioningManagerFactory;
import org.openecomp.sdc.versioning.VersioningUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionStatus;
import org.openecomp.sdc.versioning.errors.RequestedVersionInvalidErrorBuilder;
import org.openecomp.sdc.versioning.types.VersionInfo;
import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+import org.openecomp.sdcrests.activitylog.types.ActivityType;
+import org.slf4j.MDC;
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStream;
+import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
+import java.util.zip.ZipInputStream;
+import java.util.zip.ZipOutputStream;
-/**
- * The type Vendor software product manager.
- */
public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductManager {
+ private static final String VALIDATION_VSP_ID = "validationOnlyVspId";
+ private static final String VALIDATION_VSP_NAME = "validationOnlyVspName";
+ //private static final String VALIDATION_VSP_USER = "validationOnlyVspUser";
+
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private static final Logger logger =
+ LoggerFactory.getLogger(VendorSoftwareProductManagerImpl.class);
+
+ private OrchestrationTemplateDao orchestrationTemplateDao;
+ private VendorSoftwareProductInfoDao vspInfoDao;
+ private VersioningManager versioningManager;
+ private VendorSoftwareProductDao vendorSoftwareProductDao;
+ private VendorLicenseFacade vendorLicenseFacade;
+ private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao;
+ private EnrichedServiceModelDao<ToscaServiceModel, ServiceElement> enrichedServiceModelDao;
+ private HealingManager healingManager;
+ private VendorLicenseArtifactsService licenseArtifactsService;
+ private CompositionEntityDataManager compositionEntityDataManager;
+ private InformationArtifactGenerator informationArtifactGenerator;
+ private PackageInfoDao packageInfoDao;
+ private ActivityLogManager activityLogManager;
+
+
+ public VendorSoftwareProductManagerImpl(
+ VersioningManager versioningManager,
+ VendorSoftwareProductDao vendorSoftwareProductDao,
+ OrchestrationTemplateDao orchestrationTemplateDataDao,
+ VendorSoftwareProductInfoDao vspInfoDao,
+ VendorLicenseFacade vendorLicenseFacade,
+ ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao,
+ EnrichedServiceModelDao<ToscaServiceModel, ServiceElement> enrichedServiceModelDao,
+ HealingManager healingManager,
+ VendorLicenseArtifactsService licenseArtifactsService,
+ CompositionEntityDataManager compositionEntityDataManager,
+ InformationArtifactGenerator informationArtifactGenerator,
+ PackageInfoDao packageInfoDao,
+ ActivityLogManager activityLogManager) {
+ this.versioningManager = versioningManager;
+ this.vendorSoftwareProductDao = vendorSoftwareProductDao;
+ this.orchestrationTemplateDao = orchestrationTemplateDataDao;
+ this.vspInfoDao = vspInfoDao;
+ this.vendorLicenseFacade = vendorLicenseFacade;
+ this.serviceModelDao = serviceModelDao;
+ this.enrichedServiceModelDao = enrichedServiceModelDao;
+ this.healingManager = healingManager;
+ this.licenseArtifactsService = licenseArtifactsService;
+ this.compositionEntityDataManager = compositionEntityDataManager;
+ this.informationArtifactGenerator = informationArtifactGenerator;
+ this.packageInfoDao = packageInfoDao;
+ this.activityLogManager = activityLogManager;
+
+ registerToVersioning();
+ }
+
+ private void registerToVersioning() {
+ vendorSoftwareProductDao.registerVersioning(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ serviceModelDao.registerVersioning(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ enrichedServiceModelDao.registerVersioning(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ }
+
+ @Override
+ public Version checkout(String vendorSoftwareProductId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vendorSoftwareProductId);
+ MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Checkout_Entity.toString());
+
+ Version newVersion = versioningManager
+ .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user);
+
+ if (newVersion != null) {
+ ActivityLogEntity activityLogEntity =
+ new ActivityLogEntity(vendorSoftwareProductId, String.valueOf(newVersion.getMajor() + 1),
+ ActivityType.CHECKOUT.toString(), user, true, "", "");
+ activityLogManager.addActionLog(activityLogEntity, user);
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vendorSoftwareProductId);
+ return newVersion;
+ }
+
- private static final String VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG =
- "Composition entities may not be created / deleted for Vendor Software Product whose "
- + "entities were uploaded";
-
- private static final VersioningManager versioningManager =
- VersioningManagerFactory.getInstance().createInterface();
- private static final VendorSoftwareProductDao vendorSoftwareProductDao =
- VendorSoftwareProductDaoFactory.getInstance().createInterface();
- private static final VendorLicenseFacade vendorLicenseFacade =
- VendorLicenseFacadeFactory.getInstance().createInterface();
- private static final ComponentArtifactDao componentArtifactDao =
- ComponentArtifactDaoFactory.getInstance().createInterface();
- private static final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao =
- ServiceModelDaoFactory.getInstance().createInterface();
- private static final EnrichedServiceModelDao<ToscaServiceModel, ServiceElement>
- enrichedServiceModelDao = EnrichedServiceModelDaoFactory.getInstance().createInterface();
- private static VendorLicenseArtifactsService licenseArtifactsService =
- VendorLicenseArtifactServiceFactory.getInstance().createInterface();
- private static EnrichmentArtifactsService enrichmentArtifactsService =
- EnrichmentArtifactsServiceFactory.getInstance().createInterface();
-
-
- /**
- * Instantiates a new Vendor software product manager.
- */
- public VendorSoftwareProductManagerImpl() {
- vendorSoftwareProductDao.registerVersioning(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
- serviceModelDao.registerVersioning(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
- enrichedServiceModelDao.registerVersioning(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
- componentArtifactDao.registerVersioning(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ @Override
+ public Version undoCheckout(String vendorSoftwareProductId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vendorSoftwareProductId);
+
+ Version version =
+ getVersionInfo(vendorSoftwareProductId, VersionableEntityAction.Read, user)
+ .getActiveVersion();
+ String preVspName = vspInfoDao
+ .get(new VspDetails(vendorSoftwareProductId, version)).getName();
+
+ Version newVersion = versioningManager.undoCheckout(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user);
+
+ String postVspName = vspInfoDao
+ .get(new VspDetails(vendorSoftwareProductId, newVersion))
+ .getName();
+
+ updateUniqueName(preVspName, postVspName);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vendorSoftwareProductId);
+
+ return newVersion;
}
- private static List<ErrorCode> validateCompletedVendorSoftwareProduct(VspDetails vspDetails,
- UploadDataEntity uploadData,
- Object serviceModel) {
+ @Override
+ public Version checkin(String vendorSoftwareProductId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vendorSoftwareProductId);
+
+ Version newVersion = versioningManager.checkin(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user, null);
+
+ if (newVersion != null) {
+ ActivityLogEntity activityLogEntity =
+ new ActivityLogEntity(vendorSoftwareProductId, String.valueOf(newVersion.getMajor() + 1),
+ ActivityType.CHECKIN.toString(), user, true, "", "");
+ activityLogManager.addActionLog(activityLogEntity, user);
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vendorSoftwareProductId);
+
+ return newVersion;
+ }
+
+ @Override
+ public ValidationResponse submit(String vspId, String user) throws IOException {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+
+ Version version = getVersionInfo(vspId, VersionableEntityAction.Read, user).getActiveVersion();
+ VspDetails vspDetails = getVsp(vspId, version, user);
+ UploadDataEntity uploadData = orchestrationTemplateDao.getOrchestrationTemplate(vspId, version);
+ ToscaServiceModel serviceModel =
+ serviceModelDao.getServiceModel(vspId, vspDetails.getVersion());
+
+ ValidationResponse validationResponse = new ValidationResponse();
+ validationResponse
+ .setVspErrors(validateCompletedVendorSoftwareProduct(vspDetails, uploadData, serviceModel),
+ LoggerServiceName.Submit_VSP, LoggerTragetServiceName.SUBMIT_VSP);
+
+ if (isCyclicDependencyInComponents(vspId, vspDetails.getVersion())) {
+ Collection<ErrorCode> vspErrors = validationResponse.getVspErrors() == null
+ ? new ArrayList<>()
+ : validationResponse.getVspErrors();
+ vspErrors.add(ComponentDependencyModelErrorBuilder
+ .getcyclicDependencyComponentErrorBuilder());
+ validationResponse.setVspErrors(vspErrors, LoggerServiceName.Submit_VSP,
+ LoggerTragetServiceName.SUBMIT_VSP);
+ }
+
+ validationResponse.setLicensingDataErrors(validateLicensingData(vspDetails));
+ validationResponse
+ .setUploadDataErrors(validateUploadData(uploadData), LoggerServiceName.Submit_VSP,
+ LoggerTragetServiceName.SUBMIT_VSP);
+ validationResponse.setQuestionnaireValidationResult(
+ validateQuestionnaire(vspDetails.getId(), vspDetails.getVersion()));
+
+ validationResponse.setCompilationErrors(
+ compile(vspId, vspDetails.getVersion(), serviceModel),
+ LoggerServiceName.Submit_VSP, LoggerTragetServiceName.SUBMIT_VSP);
+
+ if (validationResponse.isValid()) {
+ Version newVersion = versioningManager.submit(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vspId, user, null);
+ ActivityLogEntity activityLogEntity = new ActivityLogEntity(vspDetails.getId(), String
+ .valueOf(newVersion.getMajor()),
+ ActivityType.SUBMIT.toString(), user, true, "", "");
+ activityLogManager.addActionLog(activityLogEntity, user);
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+
+ return validationResponse;
+ }
+
+ private boolean isCyclicDependencyInComponents(String vendorSoftwareProductId,
+ Version version) {
+ final Collection<ComponentDependencyModelEntity> componentDependencyModelEntities =
+ vendorSoftwareProductDao.listComponentDependencies(vendorSoftwareProductId, version);
+ ComponentDependencyTracker dependencyTracker = new ComponentDependencyTracker();
+
+ for (ComponentDependencyModelEntity entity : componentDependencyModelEntities) {
+ dependencyTracker.addDependency(entity.getSourceComponentId(), entity.getTargetComponentId());
+ }
+ return dependencyTracker.isCyclicDependencyPresent();
+ }
+
+ private static List<ErrorCode> validateCompletedVendorSoftwareProduct(
+ VspDetails vspDetails, UploadDataEntity uploadData, Object serviceModel) {
+
List<ErrorCode> errros = new ArrayList<>();
if (vspDetails.getName() == null) {
@@ -220,171 +354,107 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
return new ValidationErrorBuilder("must be supplied", fieldName).build();
}
- private static String getVspQuestionnaireSchema(SchemaTemplateInput schemaInput) {
+ String getVspQuestionnaireSchema(SchemaTemplateInput schemaInput) {
+ mdcDataDebugMessage.debugEntryMessage(null);
+ mdcDataDebugMessage.debugExitMessage(null);
return SchemaGenerator
.generate(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, schemaInput);
}
- private static String getComponentQuestionnaireSchema(SchemaTemplateInput schemaInput) {
- return SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.component,
- schemaInput);
- }
-
- private static String getNicQuestionnaireSchema(SchemaTemplateInput schemaInput) {
- return SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.nic, schemaInput);
- }
-
private static void sortVspListByModificationTimeDescOrder(
- List<VersionedVendorSoftwareProductInfo> vendorLicenseModels) {
- Collections.sort(vendorLicenseModels, new Comparator<VersionedVendorSoftwareProductInfo>() {
- @Override
- public int compare(VersionedVendorSoftwareProductInfo o1,
- VersionedVendorSoftwareProductInfo o2) {
- return o2.getVspDetails().getWritetimeMicroSeconds()
- .compareTo(o1.getVspDetails().getWritetimeMicroSeconds());
- }
- });
- }
-
- private boolean isManual(String vspId, Version version) {
- return false;
- }
-
- @Override
- public Version checkout(String vendorSoftwareProductId, String user) {
- Version newVersion = versioningManager
- .checkout(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vendorSoftwareProductId, user);
- vendorSoftwareProductDao.updateVspLatestModificationTime(vendorSoftwareProductId, newVersion);
- return newVersion;
- }
-
- @Override
- public Version undoCheckout(String vendorSoftwareProductId, String user) {
- Version newVersion = versioningManager
- .undoCheckout(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vendorSoftwareProductId, user);
- vendorSoftwareProductDao.updateVspLatestModificationTime(vendorSoftwareProductId, newVersion);
- return newVersion;
- }
-
- @Override
- public Version checkin(String vendorSoftwareProductId, String user) {
- Version newVersion = versioningManager
- .checkin(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vendorSoftwareProductId, user, null);
- vendorSoftwareProductDao.updateVspLatestModificationTime(vendorSoftwareProductId, newVersion);
- return newVersion;
+ List<VersionedVendorSoftwareProductInfo> vsps) {
+ vsps.sort((o1, o2) -> o2.getVspDetails().getWritetimeMicroSeconds()
+ .compareTo(o1.getVspDetails().getWritetimeMicroSeconds()));
}
- @Override
- public ValidationResponse submit(String vendorSoftwareProductId, String user) throws IOException {
- VspDetails vspDetails = getVspDetails(vendorSoftwareProductId, null, user).getVspDetails();
- UploadDataEntity uploadData = vendorSoftwareProductDao
- .getUploadData(new UploadDataEntity(vendorSoftwareProductId, vspDetails.getVersion()));
- ToscaServiceModel serviceModel =
- serviceModelDao.getServiceModel(vendorSoftwareProductId, vspDetails.getVersion());
- Version newVersion = null;
-
- ValidationResponse validationResponse = new ValidationResponse();
- validationResponse
- .setVspErrors(validateCompletedVendorSoftwareProduct(vspDetails, uploadData, serviceModel));
- validationResponse.setLicensingDataErrors(validateLicensingData(vspDetails));
- validationResponse.setUploadDataErrors(validateUploadData(uploadData));
- validationResponse.setQuestionnaireValidationResult(
- validateQuestionnaire(vspDetails.getId(), vspDetails.getVersion()));
- validationResponse.setCompilationErrors(
- compile(vendorSoftwareProductId, vspDetails.getVersion(), serviceModel));
-
- if (validationResponse.isValid()) {
- newVersion = versioningManager
- .submit(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vendorSoftwareProductId, user, null);
- }
- //vendorSoftwareProductDao.updateVspLatestModificationTime(vendorSoftwareProductId, newVersion);
- return validationResponse;
- }
private Map<String, List<ErrorMessage>> compile(String vendorSoftwareProductId, Version version,
ToscaServiceModel serviceModel) {
- Collection<ComponentEntity> components = listComponents(vendorSoftwareProductId, version);
if (serviceModel == null) {
return null;
}
- if (CollectionUtils.isEmpty(components)) {
- enrichedServiceModelDao.storeServiceModel(vendorSoftwareProductId, version, serviceModel);
- return null;
- }
+
+ enrichedServiceModelDao.deleteAll(vendorSoftwareProductId, version);
+
EnrichmentManager<ToscaServiceModel> enrichmentManager =
EnrichmentManagerFactory.getInstance().createInterface();
- enrichmentManager.initInput(vendorSoftwareProductId, version);
- enrichmentManager.addModel(serviceModel);
-
- ComponentInfo componentInfo = new ComponentInfo();
- Map<String, List<ErrorMessage>> compileErrors = new HashMap<>();
- CompilationUtil.addMonitoringInfo(componentInfo, compileErrors);
- for (ComponentEntity componentEntity : components) {
- ComponentInfo currentEntityComponentInfo = new ComponentInfo();
- currentEntityComponentInfo.setCeilometerInfo(componentInfo.getCeilometerInfo());
- CompilationUtil
- .addMibInfo(vendorSoftwareProductId, version, componentEntity, currentEntityComponentInfo,
- compileErrors);
- enrichmentManager.addEntityInput(componentEntity.getComponentCompositionData().getName(),
- currentEntityComponentInfo);
+ enrichmentManager.init(vendorSoftwareProductId, version);
+ enrichmentManager.setModel(serviceModel);
+ Map<String, List<ErrorMessage>> enrichErrors = enrichmentManager.enrich();
- }
- Map<String, List<ErrorMessage>> enrichErrors;
- enrichErrors = enrichmentManager.enrich();
enrichedServiceModelDao
.storeServiceModel(vendorSoftwareProductId, version, enrichmentManager.getModel());
- if (enrichErrors != null) {
- compileErrors.putAll(enrichErrors);
- }
- vendorSoftwareProductDao.updateVspLatestModificationTime(vendorSoftwareProductId, version);
-
- return compileErrors;
+ return enrichErrors;
}
private Collection<ErrorCode> validateLicensingData(VspDetails vspDetails) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspDetails.getId());
+
if (vspDetails.getVendorId() == null || vspDetails.getVlmVersion() == null
|| vspDetails.getLicenseAgreement() == null
|| CollectionUtils.isEmpty(vspDetails.getFeatureGroups())) {
return null;
}
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspDetails.getId());
return vendorLicenseFacade
.validateLicensingData(vspDetails.getVendorId(), vspDetails.getVlmVersion(),
vspDetails.getLicenseAgreement(), vspDetails.getFeatureGroups());
}
@Override
- public VspDetails createNewVsp(VspDetails vspDetails, String user) {
- UniqueValueUtil.validateUniqueValue(
- VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
- vspDetails.getName());
- vspDetails.setId(CommonMethods.nextUuId());
+ public String fetchValidationVsp(String user) {
+ try {
+ validateUniqueName(VALIDATION_VSP_NAME);
+ } catch (Exception ignored) {
+ return VALIDATION_VSP_ID;
+ }
+ VspDetails validationVsp = new VspDetails();
+ validationVsp.setName(VALIDATION_VSP_NAME);
+ validationVsp.setId(VALIDATION_VSP_ID);
+ Version version = versioningManager.create(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ validationVsp.getId(),
+ user);
+ validationVsp.setVersion(version);
- // vspDetails.setLastModificationTime(new Date());
+ vspInfoDao.create(validationVsp);
+ createUniqueName(VALIDATION_VSP_NAME);
+ return VALIDATION_VSP_ID;
+ }
- Version version = versioningManager
- .create(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vspDetails.getId(), user);
- vspDetails.setVersion(version);
+ @Override
+ public VspDetails createVsp(VspDetails vspDetails, String user) {
+ mdcDataDebugMessage.debugEntryMessage(null);
- // vspDetails.setLastModificationTime(new Date());
+ validateUniqueName(vspDetails.getName());
- vendorSoftwareProductDao.createVendorSoftwareProductInfo(vspDetails);
- vendorSoftwareProductDao.updateQuestionnaire(vspDetails.getId(), version,
+ vspInfoDao.create(vspDetails);//id will be set in the dao
+ vspInfoDao.updateQuestionnaireData(vspDetails.getId(), null,
new JsonSchemaDataGenerator(getVspQuestionnaireSchema(null)).generateData());
- UniqueValueUtil
- .createUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
- vspDetails.getName());
+ Version version = versioningManager
+ .create(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vspDetails.getId(), user);
+ vspDetails.setVersion(version);
+ ActivityLogEntity activityLogEntity = new ActivityLogEntity(vspDetails.getId(), String
+ .valueOf(vspDetails.getVersion().getMajor() + 1),
+ ActivityType.CREATE_NEW.toString(), user, true, "", "");
+ activityLogManager.addActionLog(activityLogEntity, user);
+ String vspName = vspDetails.getName();
+ createUniqueName(vspName);
+ mdcDataDebugMessage.debugExitMessage(null);
return vspDetails;
}
@Override
- public List<VersionedVendorSoftwareProductInfo> getVspList(String versionFilter, String user) {
- Map<String, VersionInfo> idToVersionsInfo = versioningManager
- .listEntitiesVersionInfo(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, user,
- VersionableEntityAction.Read);
+ public List<VersionedVendorSoftwareProductInfo> listVsps(String versionFilter, String user) {
+ mdcDataDebugMessage.debugEntryMessage(null);
+
+ Map<String, VersionInfo> idToVersionsInfo = versioningManager.listEntitiesVersionInfo(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, user,
+ VersionableEntityAction.Read);
List<VersionedVendorSoftwareProductInfo> vsps = new ArrayList<>();
for (Map.Entry<String, VersionInfo> entry : idToVersionsInfo.entrySet()) {
@@ -398,260 +468,257 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
versionInfo.setLockingUser(null);
}
- VspDetails vsp = vendorSoftwareProductDao.getVendorSoftwareProductInfo(
- new VspDetails(entry.getKey(), entry.getValue().getActiveVersion()));
- if (vsp != null) {
+ Version version = versionInfo.getActiveVersion();
+ if (user.equals(versionInfo.getLockingUser())) {
+ version.setStatus(VersionStatus.Locked);
+ }
+ VspDetails vsp = vspInfoDao.get(new VspDetails(entry.getKey(), version));
+ if (vsp != null && !vsp.getId().equals(VALIDATION_VSP_ID)) {
vsp.setValidationDataStructure(null);
- vsps.add(new VersionedVendorSoftwareProductInfo(vsp, entry.getValue()));
+ vsps.add(new VersionedVendorSoftwareProductInfo(vsp, versionInfo));
}
}
sortVspListByModificationTimeDescOrder(vsps);
+
+ mdcDataDebugMessage.debugExitMessage(null);
+
return vsps;
}
@Override
public void updateVsp(VspDetails vspDetails, String user) {
- Version activeVersion =
- getVersionInfo(vspDetails.getId(), VersionableEntityAction.Write, user).getActiveVersion();
- vspDetails.setVersion(activeVersion);
- // vspDetails.setLastModificationTime(new Date());
-
- VspDetails retrieved = vendorSoftwareProductDao.getVendorSoftwareProductInfo(vspDetails);
- vspDetails.setValidationData(retrieved.getValidationData());
- UniqueValueUtil
- .updateUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
- retrieved.getName(), vspDetails.getName());
- vendorSoftwareProductDao.updateVendorSoftwareProductInfo(vspDetails);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspDetails.getId(), activeVersion);
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspDetails.getId());
+
+ VspDetails retrieved = vspInfoDao.get(vspDetails);
+
+ updateUniqueName(retrieved.getName(), vspDetails.getName());
+ vspDetails.setOldVersion(retrieved.getOldVersion());
+
+ vspInfoDao.update(vspDetails);
+ //vendorSoftwareProductDao.updateVspLatestModificationTime(vspDetails.getId(), activeVersion);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspDetails.getId());
}
+
@Override
- public VersionedVendorSoftwareProductInfo getVspDetails(String vspId, Version version,
- String user) {
- VersionInfo versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user);
- if (version == null) {
- version = versionInfo.getActiveVersion();
- } else {
- if (!versionInfo.getViewableVersions().contains(version)) {
- throw new CoreException(new RequestedVersionInvalidErrorBuilder().build());
- }
- }
+ public VspDetails getVsp(String vspId, Version version, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- VspDetails vendorSoftwareProductInfo =
- vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(vspId, version));
- if (vendorSoftwareProductInfo == null) {
+ VspDetails vsp = vspInfoDao.get(new VspDetails(vspId, version));
+ if (vsp == null) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.GET_VSP, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Requested VSP not found");
throw new CoreException(new VendorSoftwareProductNotFoundErrorBuilder(vspId).build());
}
- return new VersionedVendorSoftwareProductInfo(vendorSoftwareProductInfo, versionInfo);
+ vsp.setValidationData(orchestrationTemplateDao.getValidationData(vspId, version));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return vsp;
}
@Override
- public void deleteVsp(String vspId, String user) {
- throw new UnsupportedOperationException("Unsupported operation for 1607 release.");
+ public Version callAutoHeal(String vspId, VersionInfo versionInfo,
+ VspDetails vendorSoftwareProductInfo, String user)
+ throws Exception {
+ switch (versionInfo.getStatus()) {
+ case Locked:
+ if (user.equals(versionInfo.getLockingUser())) {
+ autoHeal(vspId, versionInfo.getActiveVersion(), vendorSoftwareProductInfo,
+ versionInfo.getLockingUser());
+ }
+ return versionInfo.getActiveVersion();
+ case Available:
+ Version checkoutVersion = checkout(vspId, user);
+ autoHeal(vspId, checkoutVersion, vendorSoftwareProductInfo, user);
+ return checkin(vspId, user);
+ case Final:
+ Version checkoutFinalVersion = checkout(vspId,user);
+ autoHeal(vspId, checkoutFinalVersion, vendorSoftwareProductInfo, user);
+ Version checkinFinalVersion = checkin(vspId,user);
+ ValidationResponse response = submit(vspId, user);
+ if(!response.isValid()) {
+ return checkout(vspId, user);
+ }
+
+ try {
+ Version finalVersion = checkinFinalVersion.calculateNextFinal();
+ createPackage(vspId, finalVersion, user);
+ return finalVersion;
+ } catch (IOException e) {
+ throw new Exception(e.getMessage());
+ }
+ }
+ return versionInfo.getActiveVersion();
}
@Override
- public UploadFileResponse uploadFile(String vspId, InputStream heatFileToUpload, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- UploadFileResponse uploadFileResponse = new UploadFileResponse();
-
- if (heatFileToUpload == null) {
- uploadFileResponse.addStructureError(AsdcCommon.UPLOAD_FILE,
- new ErrorMessage(ErrorLevel.ERROR,
- Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
- return uploadFileResponse;
- }
- InputStream uploadedFileData;
- FileContentHandler fileContentMap;
- Map<String, List<ErrorMessage>> errors = new HashMap<>();
- try {
- fileContentMap = getContent(heatFileToUpload, errors);
- if (!errors.isEmpty()) {
- return addStructureErrorsToResponse(uploadFileResponse, errors);
- }
+ public void deleteVsp(String vspId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- uploadedFileData = fileContentMap.getFileContent(UPLOAD_RAW_DATA);
- fileContentMap.remove(UPLOAD_RAW_DATA);
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.DELETE_VSP, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Unsupported operation");
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- ValidationManagerUtil.handleMissingManifest(fileContentMap, errors);
- if (!errors.isEmpty()) {
- return addStructureErrorsToResponse(uploadFileResponse, errors);
- }
+ throw new UnsupportedOperationException(
+ VendorSoftwareProductConstants.UNSUPPORTED_OPERATION_ERROR);
+ }
- } catch (CoreException ce) {
- ErrorMessage.ErrorMessageUtil.addMessage(AsdcCommon.UPLOAD_FILE, errors)
- .add(new ErrorMessage(ErrorLevel.ERROR, ce.getMessage()));
- return addStructureErrorsToResponse(uploadFileResponse, errors);
- }
+ @Override
+ public void heal(String vspId, Version version, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- HeatStructureTree tree = createAndValidateHeatTree(uploadFileResponse, fileContentMap);
+ VersionInfo versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user);
- deleteUploadDataAndContent(vspId, activeVersion);
- saveHotData(vspId, activeVersion, uploadedFileData, fileContentMap, tree);
+ version = VersionStatus.Locked.equals(versionInfo.getStatus())
+ ? versionInfo.getActiveVersion()
+ : checkout(vspId, user);
+ version.setStatus(VersionStatus.Locked);
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
+ healingManager.healAll(getHealingParamsAsMap(vspId, version, user));
- ToscaServiceModel toscaServiceModel =
- VendorSoftwareProductUtils.loadAndTranslateTemplateData(fileContentMap)
- .getToscaServiceModel();
- if (toscaServiceModel != null) {
- serviceModelDao.storeServiceModel(vspId, activeVersion, toscaServiceModel);
- saveCompositionData(vspId, activeVersion,
- CompositionDataExtractor.extractServiceCompositionData(toscaServiceModel));
- }
+ VspDetails vspDetails = new VspDetails(vspId, version);
+ vspDetails.setOldVersion(null);
+ vspInfoDao.updateOldVersionIndication(vspDetails);
- return uploadFileResponse;
+ logger.audit("Healed VSP " + vspDetails.getId());
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
}
- private UploadFileResponse addStructureErrorsToResponse(UploadFileResponse uploadFileResponse,
- Map<String, List<ErrorMessage>> errors) {
- uploadFileResponse.addStructureErrors(errors);
- return uploadFileResponse;
- }
+ private void autoHeal(String vspId, Version checkoutVersion, VspDetails vspDetails, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- private HeatStructureTree createAndValidateHeatTree(UploadFileResponse uploadFileResponse,
- FileContentHandler fileContentMap) {
- VendorSoftwareProductUtils.addFileNamesToUploadFileResponse(fileContentMap, uploadFileResponse);
- Map<String, List<ErrorMessage>> validationErrors =
- ValidationManagerUtil.initValidationManager(fileContentMap).validate();
- uploadFileResponse.getErrors().putAll(validationErrors);
-
- HeatTreeManager heatTreeManager = HeatTreeManagerUtil.initHeatTreeManager(fileContentMap);
- heatTreeManager.createTree();
- heatTreeManager.addErrors(validationErrors);
- return heatTreeManager.getTree();
- }
+ checkoutVersion.setStatus(VersionStatus.Locked);
+ Map<String, Object> healingParams = getHealingParamsAsMap(vspId, checkoutVersion, user);
+ healingManager.healAll(healingParams);
+ vspDetails.setVersion(checkoutVersion);
+ vspDetails.setOldVersion(null);
+ vspInfoDao.updateOldVersionIndication(vspDetails);
- private void saveHotData(String vspId, Version activeVersion, InputStream uploadedFileData,
- FileContentHandler fileContentMap, HeatStructureTree tree) {
- Map<String, Object> manifestAsMap = (Map<String, Object>) JsonUtil
- .json2Object(fileContentMap.getFileContent(AsdcCommon.MANIFEST_NAME), Map.class);
-
- UploadDataEntity uploadData = new UploadDataEntity(vspId, activeVersion);
- uploadData.setPackageName((String) manifestAsMap.get("name"));
- uploadData.setPackageVersion((String) manifestAsMap.get("version"));
- uploadData.setContentData(ByteBuffer.wrap(FileUtils.toByteArray(uploadedFileData)));
- uploadData.setValidationDataStructure(new ValidationStructureList(tree));
- vendorSoftwareProductDao.updateUploadData(uploadData);
- }
+ logger.audit("Healed VSP " + vspDetails.getName());
- private FileContentHandler getContent(InputStream heatFileToUpload,
- Map<String, List<ErrorMessage>> errors) {
- FileContentHandler contentMap = null;
- byte[] uploadedFileData;
- try {
- uploadedFileData = FileUtils.toByteArray(heatFileToUpload);
- VendorSoftwareProductUtils.validateRawZipData(uploadedFileData, errors);
- contentMap = VendorSoftwareProductUtils.loadUploadFileContent(uploadedFileData);
- VendorSoftwareProductUtils.validateContentZipData(contentMap, errors);
- contentMap.addFile(UPLOAD_RAW_DATA, uploadedFileData);
- } catch (IOException e0) {
- ErrorMessage.ErrorMessageUtil.addMessage(AsdcCommon.UPLOAD_FILE, errors)
- .add(new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage()));
- }
- return contentMap;
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
}
- private void validateMibZipContent(String vspId, Version version, byte[] uploadedFileData,
- Map<String, List<ErrorMessage>> errors) {
- FileContentHandler contentMap;
- try {
- contentMap = VendorSoftwareProductUtils.loadUploadFileContent(uploadedFileData);
- VendorSoftwareProductUtils.validateContentZipData(contentMap, errors);
- } catch (IOException e0) {
- throw new CoreException(
- new MibUploadErrorBuilder(vspId, version, Messages.INVALID_ZIP_FILE.getErrorMessage())
- .build());
- }
+ private Map<String, Object> getHealingParamsAsMap(String vspId, Version version, String user) {
+ Map<String, Object> healingParams = new HashMap<>();
+
+ healingParams.put(SdcCommon.VSP_ID, vspId);
+ healingParams.put(SdcCommon.VERSION, version);
+ healingParams.put(SdcCommon.USER, user);
+
+ return healingParams;
}
@Override
public List<PackageInfo> listPackages(String category, String subCategory) {
- return vendorSoftwareProductDao.listPackages(category, subCategory);
+ return packageInfoDao.listByCategory(category, subCategory);
}
@Override
public File getTranslatedFile(String vspId, Version version, String user) {
- VersionInfo versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user);
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+ String errorMessage;
if (version == null) {
- if (versionInfo.getLatestFinalVersion() == null) {
- throw new CoreException(new PackageNotFoundErrorBuilder(vspId).build());
- }
- version = versionInfo.getLatestFinalVersion();
- } else {
- if (!version.isFinal() || !versionInfo.getViewableVersions().contains(version)) {
- throw new CoreException(new RequestedVersionInvalidErrorBuilder().build());
- }
+ errorMessage = "Package not found";
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ throw new CoreException(new PackageNotFoundErrorBuilder(vspId).build());
+ } else if (!version.isFinal()) {
+ errorMessage = "Invalid requested version";
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.GET_VERSION_INFO, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ throw new CoreException(new RequestedVersionInvalidErrorBuilder().build());
}
PackageInfo packageInfo =
- vendorSoftwareProductDao.getPackageInfo(new PackageInfo(vspId, version));
+ packageInfoDao.get(new PackageInfo(vspId, version));
if (packageInfo == null) {
+ errorMessage = "Package not found";
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
throw new CoreException(new PackageNotFoundErrorBuilder(vspId, version).build());
}
ByteBuffer translatedFileBuffer = packageInfo.getTranslatedFile();
if (translatedFileBuffer == null) {
+ errorMessage = "Package not found";
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
throw new CoreException(new PackageInvalidErrorBuilder(vspId, version).build());
}
- File translatedFile = new File(VSP_PACKAGE_ZIP);
+ File translatedFile = new File(VendorSoftwareProductConstants.VSP_PACKAGE_ZIP);
try {
FileOutputStream fos = new FileOutputStream(translatedFile);
fos.write(translatedFileBuffer.array());
fos.close();
- } catch (IOException e0) {
- throw new CoreException(new TranslationFileCreationErrorBuilder(vspId, version).build(), e0);
+ } catch (IOException exception) {
+ errorMessage = "Can't create package";
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ throw new CoreException(new TranslationFileCreationErrorBuilder(vspId, version).build(),
+ exception);
}
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+
return translatedFile;
}
@Override
- public File getLatestHeatPackage(String vspId,
- String user) { //todo remove the writing to file system..
- VersionInfo versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user);
- Version version = versionInfo.getActiveVersion();
- UploadDataEntity uploadData =
- vendorSoftwareProductDao.getUploadData(new UploadDataEntity(vspId, version));
+ public byte[] getOrchestrationTemplateFile(String vspId, Version version, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+ UploadDataEntity uploadData = orchestrationTemplateDao.getOrchestrationTemplate(vspId, version);
ByteBuffer contentData = uploadData.getContentData();
if (contentData == null) {
return null;
}
- File heatPkgFile = new File(String.format("heats-for-%s.zip", vspId));
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
- try {
- FileOutputStream fos = new FileOutputStream(heatPkgFile);
- fos.write(contentData.array());
- fos.close();
- } catch (IOException e0) {
- throw new CoreException(new FileCreationErrorBuilder(vspId).build(), e0);
+ try (final ZipOutputStream zos = new ZipOutputStream(baos);
+ ZipInputStream zipStream = new ZipInputStream(
+ new ByteArrayInputStream(contentData.array()))) {
+ zos.write(contentData.array());
+ } catch (IOException exception) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.GET_UPLOADED_HEAT, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Can't get uploaded HEAT");
+ throw new CoreException(new FileCreationErrorBuilder(vspId).build(), exception);
}
- return heatPkgFile;
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return baos.toByteArray();
}
@Override
- public PackageInfo createPackage(String vspId, String user) throws IOException {
- VersionInfo versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user);
- Version activeVersion = versionInfo.getActiveVersion();
- if (!activeVersion.isFinal()) {
+ public PackageInfo createPackage(String vspId, Version version, String user) throws IOException {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+
+ if (!version.isFinal()) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_PACKAGE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't create package");
throw new CoreException(
- new CreatePackageForNonFinalVendorSoftwareProductErrorBuilder(vspId, activeVersion)
+ new CreatePackageForNonFinalVendorSoftwareProductErrorBuilder(vspId, version)
.build());
}
- ToscaServiceModel toscaServiceModel =
- enrichedServiceModelDao.getServiceModel(vspId, activeVersion);
- VspDetails vspDetails =
- vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(vspId, activeVersion));
+ ToscaServiceModel toscaServiceModel = enrichedServiceModelDao.getServiceModel(vspId, version);
+ VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version));
Version vlmVersion = vspDetails.getVlmVersion();
PackageInfo packageInfo = createPackageInfo(vspId, vspDetails);
@@ -665,10 +732,9 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
packageInfo.setTranslatedFile(ByteBuffer.wrap(
toscaServiceTemplateServiceCsar.createOutputFile(toscaServiceModel, licenseArtifacts)));
- vendorSoftwareProductDao.insertPackageDetails(packageInfo);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, vspDetails.getVersion());
+ packageInfoDao.create(packageInfo);
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
return packageInfo;
}
@@ -676,789 +742,46 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
PackageInfo packageInfo = new PackageInfo();
packageInfo.setVspId(vspId);
packageInfo.setVersion(vspDetails.getVersion());
- packageInfo.setDisplayName(vspDetails.getPackageName());
packageInfo.setVspName(vspDetails.getName());
packageInfo.setVspDescription(vspDetails.getDescription());
packageInfo.setCategory(vspDetails.getCategory());
packageInfo.setSubCategory(vspDetails.getSubCategory());
packageInfo.setVendorName(vspDetails.getVendorName());
- packageInfo.setPackageType(CSAR);
+ packageInfo.setPackageType(VendorSoftwareProductConstants.CSAR);
packageInfo.setVendorRelease("1.0"); //todo TBD
return packageInfo;
}
@Override
- public QuestionnaireResponse getVspQuestionnaire(String vspId, Version version, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
-
- QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
- questionnaireResponse.setData(getVspQuestionnaire(vspId, version).getQuestionnaireData());
- questionnaireResponse.setSchema(getVspQuestionnaireSchema(null));
- return questionnaireResponse;
- }
+ public QuestionnaireResponse getVspQuestionnaire(String vspId, Version version, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- private VspQuestionnaireEntity getVspQuestionnaire(String vspId, Version version) {
- VspQuestionnaireEntity retrieved = vendorSoftwareProductDao.getQuestionnaire(vspId, version);
+ VspQuestionnaireEntity retrieved = vspInfoDao.getQuestionnaire(vspId, version);
VersioningUtil.validateEntityExistence(retrieved, new VspQuestionnaireEntity(vspId, version),
VspDetails.ENTITY_TYPE);
- return retrieved;
- }
-
- @Override
- public void updateVspQuestionnaire(String vspId, String questionnaireData, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
-
- vendorSoftwareProductDao.updateQuestionnaire(vspId, activeVersion, questionnaireData);
- }
-
- @Override
- public Collection<NetworkEntity> listNetworks(String vspId, Version version, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- return listNetworks(vspId, version);
- }
-
- private Collection<NetworkEntity> listNetworks(String vspId, Version version) {
- return vendorSoftwareProductDao.listNetworks(vspId, version);
- }
-
- @Override
- public NetworkEntity createNetwork(NetworkEntity network, String user) {
- Version activeVersion =
- getVersionInfo(network.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
- network.setVersion(activeVersion);
- if (!isManual(network.getVspId(), activeVersion)) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
- .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(network.getVspId(), activeVersion);
- return null;
- }
-
- private NetworkEntity createNetwork(NetworkEntity network) {
- network.setId(CommonMethods.nextUuId());
- vendorSoftwareProductDao.createNetwork(network);
-
- return network;
- }
-
- @Override
- public CompositionEntityValidationData updateNetwork(NetworkEntity network, String user) {
- Version activeVersion =
- getVersionInfo(network.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
- network.setVersion(activeVersion);
- NetworkEntity retrieved = getNetwork(network.getVspId(), activeVersion, network.getId());
-
- NetworkCompositionSchemaInput schemaInput = new NetworkCompositionSchemaInput();
- schemaInput.setManual(isManual(network.getVspId(), activeVersion));
- schemaInput.setNetwork(retrieved.getNetworkCompositionData());
-
- CompositionEntityValidationData validationData = CompositionEntityDataManager
- .validateEntity(network, SchemaTemplateContext.composition, schemaInput);
- if (CollectionUtils.isEmpty(validationData.getErrors())) {
- vendorSoftwareProductDao.updateNetwork(network);
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(network.getVspId(), activeVersion);
-
- return validationData;
- }
-
- @Override
- public CompositionEntityResponse<Network> getNetwork(String vspId, Version version,
- String networkId, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- NetworkEntity networkEntity = getNetwork(vspId, version, networkId);
- Network network = networkEntity.getNetworkCompositionData();
-
- NetworkCompositionSchemaInput schemaInput = new NetworkCompositionSchemaInput();
- schemaInput.setManual(isManual(vspId, version));
- schemaInput.setNetwork(network);
-
- CompositionEntityResponse<Network> response = new CompositionEntityResponse<>();
- response.setId(networkId);
- response.setData(network);
- response.setSchema(SchemaGenerator
- .generate(SchemaTemplateContext.composition, CompositionEntityType.network, schemaInput));
-
- return response;
- }
-
- private NetworkEntity getNetwork(String vspId, Version version, String networkId) {
- NetworkEntity retrieved = vendorSoftwareProductDao.getNetwork(vspId, version, networkId);
- VersioningUtil.validateEntityExistence(retrieved, new NetworkEntity(vspId, version, networkId),
- VspDetails.ENTITY_TYPE);
- return retrieved;
- }
-
- @Override
- public void deleteNetwork(String vspId, String networkId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- if (!isManual(vspId, activeVersion)) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
- .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
- }
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public QuestionnaireResponse getComponentQuestionnaire(String vspId, Version version,
- String componentId, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
+ String questionnaireData = retrieved.getQuestionnaireData();
QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
- questionnaireResponse.setData(getComponent(vspId, version, componentId).getQuestionnaireData());
- List<String> nicNames = listNics(vspId, version, componentId).stream()
- .map(nic -> nic.getNicCompositionData().getName()).collect(Collectors.toList());
- questionnaireResponse.setSchema(getComponentQuestionnaireSchema(
- new ComponentQuestionnaireSchemaInput(nicNames,
- JsonUtil.json2Object(questionnaireResponse.getData(), Map.class))));
-
- return questionnaireResponse;
- }
-
- @Override
- public void updateComponentQuestionnaire(String vspId, String componentId,
- String questionnaireData, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- getComponent(vspId, activeVersion, componentId);
-
- vendorSoftwareProductDao
- .updateComponentQuestionnaire(vspId, activeVersion, componentId, questionnaireData);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public Collection<ComponentEntity> listComponents(String vspId, Version version, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- return listComponents(vspId, version);
- }
-
- private Collection<ComponentEntity> listComponents(String vspId, Version version) {
- return vendorSoftwareProductDao.listComponents(vspId, version);
- }
-
- @Override
- public void deleteComponents(String vspId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- if (!isManual(vspId, activeVersion)) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
- .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public ComponentEntity createComponent(ComponentEntity component, String user) {
- Version activeVersion =
- getVersionInfo(component.getVspId(), VersionableEntityAction.Write, user)
- .getActiveVersion();
- component.setVersion(activeVersion);
-
- if (!isManual(component.getVspId(), activeVersion)) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
- .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
-
- }
-
- /* ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
- schemaInput.setManual(true);
- CompositionEntityValidationData validationData = CompositionEntityDataManager
- .validateEntity(component, SchemaTemplateContext.composition, schemaInput);
- if (CollectionUtils.isEmpty(validationData.getErrors())) {
- return createComponent(component);
- }
- return validationData;*/
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(component.getVspId(), activeVersion);
-
- return null;
- }
-
- private ComponentEntity createComponent(ComponentEntity component) {
- component.setId(CommonMethods.nextUuId());
- component.setQuestionnaireData(
- new JsonSchemaDataGenerator(getComponentQuestionnaireSchema(null)).generateData());
-
- vendorSoftwareProductDao.createComponent(component);
-
- return component;
- }
-
- @Override
- public CompositionEntityResponse<ComponentData> getComponent(String vspId, Version version,
- String componentId, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- ComponentEntity componentEntity = getComponent(vspId, version, componentId);
- ComponentData component = componentEntity.getComponentCompositionData();
-
- ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
- schemaInput.setManual(isManual(vspId, version));
- schemaInput.setComponent(component);
-
- CompositionEntityResponse<ComponentData> response = new CompositionEntityResponse<>();
- response.setId(componentId);
- response.setData(component);
- response.setSchema(SchemaGenerator
- .generate(SchemaTemplateContext.composition, CompositionEntityType.component, schemaInput));
-
- return response;
- }
-
- private ComponentEntity getComponent(String vspId, Version version, String componentId) {
- ComponentEntity retrieved = vendorSoftwareProductDao.getComponent(vspId, version, componentId);
- VersioningUtil
- .validateEntityExistence(retrieved, new ComponentEntity(vspId, version, componentId),
- VspDetails.ENTITY_TYPE);
- return retrieved;
- }
-
- @Override
- public CompositionEntityValidationData updateComponent(ComponentEntity component, String user) {
- Version activeVersion =
- getVersionInfo(component.getVspId(), VersionableEntityAction.Write, user)
- .getActiveVersion();
- component.setVersion(activeVersion);
- ComponentEntity retrieved =
- getComponent(component.getVspId(), activeVersion, component.getId());
-
- ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
- schemaInput.setManual(isManual(component.getVspId(), activeVersion));
- schemaInput.setComponent(retrieved.getComponentCompositionData());
-
- CompositionEntityValidationData validationData = CompositionEntityDataManager
- .validateEntity(component, SchemaTemplateContext.composition, schemaInput);
- if (CollectionUtils.isEmpty(validationData.getErrors())) {
- vendorSoftwareProductDao.updateComponent(component);
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(component.getVspId(), activeVersion);
-
- return validationData;
- }
-
- @Override
- public void deleteComponent(String vspId, String componentId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- if (!isManual(vspId, activeVersion)) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
- .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity> listProcesses(
- String vspId, Version version, String componentId,
- String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- if (!GENERAL_COMPONENT_ID.equals(componentId)) {
- getComponent(vspId, version, componentId);
- }
- return vendorSoftwareProductDao.listProcesses(vspId, version, componentId);
- }
-
- @Override
- public void deleteProcesses(String vspId, String componentId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- if (!GENERAL_COMPONENT_ID.equals(componentId)) {
- getComponent(vspId, activeVersion, componentId);
- }
-
- Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity> processes =
- vendorSoftwareProductDao.listProcesses(vspId, activeVersion, componentId);
- for (org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity process : processes) {
- UniqueValueUtil.deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME,
- process.getVspId(), process.getVersion().toString(), process.getComponentId(),
- process.getName());
- }
-
- vendorSoftwareProductDao.deleteProcesses(vspId, activeVersion, componentId);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity createProcess(
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity process, String user) {
- Version activeVersion =
- getVersionInfo(process.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
- process.setVersion(activeVersion);
- UniqueValueUtil.validateUniqueValue(VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME,
- process.getVspId(), process.getVersion().toString(), process.getComponentId(),
- process.getName());
- process.setId(CommonMethods.nextUuId());
- if (!GENERAL_COMPONENT_ID.equals(process.getComponentId())) {
- getComponent(process.getVspId(), activeVersion, process.getComponentId());
- }
-
- vendorSoftwareProductDao.createProcess(process);
- UniqueValueUtil.createUniqueValue(VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME,
- process.getVspId(), process.getVersion().toString(), process.getComponentId(),
- process.getName());
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(process.getVspId(), activeVersion);
- return process;
- }
-
- @Override
- public org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity getProcess(String vspId,
- Version version,
- String componentId,
- String processId,
- String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity retrieved =
- vendorSoftwareProductDao.getProcess(vspId, version, componentId, processId);
- validateProcessExistence(vspId, version, componentId, processId, retrieved);
- return retrieved;
- }
-
- @Override
- public void updateProcess(org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity process,
- String user) {
- Version activeVersion =
- getVersionInfo(process.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
- process.setVersion(activeVersion);
-
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity retrieved =
- vendorSoftwareProductDao
- .getProcess(process.getVspId(), activeVersion, process.getComponentId(),
- process.getId());
- validateProcessExistence(process.getVspId(), activeVersion, process.getComponentId(),
- process.getId(), retrieved);
-
- UniqueValueUtil.updateUniqueValue(VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME,
- retrieved.getName(), process.getName(), process.getVspId(), process.getVersion().toString(),
- process.getComponentId());
- vendorSoftwareProductDao.updateProcess(process);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(process.getVspId(), activeVersion);
- }
-
- @Override
- public void deleteProcess(String vspId, String componentId, String processId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity retrieved =
- vendorSoftwareProductDao.getProcess(vspId, activeVersion, componentId, processId);
- validateProcessExistence(vspId, activeVersion, componentId, processId, retrieved);
-
- vendorSoftwareProductDao.deleteProcess(vspId, activeVersion, componentId, processId);
- UniqueValueUtil.deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME,
- retrieved.getVspId(), retrieved.getVersion().toString(), retrieved.getComponentId(),
- retrieved.getName());
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public File getProcessArtifact(String vspId, Version version, String componentId,
- String processId, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- ProcessArtifactEntity retrieved =
- vendorSoftwareProductDao.getProcessArtifact(vspId, version, componentId, processId);
- validateProcessArtifactExistence(vspId, version, componentId, processId, retrieved);
-
- File file = new File(String
- .format("%s_%s_%s_%s", vspId, version.toString().replace('.', '_'), componentId,
- processId));
- try {
- FileOutputStream fos = new FileOutputStream(file);
- fos.write(retrieved.getArtifact().array());
- fos.close();
- } catch (IOException e0) {
- throw new CoreException(new UploadInvalidErrorBuilder().build());
- }
-
- return file;
- }
-
- @Override
- public void deleteProcessArtifact(String vspId, String componentId, String processId,
- String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- ProcessArtifactEntity retrieved =
- vendorSoftwareProductDao.getProcessArtifact(vspId, activeVersion, componentId, processId);
- validateProcessArtifactExistence(vspId, activeVersion, componentId, processId, retrieved);
-
- vendorSoftwareProductDao.deleteProcessArtifact(vspId, activeVersion, componentId, processId);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public void uploadProcessArtifact(InputStream artifactFile, String artifactFileName, String vspId,
- String componentId, String processId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity retrieved =
- vendorSoftwareProductDao.getProcess(vspId, activeVersion, componentId, processId);
- validateProcessExistence(vspId, activeVersion, componentId, processId, retrieved);
-
- if (artifactFile == null) {
- throw new CoreException(new UploadInvalidErrorBuilder().build());
- }
-
- byte[] artifact;
- try {
- artifact = FileUtils.toByteArray(artifactFile);
- } catch (RuntimeException e0) {
- throw new CoreException(new UploadInvalidErrorBuilder().build());
- }
-
- vendorSoftwareProductDao
- .uploadProcessArtifact(vspId, activeVersion, componentId, processId, artifact,
- artifactFileName);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity> listNics(
- String vspId, Version version, String componentId,
- String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity> nics =
- listNics(vspId, version, componentId);
-
- Map<String, String> networksNameById = listNetworksNameById(vspId, version);
- nics.stream().forEach(nicEntity -> {
- Nic nic = nicEntity.getNicCompositionData();
- nic.setNetworkName(networksNameById.get(nic.getNetworkId()));
- nicEntity.setNicCompositionData(nic);
- });
- return nics;
- }
-
- private Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity> listNics(
- String vspId, Version version, String componentId) {
- getComponent(vspId, version, componentId);
-
- return vendorSoftwareProductDao.listNics(vspId, version, componentId);
- }
-
- private Map<String, String> listNetworksNameById(String vspId, Version version) {
- Collection<NetworkEntity> networks = listNetworks(vspId, version);
- return networks.stream().collect(Collectors.toMap(NetworkEntity::getId,
- networkEntity -> networkEntity.getNetworkCompositionData().getName()));
- }
-
- @Override
- public org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity createNic(
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nic, String user) {
- Version activeVersion =
- getVersionInfo(nic.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
- nic.setVersion(activeVersion);
- if (!isManual(nic.getVspId(), activeVersion)) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
- .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(nic.getVspId(), activeVersion);
-
- return null;
- }
-
- private org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity createNic(
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nic) {
- nic.setId(CommonMethods.nextUuId());
- nic.setQuestionnaireData(
- new JsonSchemaDataGenerator(getNicQuestionnaireSchema(null)).generateData());
-
- vendorSoftwareProductDao.createNic(nic);
-
- return nic;
- }
-
- @Override
- public CompositionEntityResponse<Nic> getNic(String vspId, Version version, String componentId,
- String nicId, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity
- nicEntity = getNic(vspId, version, componentId, nicId);
- Nic nic = nicEntity.getNicCompositionData();
-
- NicCompositionSchemaInput schemaInput = new NicCompositionSchemaInput();
- schemaInput.setManual(isManual(vspId, version));
- schemaInput.setNic(nic);
- Map<String, String> networksNameById = listNetworksNameById(vspId, version);
- nic.setNetworkName(networksNameById.get(nic.getNetworkId()));
- schemaInput.setNetworkIds(networksNameById.keySet());
-
- CompositionEntityResponse<Nic> response = new CompositionEntityResponse<>();
- response.setId(nicId);
- response.setData(nic);
- response.setSchema(SchemaGenerator
- .generate(SchemaTemplateContext.composition, CompositionEntityType.nic, schemaInput));
-
- return response;
- }
-
- private org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity getNic(String vspId,
- Version version,
- String componentId,
- String nicId) {
- getComponent(vspId, version, componentId);
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity
- retrieved = vendorSoftwareProductDao.getNic(vspId, version, componentId, nicId);
- VersioningUtil
- .validateEntityExistence(retrieved,
- new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vspId, version,
- componentId, nicId),
- VspDetails.ENTITY_TYPE);
- return retrieved;
- }
-
- @Override
- public void deleteNic(String vspId, String componentId, String nicId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- if (!isManual(vspId, activeVersion)) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
- .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public CompositionEntityValidationData updateNic(
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nic, String user) {
- Version activeVersion =
- getVersionInfo(nic.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
- nic.setVersion(activeVersion);
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity
- retrieved = getNic(nic.getVspId(), activeVersion, nic.getComponentId(), nic.getId());
-
- NicCompositionSchemaInput schemaInput = new NicCompositionSchemaInput();
- schemaInput.setManual(isManual(nic.getVspId(), activeVersion));
- schemaInput.setNic(retrieved.getNicCompositionData());
-
- CompositionEntityValidationData validationData = CompositionEntityDataManager
- .validateEntity(nic, SchemaTemplateContext.composition, schemaInput);
- if (CollectionUtils.isEmpty(validationData.getErrors())) {
- vendorSoftwareProductDao.updateNic(nic);
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(nic.getVspId(), activeVersion);
- return validationData;
- }
-
- @Override
- public QuestionnaireResponse getNicQuestionnaire(String vspId, Version version,
- String componentId, String nicId, String user) {
- version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
+ questionnaireResponse.setData(questionnaireData);
+ questionnaireResponse.setSchema(getVspQuestionnaireSchema(null));
- QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
- questionnaireResponse
- .setData(getNic(vspId, version, componentId, nicId).getQuestionnaireData());
- questionnaireResponse.setSchema(getNicQuestionnaireSchema(null));
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
return questionnaireResponse;
}
@Override
- public void updateNicQuestionnaire(String vspId, String componentId, String nicId,
- String questionnaireData, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- getNic(vspId, activeVersion, componentId, nicId);
-
- vendorSoftwareProductDao
- .updateNicQuestionnaire(vspId, activeVersion, componentId, nicId, questionnaireData);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public void deleteComponentMib(String vspId, String componentId, boolean isTrap, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- ComponentArtifactEntity componentArtifactEntity =
- setValuesForComponentArtifactEntityUpload(vspId, activeVersion, null, componentId, null,
- isTrap, null);
- ComponentArtifactEntity retrieved =
- componentArtifactDao.getArtifactByType(componentArtifactEntity);
-
- componentArtifactDao.delete(retrieved);
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- @Override
- public void uploadComponentMib(InputStream object, String filename, String vspId,
- String componentId, boolean isTrap, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
- ComponentArtifactEntity componentArtifactEntity;
-
-
- if (object == null) {
- throw new CoreException(new MibUploadErrorBuilder(
- Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()).build());
- } else {
- byte[] uploadedFileData;
- Map<String, List<ErrorMessage>> errors = new HashMap<>();
- try {
- uploadedFileData = FileUtils.toByteArray(object);
- validateMibZipContent(vspId, activeVersion, uploadedFileData, errors);
- if (MapUtils.isNotEmpty(errors)) {
- throw new CoreException(
- new MibUploadErrorBuilder(errors.values().iterator().next().get(0).getMessage())
- .build());
- }
-
- createArtifactInDatabase(vspId, activeVersion, filename, componentId, isTrap,
- uploadedFileData);
-
- } catch (Exception e0) {
- throw new CoreException(new MibUploadErrorBuilder(e0.getMessage()).build());
- }
- }
-
- vendorSoftwareProductDao.updateVspLatestModificationTime(vspId, activeVersion);
- }
-
- private void createArtifactInDatabase(String vspId, Version activeVersion, String filename,
- String componentId, boolean isTrap,
- byte[] uploadedFileData) {
- ComponentArtifactEntity componentArtifactEntity;
-
- String artifactId = CommonMethods.nextUuId();
- componentArtifactEntity =
- setValuesForComponentArtifactEntityUpload(vspId, activeVersion, filename, componentId,
- artifactId, isTrap, uploadedFileData);
- componentArtifactDao.update(componentArtifactEntity);
- }
-
- @Override
- public MibUploadStatus listMibFilenames(String vspId, String componentId, String user) {
- Version activeVersion =
- getVersionInfo(vspId, VersionableEntityAction.Read, user).getActiveVersion();
- ComponentArtifactEntity current =
- new ComponentArtifactEntity(vspId, activeVersion, componentId, null);
-
- return setMibUploadStatusValues(current);
-
- }
-
- private MibUploadStatus setMibUploadStatusValues(
- ComponentArtifactEntity componentArtifactEntity) {
- MibUploadStatus mibUploadStatus = new MibUploadStatus();
-
- Collection<ComponentArtifactEntity> artifactNames =
- componentArtifactDao.getArtifactNamesAndTypesForComponent(componentArtifactEntity);
- Map<ComponentArtifactType, String> artifactTypeToFilename =
- VendorSoftwareProductUtils.filterNonTrapOrPollArtifacts(artifactNames);
-
- if (MapUtils.isNotEmpty(artifactTypeToFilename)) {
- if (artifactTypeToFilename.containsKey(ComponentArtifactType.SNMP_TRAP)) {
- mibUploadStatus.setSnmpTrap(artifactTypeToFilename.get(ComponentArtifactType.SNMP_TRAP));
- }
- if (artifactTypeToFilename.containsKey(ComponentArtifactType.SNMP_POLL)) {
- mibUploadStatus.setSnmpPoll(artifactTypeToFilename.get(ComponentArtifactType.SNMP_POLL));
- }
- }
-
- return mibUploadStatus;
- }
-
- private ComponentArtifactEntity setValuesForComponentArtifactEntityUpload(String vspId,
- Version version,
- String filename,
- String componentId,
- String artifactId,
- boolean isTrap,
- byte[]
- uploadedFileData) {
- ComponentArtifactEntity componentArtifactEntity = new ComponentArtifactEntity();
-
- componentArtifactEntity.setVspId(vspId);
- componentArtifactEntity.setVersion(version);
- componentArtifactEntity.setComponentId(componentId);
- componentArtifactEntity.setId(artifactId);
- componentArtifactEntity.setType(ComponentArtifactType.getComponentArtifactType(isTrap));
- componentArtifactEntity.setArtifactName(filename);
-
- if (Objects.nonNull(uploadedFileData)) {
- componentArtifactEntity.setArtifact(ByteBuffer.wrap(uploadedFileData));
- }
+ public void updateVspQuestionnaire(String vspId, Version version, String questionnaireData,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- return componentArtifactEntity;
- }
+ vspInfoDao.updateQuestionnaireData(vspId, version, questionnaireData);
- private void validateProcessExistence(String vspId, Version version, String componentId,
- String processId,
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity retrieved) {
- if (retrieved != null) {
- return;
- }
- if (!GENERAL_COMPONENT_ID.equals(componentId)) {
- getComponent(vspId, version, componentId);
- }
- VersioningUtil.validateEntityExistence(retrieved,
- new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vspId, version,
- componentId, processId),
- VspDetails.ENTITY_TYPE);//todo retrieved is always null ??
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
}
- private void validateProcessArtifactExistence(String vspId, Version version, String componentId,
- String processId, ProcessArtifactEntity retrieved) {
- if (retrieved != null) {
- VersioningUtil.validateEntityExistence(retrieved.getArtifact(),
- new ProcessArtifactEntity(vspId, version, componentId, processId),
- VspDetails.ENTITY_TYPE);
- } else {
- if (!GENERAL_COMPONENT_ID.equals(componentId)) {
- getComponent(vspId, version, componentId);
- }
- VersioningUtil.validateEntityExistence(retrieved,
- new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vspId, version,
- componentId, processId),
- VspDetails.ENTITY_TYPE); //todo retrieved is always null ??
- }
- }
private Map<String, List<ErrorMessage>> validateUploadData(UploadDataEntity uploadData)
throws IOException {
@@ -1467,7 +790,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
}
FileContentHandler fileContentMap =
- VendorSoftwareProductUtils.loadUploadFileContent(uploadData.getContentData().array());
+ CommonUtil.loadUploadFileContent(uploadData.getContentData().array());
+ //todo - check
ValidationManager validationManager =
ValidationManagerUtil.initValidationManager(fileContentMap);
Map<String, List<ErrorMessage>> validationErrors = validationManager.validate();
@@ -1479,77 +803,36 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
private VersionInfo getVersionInfo(String vendorSoftwareProductId, VersionableEntityAction action,
String user) {
- return versioningManager
- .getEntityVersionInfo(VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vendorSoftwareProductId,
- user, action);
+ return versioningManager.getEntityVersionInfo(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user, action);
}
- private void saveCompositionData(String vspId, Version version, CompositionData compositionData) {
- Map<String, String> networkIdByName = new HashMap<>();
- for (Network network : compositionData.getNetworks()) {
-
- NetworkEntity networkEntity = new NetworkEntity(vspId, version, null);
- networkEntity.setNetworkCompositionData(network);
-
- if (network.getName() != null) {
- networkIdByName.put(network.getName(), createNetwork(networkEntity).getId());
- }
- }
- for (Component component : compositionData.getComponents()) {
- ComponentEntity componentEntity = new ComponentEntity(vspId, version, null);
- componentEntity.setComponentCompositionData(component.getData());
-
- String componentId = createComponent(componentEntity).getId();
-
- if (CollectionUtils.isNotEmpty(component.getNics())) {
- for (Nic nic : component.getNics()) {
- if (nic.getNetworkName() != null) {
- nic.setNetworkId(networkIdByName.get(nic.getNetworkName()));
- nic.setNetworkName(null);
- }
-
- org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity
- nicEntity =
- new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vspId, version,
- componentId, null);
- nicEntity.setNicCompositionData(nic);
- createNic(nicEntity);
- }
- }
- }
- }
+ private QuestionnaireValidationResult validateQuestionnaire(String vspId, Version version) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- private void deleteUploadDataAndContent(String vspId, Version version) {
- vendorSoftwareProductDao.deleteUploadData(vspId, version);
- }
- private QuestionnaireValidationResult validateQuestionnaire(String vspId, Version version) {
- CompositionEntityDataManager compositionEntityDataManager = new CompositionEntityDataManager();
compositionEntityDataManager
- .addEntity(vendorSoftwareProductDao.getQuestionnaire(vspId, version), null);
+ .addEntity(vspInfoDao.getQuestionnaire(vspId, version), null);
- Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity> nics =
- vendorSoftwareProductDao.listNicsByVsp(vspId, version);
+ Collection<NicEntity> nics = vendorSoftwareProductDao.listNicsByVsp(vspId, version);
Map<String, List<String>> nicNamesByComponent = new HashMap<>();
- for (org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nicEntity : nics) {
+ for (NicEntity nicEntity : nics) {
compositionEntityDataManager.addEntity(nicEntity, null);
Nic nic = nicEntity.getNicCompositionData();
if (nic != null && nic.getName() != null) {
- List<String> nicNames = nicNamesByComponent.get(nicEntity.getComponentId());
- if (nicNames == null) {
- nicNames = new ArrayList<>();
- nicNamesByComponent.put(nicEntity.getComponentId(), nicNames);
- }
+ List<String> nicNames =
+ nicNamesByComponent.computeIfAbsent(nicEntity.getComponentId(), k -> new ArrayList<>());
nicNames.add(nic.getName());
}
}
Collection<ComponentEntity> components =
- vendorSoftwareProductDao.listComponentsQuestionnaire(vspId, version);
- components.stream().forEach(component -> compositionEntityDataManager.addEntity(component,
+ vendorSoftwareProductDao.listComponentsCompositionAndQuestionnaire(vspId, version);
+ components.forEach(component -> compositionEntityDataManager.addEntity(component,
new ComponentQuestionnaireSchemaInput(nicNamesByComponent.get(component.getId()),
JsonUtil.json2Object(component.getQuestionnaireData(), Map.class))));
@@ -1558,10 +841,62 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (MapUtils.isNotEmpty(errorsByEntityId)) {
compositionEntityDataManager.buildTrees();
compositionEntityDataManager.addErrorsToTrees(errorsByEntityId);
- Collection<CompositionEntityValidationData> roots = compositionEntityDataManager.getTrees();
- return new QuestionnaireValidationResult(roots.iterator().next());
+/* Set<CompositionEntityValidationData> entitiesWithValidationErrors =
+ compositionEntityDataManager.getEntityListWithErrors();*/
+ //Collection<CompositionEntityValidationData> roots = compositionEntityDataManager.getTrees();
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return new QuestionnaireValidationResult(
+ compositionEntityDataManager.getAllErrorsByVsp(vspId));
}
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
return null;
}
+
+ @Override
+ public File getInformationArtifact(String vspId, Version version, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+ VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version));
+
+ if (vspDetails == null) {
+ return null;
+ }
+
+ String vspName = vspDetails.getName();
+ ByteBuffer infoArtifactAsByteBuffer;
+ File infoArtifactFile;
+ try {
+ infoArtifactAsByteBuffer = ByteBuffer.wrap(informationArtifactGenerator.generate(vspId,
+ version).getBytes());
+
+ infoArtifactFile =
+ new File(
+ String.format(VendorSoftwareProductConstants.INFORMATION_ARTIFACT_NAME, vspName));
+ OutputStream out = new BufferedOutputStream(new FileOutputStream(infoArtifactFile));
+ out.write(infoArtifactAsByteBuffer.array());
+ out.close();
+ } catch (IOException e) {
+ throw new CoreException(new InformationArtifactCreationErrorBuilder(vspId).build(), e);
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return infoArtifactFile;
+ }
+
+ void validateUniqueName(String vspName) {
+ UniqueValueUtil.validateUniqueValue(
+ VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, vspName);
+ }
+
+ void createUniqueName(String vspName) {
+ UniqueValueUtil.createUniqueValue(
+ VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, vspName);
+ }
+
+ void updateUniqueName(String oldVspName, String newVspName) {
+ UniqueValueUtil.updateUniqueValue(
+ VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
+ oldVspName, newVspName);
+ }
}