aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org
diff options
context:
space:
mode:
authorAvi Ziv <AVIZI@amdocs.com>2017-07-26 17:37:57 +0300
committerAvi Ziv <avi.ziv@amdocs.com>2017-07-26 18:27:22 +0300
commit61070c9c6b665fdea79b3ccdfeafc3a6b50d262e (patch)
treedfe9c169cfac91d6c72ac9ff23375f2aafac6405 /openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org
parentb824a997e19f6ee9627cb1b1e124c756bd8183fc (diff)
[SDC] Full OnBoard health-check and NFoD support
Change-Id: I606f8a52c7e6d2bd5558f824957d890e552c5423 Signed-off-by: Avi Ziv <avi.ziv@amdocs.com>
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComputeErrorBuilder.java25
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java10
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java27
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicErrorBuilder.java27
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java47
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java27
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java35
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java22
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java35
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java38
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java21
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java418
12 files changed, 251 insertions, 481 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComputeErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComputeErrorBuilder.java
new file mode 100644
index 0000000000..1c728bdfbb
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComputeErrorBuilder.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+/**
+ * The Compute error builder.
+ */
+public class ComputeErrorBuilder {
+ private static final String COMPUTE_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+ + ": name : must match %s";
+
+ /**
+ * Gets image name format error builder.
+ *
+ * @return the image name format error builder
+ */
+ public static ErrorCode getComputeNameFormatErrorBuilder(String pattern) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.COMPUTE_NAME_FORMAT_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(COMPUTE_NAME_FORMAT_MSG, pattern));
+ return builder.build();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
index 63d716504b..97476a2dfd 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
@@ -17,6 +17,8 @@ public class DeploymentFlavorErrorBuilder {
"Invalid Request,Same Vfc cannot be associated more than once.";
private static final String DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED_MSG =
"Invalid request, Deployment Flavor with model %s already exists for Vsp with Id %s.";
+ private static final String DEPLOYMENT_FLAVOUR_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+ + ": name : must match %s";
private static final String INVALID_COMPUTE_FLAVOR_ID_MSG =
"Invalid request, Compute Flavor with Id %s does not exist for VFC with Id %s.";
private static final String INVALID_COMPONENT_COMPUTE_ASSOCIATION_ERROR_MSG="VSP cannot be " +
@@ -92,4 +94,12 @@ public class DeploymentFlavorErrorBuilder {
builder.withMessage(String.format(FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR_MSG));
return builder.build();
}
+
+ public static ErrorCode getDeploymentFlavorNameFormatErrorBuilder(String pattern){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.DEPLOYMENT_FLAVOR_NAME_FORMAT_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DEPLOYMENT_FLAVOUR_NAME_FORMAT_MSG, pattern));
+ return builder.build();
+ }
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
index 95bff60479..24883b5c13 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
@@ -1,13 +1,10 @@
package org.openecomp.sdc.vendorsoftwareproduct.errors;
-import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DUPLICATE_IMAGE_NAME_NOT_ALLOWED;
-
-import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.UPDATE_IMAGE_NOT_ALLOWED;
-import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.VFC_IMAGE_INVALID_FORMAT;
-
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.*;
+
/**
* The Image error builder.
*/
@@ -15,7 +12,8 @@ public class ImageErrorBuilder {
private static final String VFC_IMAGE_DUPLICATE_NAME_MSG = "Invalid request, Image with name %s"
+ " already exists for component with ID %s.";
-
+ private static final String VFC_IMAGE_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+ + ": name : must match %s";
private static final String IMAGE_INVALID_FORMAT_MSG = "The format value doesn't meet the "
+ "expected attribute value.";
@@ -28,11 +26,24 @@ public class ImageErrorBuilder {
*
* @return the duplicate image name error builder
*/
- public static ErrorCode getDuplicateImageNameErrorBuilder(String imageName, String componenetId) {
+ public static ErrorCode getDuplicateImageNameErrorBuilder(String imageName, String componentId) {
ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
builder.withId(DUPLICATE_IMAGE_NAME_NOT_ALLOWED);
builder.withCategory(ErrorCategory.APPLICATION);
- builder.withMessage(String.format(VFC_IMAGE_DUPLICATE_NAME_MSG, imageName, componenetId ));
+ builder.withMessage(String.format(VFC_IMAGE_DUPLICATE_NAME_MSG, imageName, componentId ));
+ return builder.build();
+ }
+
+ /**
+ * Gets image name format error builder.
+ *
+ * @return the image name format error builder
+ */
+ public static ErrorCode getImageNameFormatErrorBuilder(String pattern) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(IMAGE_NAME_FORMAT_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(VFC_IMAGE_NAME_FORMAT_MSG, pattern));
return builder.build();
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicErrorBuilder.java
new file mode 100644
index 0000000000..fc8ecf26a4
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicErrorBuilder.java
@@ -0,0 +1,27 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.NIC_NAME_FORMAT_NOT_ALLOWED;
+
+/**
+ * The NIC error builder.
+ */
+public class NicErrorBuilder {
+ private static final String NIC_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+ + ": name : must match %s";
+
+ /**
+ * Gets image name format error builder.
+ *
+ * @return the image name format error builder
+ */
+ public static ErrorCode getNicNameFormatErrorBuilder(String imageName, String pattern) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(NIC_NAME_FORMAT_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(NIC_NAME_FORMAT_MSG, pattern));
+ return builder.build();
+ }
+}
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
index a2d1d708c1..cd102ebb1d 100644
--- 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
@@ -12,15 +12,15 @@ 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.VendorSoftwareProductConstants;
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.ComputeErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateComputeInComponentErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
@@ -34,14 +34,11 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEnti
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;
@@ -92,9 +89,13 @@ public class ComputeManagerImpl implements ComputeManager {
onboardingMethodUpdateErrorCode.message());
throw new CoreException(onboardingMethodUpdateErrorCode);
} else {
+
//validateComponentId(compute.getVspId(),compute.getVersion(),compute.getComponentId());
- validateCompute(compute);
- createdCompute = createCompute(compute);
+ Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
+ (),compute.getComponentId());
+
+ validateVfcCompute(compute, vfcComputeList, LoggerTragetServiceName.CREATE_COMPUTE);
+ createdCompute = createCompute(compute);
}
mdcDataDebugMessage
@@ -108,7 +109,7 @@ public class ComputeManagerImpl implements ComputeManager {
return compositionEntityDataManager.createCompute(compute);
}
- private void validateCompute(ComputeEntity compute) {
+ /*private void validateCompute(ComputeEntity compute) {
Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
(),compute.getComponentId());
@@ -123,7 +124,7 @@ public class ComputeManagerImpl implements ComputeManager {
throw new CoreException(duplicateComputeInComponentErrorBuilder);
}
- }
+ }*/
private void validateComputeUpdate(ComputeEntity compute) {
Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
@@ -347,7 +348,7 @@ public class ComputeManagerImpl implements ComputeManager {
retrieved.setQuestionnaireData(null);
vfcComputeList.remove(retrieved);
if(vspInfoDao.isManual(compute.getVspId(), compute.getVersion()))
- validateVfcCompute(compute, vfcComputeList);
+ validateVfcCompute(compute, vfcComputeList, LoggerTragetServiceName.UPDATE_COMPUTE);
//Set format to default value in order to handle FTL validation when compute format is null
/*if(compute.getComputeCompositionData().getFormat() == null)
@@ -384,22 +385,32 @@ public class ComputeManagerImpl implements ComputeManager {
}
}
- private void validateVfcCompute(ComputeEntity compute, Collection<ComputeEntity> vfcComputeList) {
- if (isComputeNameDuplicate(vfcComputeList,compute.getComputeCompositionData().getName(), compute.getId())) {
- ErrorCode errorCode = DuplicateComputeInComponentErrorBuilder.getDuplicateComputeNameErrorBuilder(compute
+ private void validateVfcCompute(ComputeEntity compute, Collection<ComputeEntity> vfcComputeList, String event) {
+ if(!compute.getComputeCompositionData().getName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+ {
+ ErrorCode errorCode = ComputeErrorBuilder.getComputeNameFormatErrorBuilder(
+ VendorSoftwareProductConstants.NAME_PATTERN);
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ event, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+ throw new CoreException(errorCode);
+ }
+
+ 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(),
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ event, ErrorLevel.ERROR.name(),
errorCode.id(),errorCode.message());
- throw new CoreException(errorCode);
- }
+ 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)) {
+ if (compute.getComputeCompositionData().getName().equalsIgnoreCase(name) && !compute.getId().equals(computeId)) {
return true;
}
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
index 7069d778a7..2e964458d5 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
@@ -10,6 +10,7 @@ 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.DeploymentFlavorManager;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
@@ -23,17 +24,14 @@ import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMet
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.VersionedVendorSoftwareProductInfo;
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.DeploymentFlavor;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.DeploymentFlavorCompositionSchemaInput;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
-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;
@@ -112,6 +110,18 @@ public class DeploymentFlavorManagerImpl implements DeploymentFlavorManager {
private void validateDeploymentFlavor(DeploymentFlavorEntity deploymentFlavorEntity, String
user, Version activeVersion) {
+
+ if(!deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+ {
+ ErrorCode errorCode = DeploymentFlavorErrorBuilder.getDeploymentFlavorNameFormatErrorBuilder(
+ VendorSoftwareProductConstants.NAME_PATTERN);
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_NIC, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+
+ throw new CoreException(errorCode);
+ }
//Validation for unique model.
Collection<DeploymentFlavorEntity> listDeploymentFlavors =
listDeploymentFlavors(deploymentFlavorEntity.getVspId(),
@@ -357,6 +367,17 @@ public class DeploymentFlavorManagerImpl implements DeploymentFlavorManager {
updateDeploymentFlavorErrorBuilder.message());
throw new CoreException(updateDeploymentFlavorErrorBuilder);
}
+ else {
+ if(!deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+ {
+ ErrorCode errorCode = DeploymentFlavorErrorBuilder.getDeploymentFlavorNameFormatErrorBuilder(
+ VendorSoftwareProductConstants.NAME_PATTERN);
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+ throw new CoreException(errorCode);
+ }
+ }
//deploymentFlavorEntity.setVersion(activeVersion);
DeploymentFlavorEntity retrieved =
getDeploymentFlavor(deploymentFlavorEntity.getVspId(), deploymentFlavorEntity.getVersion(),
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
index e180138119..6a8f9e0c45 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
@@ -12,9 +12,7 @@ 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.ImageManager;
-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.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
@@ -34,10 +32,8 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.ima
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ImageCompositionSchemaInput;
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.Collection;
@@ -66,7 +62,8 @@ public class ImageManagerImpl implements ImageManager {
VersionableEntityAction.Write, user).getActiveVersion();
imageEntity.setVersion(activeVersion);*/
- if (!vspInfoDao.isManual(imageEntity.getVspId(), imageEntity.getVersion())) {
+ boolean isManual = vspInfoDao.isManual(imageEntity.getVspId(), imageEntity.getVersion());
+ if (!isManual) {
ErrorCode errorCode = NotSupportedHeatOnboardMethodErrorBuilder
.getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
@@ -80,7 +77,7 @@ public class ImageManagerImpl implements ImageManager {
Collection<ImageEntity> vfcImageList = listImages(imageEntity.getVspId() ,
imageEntity.getVersion(), imageEntity.getComponentId());
- validateVfcImage(imageEntity, vfcImageList);
+ validateVfcImage(isManual, imageEntity, vfcImageList, LoggerTragetServiceName.CREATE_IMAGE);
compositionEntityDataManager.createImage(imageEntity);
return imageEntity;
}
@@ -219,11 +216,11 @@ public class ImageManagerImpl implements ImageManager {
/*Version activeVersion =
getVersionInfo(image.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
image.setVersion(activeVersion);*/
-
+ boolean isManual = vspInfoDao.isManual(image.getVspId(), image.getVersion());
ImageEntity retrieved = getImageEntity(image.getVspId(), image.getVersion(), image.getComponentId(),
image.getId());
- if(!vspInfoDao.isManual(image.getVspId(), image.getVersion())) {
+ if(!isManual) {
final Image imageCompositionData = image.getImageCompositionData();
final String fileName = imageCompositionData.getFileName();
//final String format = imageCompositionData.getFormat();
@@ -239,7 +236,7 @@ public class ImageManagerImpl implements ImageManager {
//Set to null so that retrieved object is equal to one in list and gets removed.
retrieved.setQuestionnaireData(null);
vfcImageList.remove(retrieved);
- validateVfcImage(image, vfcImageList);
+ validateVfcImage(isManual, image, vfcImageList, LoggerTragetServiceName.UPDATE_IMAGE);
//Set format to default value in order to handle FTL validation when image format is null
/*if(image.getImageCompositionData().getFormat() == null)
@@ -325,13 +322,25 @@ public class ImageManagerImpl implements ImageManager {
return false;
}
- private void validateVfcImage(ImageEntity image, Collection<ImageEntity> vfcImageList) {
+ private void validateVfcImage(boolean isManual, ImageEntity image, Collection<ImageEntity> vfcImageList, String event) {
+ if(isManual && !image.getImageCompositionData().getFileName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+ {
+ ErrorCode errorCode = ImageErrorBuilder.getImageNameFormatErrorBuilder(
+ VendorSoftwareProductConstants.NAME_PATTERN);
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ event, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+
+ throw new CoreException(errorCode);
+ }
+
if (isImageNameDuplicate(vfcImageList,image.getImageCompositionData().getFileName())) {
ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageNameErrorBuilder(image
.getImageCompositionData().getFileName(), image.getComponentId());
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+ event, ErrorLevel.ERROR.name(),
errorCode.id(),errorCode.message());
throw new CoreException(errorCode);
@@ -354,6 +363,4 @@ public class ImageManagerImpl implements ImageManager {
.generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image,
schemaInput);
}
-
-
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
index ef33812ddc..06e54528b7 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
@@ -2,7 +2,6 @@ package org.openecomp.sdc.vendorsoftwareproduct.impl;
import org.apache.commons.collections4.MapUtils;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.generator.core.services.ManualVspToscaGenerationService;
import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
@@ -14,8 +13,8 @@ import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.ManualVspDataCollectionService;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.ManualVspDataCollectionService;
import org.openecomp.sdc.versioning.dao.types.Version;
import java.util.List;
@@ -25,12 +24,12 @@ import java.util.Optional;
public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private ManualVspDataCollectionService
+ manualVspDataCollectionService = new ManualVspDataCollectionService();
@Override
public VspModelInfo gatherVspInformation(String vspId, Version version, String user) {
mdcDataDebugMessage.debugEntryMessage(null, null);
- ManualVspDataCollectionService
- manualVspDataCollectionService = new ManualVspDataCollectionService();
VspModelInfo vspModelInfo = new VspModelInfo();
//Get Release Vendor Name
Optional<String> releaseVendor;
@@ -40,7 +39,8 @@ public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
releaseVendor = Optional.empty();
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found");
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found : "
+ + ex.getMessage());
}
releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
@@ -51,7 +51,8 @@ public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
} catch (Exception ex) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect allowed flavors");
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect allowed flavors : "
+ + ex.getMessage());
allowedFlavors = null;
}
if (MapUtils.isNotEmpty(allowedFlavors)) {
@@ -66,7 +67,8 @@ public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
} catch (Exception ex) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images");
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images : "
+ + ex.getMessage());
vspComponentImages = null;
}
if (MapUtils.isNotEmpty(vspComponentImages)) {
@@ -80,7 +82,8 @@ public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
} catch (Exception ex) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components");
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components : "
+ + ex.getMessage());
vspComponents = null;
}
if (MapUtils.isNotEmpty(vspComponents)) {
@@ -94,7 +97,8 @@ public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
} catch (Exception ex) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics");
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics : "
+ + ex.getMessage());
vspComponentNics = null;
}
if (MapUtils.isNotEmpty(vspComponentNics)) {
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
index b196b3f54c..0304353113 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
@@ -31,18 +31,13 @@ import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager;
import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
-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.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.CompositionEditNotAllowedErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.DeleteNicErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateNicInComponentErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.NicInternalNetworkErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.NicNetworkIdNotAllowedExternalNetworkErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.*;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
@@ -55,7 +50,6 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
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.utils.VendorSoftwareProductUtils;
import org.openecomp.sdc.versioning.VersioningUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -145,6 +139,19 @@ public class NicManagerImpl implements NicManager {
String networkId = nic.getNicCompositionData().getNetworkId();
NetworkType networkType = nic.getNicCompositionData().getNetworkType();
String networkDescription = nic.getNicCompositionData().getNetworkDescription();
+
+ if(!nic.getNicCompositionData().getName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+ {
+ ErrorCode errorCode = NicErrorBuilder.getNicNameFormatErrorBuilder(nic
+ .getNicCompositionData().getName(), VendorSoftwareProductConstants.NAME_PATTERN);
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_NIC, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+
+ throw new CoreException(errorCode);
+ }
+
listNics.forEach(nicEntity -> {
Nic nicdata = nicEntity.getNicCompositionData();
if (nic.getNicCompositionData().getName().equalsIgnoreCase(nicdata.getName())) {
@@ -265,6 +272,18 @@ public class NicManagerImpl implements NicManager {
schemaInput.setManual(vspInfoDao.isManual(nic.getVspId(), nic.getVersion()));
schemaInput.setNic(retrieved.getNicCompositionData());
+ if(schemaInput.isManual() && !nic.getNicCompositionData().getName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+ {
+ ErrorCode errorCode = NicErrorBuilder.getNicNameFormatErrorBuilder(nic
+ .getNicCompositionData().getName(), VendorSoftwareProductConstants.NAME_PATTERN);
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_NIC, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+
+ throw new CoreException(errorCode);
+ }
+
CompositionEntityValidationData validationData = compositionEntityDataManager
.validateEntity(nic, SchemaTemplateContext.composition, schemaInput);
if (CollectionUtils.isEmpty(validationData.getErrors())) {
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
index 959cf15789..07e84803aa 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
@@ -29,6 +29,7 @@ import org.openecomp.core.util.UniqueValueUtil;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
+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;
@@ -47,6 +48,7 @@ import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.logging.api.annotations.Metrics;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.logging.messages.AuditMessages;
import org.openecomp.sdc.logging.types.LoggerServiceName;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
@@ -90,6 +92,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
+import static org.openecomp.sdc.logging.messages.AuditMessages.HEAT_VALIDATION_ERROR;
import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID;
import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME;
@@ -225,6 +228,7 @@ public class OrchestrationTemplateCandidateManagerImpl
throw new CoreException(new OrchestrationTemplateNotFoundErrorBuilder(vspId).build());
}
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_STARTED + vspId);
OrchestrationTemplateActionResponse response = new OrchestrationTemplateActionResponse();
UploadFileResponse uploadFileResponse = new UploadFileResponse();
OrchestrationTemplateCandidateData candidateDataEntity = candidate.get();
@@ -233,6 +237,8 @@ public class OrchestrationTemplateCandidateManagerImpl
if (!fileContent.isPresent()) {
response.addStructureErrors(uploadFileResponse.getErrors());
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
return response;
}
@@ -246,6 +252,8 @@ public class OrchestrationTemplateCandidateManagerImpl
Messages.FOUND_UNASSIGNED_FILES.getErrorMessage(), ErrorLevel.ERROR);
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
return response;
}
@@ -258,6 +266,8 @@ public class OrchestrationTemplateCandidateManagerImpl
Optional<ByteArrayInputStream> zipByteArrayInputStream = candidateService
.fetchZipFileByteArrayInputStream(vspId, candidateDataEntity, manifest, uploadErrors);
if (!zipByteArrayInputStream.isPresent()) {
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
return response;
}
@@ -275,8 +285,18 @@ public class OrchestrationTemplateCandidateManagerImpl
deleteUploadDataAndContent(vspId, version);
saveHotData(vspId, version, zipByteArrayInputStream.get(), fileContentMap, tree);
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
+ if ( MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, response.getErrors
+ ()))) {
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_COMPLETED + vspId);
+ }
+
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_STARTED + vspId);
+
TranslatorOutput translatorOutput =
HeatToToscaUtil.loadAndTranslateTemplateData(fileContentMap);
+
ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel();
if (toscaServiceModel != null) {
serviceModelDao.storeServiceModel(vspId, version, toscaServiceModel);
@@ -287,7 +307,10 @@ public class OrchestrationTemplateCandidateManagerImpl
.getNonUnifiedToscaServiceModel()));
retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire,
componentNicsQuestionnaire, componentMibList, processes, processArtifact);
+
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_COMPLETED + vspId);
}
+
uploadFileResponse.addStructureErrors(uploadErrors);
ActivityLogEntity activityLogEntity =
@@ -299,7 +322,6 @@ public class OrchestrationTemplateCandidateManagerImpl
return response;
}
-
@Override
public Optional<FilesDataStructure> getFilesDataStructure(
String vspId, Version version, String user) {
@@ -462,7 +484,7 @@ public class OrchestrationTemplateCandidateManagerImpl
componentArtifactDao.listArtifacts(new
ComponentMonitoringUploadEntity(vspId, activeVersion, componentEntity.getId(),
null));
- if(CollectionUtils.isNotEmpty(componentMib)){
+ if (CollectionUtils.isNotEmpty(componentMib)) {
componentMibList.put(componentName,componentMib);
}
@@ -614,4 +636,14 @@ public class OrchestrationTemplateCandidateManagerImpl
return vspDetails;
}
-}
+ private void printAuditForErrors(List<ErrorMessage> errorList, String vspId, String auditType) {
+
+ errorList.forEach(errorMessage -> {
+ if (errorMessage.getLevel().equals(ErrorLevel.ERROR)) {
+ logger.audit(AuditMessages.AUDIT_MSG + String.format(auditType, errorMessage.getMessage(),
+ vspId));
+ }
+ });
+ }
+
+ }
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 0b48c334c6..89246376e4 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
@@ -48,6 +48,7 @@ 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.messages.AuditMessages;
import org.openecomp.sdc.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerServiceName;
@@ -594,6 +595,14 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
enrichmentManager.setModel(serviceModel);
Map<String, List<ErrorMessage>> enrichErrors = enrichmentManager.enrich();
+ if (MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, enrichErrors))) {
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.ENRICHMENT_COMPLETED
+ + vendorSoftwareProductId);
+ } else {
+ enrichErrors.values().forEach(errorList ->
+ auditIfContainsErrors(errorList,vendorSoftwareProductId,AuditMessages.ENRICHMENT_ERROR));
+ }
+
enrichedServiceModelDao
.storeServiceModel(vendorSoftwareProductId, version, enrichmentManager.getModel());
@@ -993,6 +1002,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
packageInfoDao.create(packageInfo);
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CREATE_PACKAGE + vspId);
+
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
return packageInfo;
}
@@ -1178,4 +1189,14 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
String user) {
return vendorSoftwareProductDao.listComputesByVsp(vspId, version);
}
+
+ private void auditIfContainsErrors(List<ErrorMessage> errorList, String vspId,String auditType) {
+
+ errorList.forEach(errorMessage -> {
+ if (errorMessage.getLevel().equals(ErrorLevel.ERROR)) {
+ logger.audit(AuditMessages.AUDIT_MSG + String.format(auditType, errorMessage.getMessage(),
+ vspId));
+ }
+ });
+ }
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java
deleted file mode 100644
index 981bfe941a..0000000000
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java
+++ /dev/null
@@ -1,418 +0,0 @@
-package org.openecomp.sdc.vendorsoftwareproduct.utils;
-
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
-import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.sdc.generator.datatypes.tosca.ComputeFlavor;
-import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
-import org.openecomp.sdc.generator.datatypes.tosca.LicenseFlavor;
-import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
-import org.openecomp.sdc.generator.datatypes.tosca.VendorInfo;
-import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
-import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
-import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
-import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
-import org.openecomp.sdc.vendorsoftwareproduct.ComputeManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
-import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
-import org.openecomp.sdc.vendorsoftwareproduct.ImageManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
-import org.openecomp.sdc.vendorsoftwareproduct.NicManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
-import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
-import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.Compute;
-import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.image.ImageDetails;
-import org.openecomp.sdc.versioning.dao.types.Version;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-
-
-public class ManualVspDataCollectionService {
-
- private static final DeploymentFlavorManager deploymentFlavorManager =
- DeploymentFlavorManagerFactory.getInstance().createInterface();
- private static final ComputeManager computeManager =
- ComputeManagerFactory.getInstance().createInterface();
- private static final ImageManager imageManager =
- ImageManagerFactory.getInstance().createInterface();
- private static final ComponentManager componentManager =
- ComponentManagerFactory.getInstance().createInterface();
- private static final VendorSoftwareProductManager vendorSoftwareProductManager =
- VspManagerFactory.getInstance().createInterface();
- private static final NicManager nicManager =
- NicManagerFactory.getInstance().createInterface();
- private static final VendorLicenseFacade vendorLicenseFacade =
- VendorLicenseFacadeFactory.getInstance().createInterface();
-
-
- /**
- * Gets vendor name for the vsp.
- *
- * @param vspId the vsp id
- * @param version the version
- * @param user the user
- * @return the release vendor name
- */
- public Optional<String> getReleaseVendor(String vspId, Version version, String user) {
- String vendorName = null;
- VspDetails vspDetails = vendorSoftwareProductManager.getVsp(vspId, version, user);
- if (Objects.nonNull(vspDetails)) {
- vendorName = vspDetails.getVendorName();
- }
- return Optional.ofNullable(vendorName);
- }
-
- /**
- * Gets the deployment flavor data for manually onboarded VSPs.
- *
- * @param vspId the vsp id
- * @param version the version
- * @param user the user
- * @return the allowed flavors
- */
- public Map<String, DeploymentFlavorModel> getAllowedFlavors(String vspId, Version version,
- String user) {
- Map<String, DeploymentFlavorModel> allowedFlavors = new HashMap<>();
- Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
- deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
- if (CollectionUtils.isNotEmpty(deploymentFlavorEntities)) {
- for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
- DeploymentFlavor deploymentFlavorCompositionData =
- deploymentFlavorEntity.getDeploymentFlavorCompositionData();
-
- VspDetails vspDetails = vendorSoftwareProductManager.getVsp(vspId, version, user);
- String vspVlmId;
- Version vlmVersion;
- if (Objects.nonNull(vspDetails)) {
- vspVlmId = vspDetails.getVendorId();
- vlmVersion = vspDetails.getVlmVersion();
- if (StringUtils.isNotEmpty(vspVlmId)) {
- DeploymentFlavorModel deploymentFlavorModel = new DeploymentFlavorModel();
- String featureGroupId = deploymentFlavorCompositionData.getFeatureGroupId();
- if (Objects.isNull(featureGroupId)) {
- //No feature group associated with deployment flavor. So excluding this deployment
- // flavor for Tosca model
- continue;
- }
- //Gather and set License flavor info
- LicenseFlavor licenseFlavor = getLicenseFlavor(featureGroupId);
- deploymentFlavorModel.setLicense_flavor(licenseFlavor);
- //Get sp_part_number
- Optional<String> partNumber = getPartNumber(vspVlmId, vlmVersion, featureGroupId,
- user);
- partNumber.ifPresent(deploymentFlavorModel::setSp_part_number);
- //Gather and set Vendor Info
- Optional<VendorInfo> vendorInfo = getVendorInfo(vspVlmId, vlmVersion, featureGroupId,
- user);
- vendorInfo.ifPresent(deploymentFlavorModel::setVendor_info);
- //Gather and set Compute info
- List<ComponentComputeAssociation> componentComputeAssociations =
- deploymentFlavorCompositionData.getComponentComputeAssociations();
- if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
- for (ComponentComputeAssociation componentComputeAssociation :
- componentComputeAssociations) {
- String componentId = componentComputeAssociation.getComponentId();
- String computeFlavorId = componentComputeAssociation.getComputeFlavorId();
- Optional<ComputeFlavor> computeFlavor =
- getComputeFlavor(vspId, version, componentId, computeFlavorId, user);
- computeFlavor.ifPresent(deploymentFlavorModel::setCompute_flavor);
- }
- }
- partNumber.ifPresent(spPartNumber -> allowedFlavors.put(spPartNumber,
- deploymentFlavorModel));
- }
- }
- }
- }
- return allowedFlavors;
- }
-
- /**
- * Gets the component image data for manually onboarded VSPs.
- *
- * @param vspId the vsp id
- * @param version the version
- * @param user the user
- * @return the vsp component images
- */
- public Map<String, List<MultiFlavorVfcImage>> getVspComponentImages(String vspId,
- Version version,
- String user) {
- Map<String, List<MultiFlavorVfcImage>> vspComponentImages = new HashMap<>();
- Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
- deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
- for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
- DeploymentFlavor deploymentFlavorCompositionData =
- deploymentFlavorEntity.getDeploymentFlavorCompositionData();
-
- List<ComponentComputeAssociation> componentComputeAssociations =
- deploymentFlavorCompositionData.getComponentComputeAssociations();
- if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
- for (ComponentComputeAssociation componentComputeAssociation :
- componentComputeAssociations) {
- String componentId = componentComputeAssociation.getComponentId();
- List<MultiFlavorVfcImage> componentImages =
- getComponentImages(vspId, version, componentId, user);
- if (CollectionUtils.isNotEmpty(componentImages)) {
- vspComponentImages.put(componentId, componentImages);
- }
- }
- }
- }
- return vspComponentImages;
- }
-
- /**
- * Gets the component data for manually onboarded VSPs.
- *
- * @param vspId the vsp id
- * @param version the version
- * @param user the user
- * @return the vsp components
- */
- public Map<String, String> getVspComponents(String vspId, Version version, String user) {
- Map<String, String> componentIdNameMap = new HashMap<>();
- Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
- deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
- for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
- DeploymentFlavor deploymentFlavorCompositionData =
- deploymentFlavorEntity.getDeploymentFlavorCompositionData();
-
- List<ComponentComputeAssociation> componentComputeAssociations =
- deploymentFlavorCompositionData.getComponentComputeAssociations();
- if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
- for (ComponentComputeAssociation componentComputeAssociation :
- componentComputeAssociations) {
- String componentId = componentComputeAssociation.getComponentId();
- Optional<String> componentName = getComponentName(vspId, version, componentId, user);
- componentName.ifPresent(name -> componentIdNameMap.put(componentId, name));
- }
- }
- }
- return componentIdNameMap;
- }
-
- /**
- * Gets the NIC data for manually onboarded VSPs.
- *
- * @param vspId the vsp id
- * @param version the version
- * @param user the user
- * @return the vsp component nics
- */
- public Map<String, List<Nic>> getVspComponentNics(String vspId, Version version, String user) {
- Map<String, List<Nic>> vspComponentNics = new HashMap<>();
- Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
- deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
- if (CollectionUtils.isNotEmpty(deploymentFlavorEntities)) {
- for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
- DeploymentFlavor deploymentFlavorCompositionData =
- deploymentFlavorEntity.getDeploymentFlavorCompositionData();
- if (Objects.nonNull(deploymentFlavorCompositionData)) {
- List<ComponentComputeAssociation> componentComputeAssociations =
- deploymentFlavorCompositionData.getComponentComputeAssociations();
- if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
- for (ComponentComputeAssociation componentComputeAssociation :
- componentComputeAssociations) {
- String componentId = componentComputeAssociation.getComponentId();
- List<Nic> componentNics = getComponentNics(vspId, version, componentId, user);
- if (CollectionUtils.isNotEmpty(componentNics)) {
- vspComponentNics.put(componentId, componentNics);
- }
- }
- }
- }
- }
- }
- return vspComponentNics;
- }
-
- private List<Nic> getComponentNics(String vspId, Version version, String componentId,
- String user) {
- List<Nic> componentNics = new ArrayList<>();
- Collection<NicEntity> nics = nicManager.listNics(vspId, version, componentId, user);
- if (Objects.nonNull(nics)) {
- for (NicEntity nicEntity : nics) {
- String nicId = nicEntity.getId();
- CompositionEntityResponse<Nic> nicCompositionEntityResponse =
- nicManager.getNic(vspId, version, componentId, nicId, user);
- if (Objects.nonNull(nicCompositionEntityResponse)
- && Objects.nonNull(nicCompositionEntityResponse.getData())) {
- componentNics.add(nicCompositionEntityResponse.getData());
- }
- }
- }
- return componentNics;
- }
-
- private LicenseFlavor getLicenseFlavor(String featureGroupId) {
- LicenseFlavor licenseFlavor = new LicenseFlavor();
- licenseFlavor.setFeature_group_uuid(featureGroupId);
- return licenseFlavor;
- }
-
- private Optional<String> getPartNumber(String vlmId, Version version,
- String featureGroupId, String user) {
- FeatureGroupModel featureGroup = getFeatureGroup(vlmId, version, featureGroupId, user);
- if (Objects.nonNull(featureGroup)) {
- return Optional.ofNullable(featureGroup.getFeatureGroup().getPartNumber());
- }
- return Optional.empty();
- }
-
- private Optional<VendorInfo> getVendorInfo(String vlmId, Version version,
- String featureGroupId, String user) {
- VendorInfo vendorInfo = null;
- FeatureGroupModel featureGroup = getFeatureGroup(vlmId, version, featureGroupId, user);
- if (Objects.nonNull(featureGroup)) {
- //Process Feature group to get Manufacturer ref no.
- String manufacturerReferenceNumber = featureGroup.getEntityManufacturerReferenceNumber();
- vendorInfo = new VendorInfo();
- vendorInfo.setVendor_model(vlmId);
- if (Objects.nonNull(manufacturerReferenceNumber)) {
- vendorInfo.setManufacturer_reference_number(manufacturerReferenceNumber);
- }
- }
- return Optional.ofNullable(vendorInfo);
- }
-
- private Optional<ComputeFlavor> getComputeFlavor(String vspId, Version version,
- String componentId, String computeFlavorId,
- String user) {
- ComputeFlavor computeFlavor = null;
- QuestionnaireResponse computeQuestionnaire;
- try {
- computeQuestionnaire = computeManager.getComputeQuestionnaire(vspId, version, componentId,
- computeFlavorId, user);
- } catch (Exception ex) {
- computeQuestionnaire = null;
- }
- if (Objects.nonNull(computeQuestionnaire)) {
- String computeQuestionnaireData = computeQuestionnaire.getData();
- if (Objects.nonNull(computeQuestionnaireData)) {
- Compute compute;
- try {
- compute = JsonUtil.json2Object(computeQuestionnaireData, Compute.class);
- } catch (Exception ex) {
- compute = null;
- }
- if (Objects.nonNull(compute.getVmSizing())) {
- computeFlavor = new ComputeFlavor();
- if (Objects.nonNull(compute.getVmSizing().getNumOfCPUs())) {
- computeFlavor.setNum_cpus(compute.getVmSizing().getNumOfCPUs());
- }
- if (Objects.nonNull(compute.getVmSizing().getFileSystemSizeGB())) {
- computeFlavor.setDisk_size(compute.getVmSizing().getFileSystemSizeGB() + "GB");
- }
- if (Objects.nonNull(compute.getVmSizing().getMemoryRAM())) {
- computeFlavor.setMem_size(compute.getVmSizing().getMemoryRAM() + "GB");
- }
- }
- }
- }
- return Optional.ofNullable(computeFlavor);
- }
-
- private FeatureGroupModel getFeatureGroup(String vlmId, Version version, String featureGroupId,
- String user) {
- FeatureGroupEntity fgInput = new FeatureGroupEntity();
- fgInput.setVendorLicenseModelId(vlmId);
- fgInput.setVersion(version);
- fgInput.setId(featureGroupId);
- return vendorLicenseFacade.getFeatureGroupModel(fgInput, user);
- }
-
- private Optional<String> getComponentName(String vspId, Version version, String componentId,
- String user) {
- CompositionEntityResponse<ComponentData> component =
- componentManager.getComponent(vspId, version, componentId, user);
- if (Objects.nonNull(component.getData())) {
- return Optional.ofNullable(component.getData().getDisplayName());
- }
- return Optional.empty();
- }
-
- private List<MultiFlavorVfcImage> getComponentImages(String vspId, Version version,
- String componentId, String user) {
- List<MultiFlavorVfcImage> componentImages = new ArrayList<>();
- MultiFlavorVfcImage multiFlavorVfcImage = null;
- Collection<ImageEntity> imageEntities =
- imageManager.listImages(vspId, version, componentId, user);
- if (Objects.nonNull(imageEntities)) {
- for (ImageEntity imageEntity : imageEntities) {
- String imageId = imageEntity.getId();
- QuestionnaireResponse imageQuestionnaire =
- imageManager.getImageQuestionnaire(vspId, version, componentId, imageId, user);
- CompositionEntityResponse<Image> imageCompositionData =
- imageManager.getImage(vspId, version, componentId, imageId, user);
- if (Objects.nonNull(imageQuestionnaire)
- && Objects.nonNull(imageQuestionnaire.getData())
- && Objects.nonNull(imageCompositionData)) {
- ImageDetails imageDetails;
- try {
- imageDetails = JsonUtil.json2Object(imageQuestionnaire.getData(),
- ImageDetails.class);
- } catch (Exception ex) {
- imageDetails = null;
- }
- if (Objects.nonNull(imageDetails)
- && Objects.nonNull(imageDetails.getVersion())) {
- //Image version is used as a key for the image block
- //So excluding the population if questionnaire data is absent or invalid
- multiFlavorVfcImage = new MultiFlavorVfcImage();
- Image image = imageCompositionData.getData();
- Optional<String> toscaImageFileName = getToscaImageFileName(image, imageDetails);
- toscaImageFileName.ifPresent(multiFlavorVfcImage::setFile_name);
- multiFlavorVfcImage.setSoftware_version(imageDetails.getVersion());
- if (Objects.nonNull(imageDetails.getMd5())) {
- multiFlavorVfcImage.setFile_hash(imageDetails.getMd5());
- }
- multiFlavorVfcImage.setFile_hash_type("md5");
- componentImages.add(multiFlavorVfcImage);
- }
- }
- }
- }
- return componentImages;
- }
-
- private Optional<String> getToscaImageFileName(Image image, ImageDetails imageDetails) {
- String toscaImageFileName = null;
- StringBuilder builder = new StringBuilder();
- if (Objects.nonNull(image.getFileName())) {
- builder.append(image.getFileName());
- builder.append("-");
- builder.append(imageDetails.getVersion());
- if (Objects.nonNull(imageDetails.getFormat())) {
- builder.append(".");
- builder.append(imageDetails.getFormat());
- }
- }
- toscaImageFileName = builder.toString();
- if (toscaImageFileName.isEmpty()) {
- return Optional.empty();
- }
- return Optional.ofNullable(toscaImageFileName);
- }
-}