Refactor candidate heat dao 51/49251/3
authortalig <talig@amdocs.com>
Sun, 27 May 2018 11:47:32 +0000 (14:47 +0300)
committertalig <talig@amdocs.com>
Sun, 27 May 2018 11:47:32 +0000 (14:47 +0300)
As a result OrchestrationTemplateCandidate element will be added if not exists instead of failing.

Change-Id: I1a1c9afed65018ed01be65ff07dabe1c2081bea7
Issue-ID: SDC-1371
Signed-off-by: talig <talig@amdocs.com>
openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/OrchestrationTemplateCandidateManager.java
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java
openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/OrchestrationTemplateCandidateDao.java
openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/filedatastructuremodule/CandidateService.java
openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/impl/zusammen/OrchestrationTemplateCandidateDaoZusammenImpl.java
openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java

index 03f3697..71e1888 100644 (file)
 
 package org.openecomp.sdcrests.vsp.rest.services;
 
-import static javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
-import static org.openecomp.sdc.itempermissions.notifications.NotificationConstants.PERMISSION_USER;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME;
-import static org.openecomp.sdc.vendorsoftwareproduct.dao.type.OnboardingMethod.NetworkPackage;
-import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.ITEM_ID;
-import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.ITEM_NAME;
-import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.SUBMIT_DESCRIPTION;
-import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.VERSION_ID;
-import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.VERSION_NAME;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-import javax.inject.Named;
-import javax.ws.rs.core.Response;
 import org.apache.commons.collections4.MapUtils;
 import org.openecomp.core.dao.UniqueValueDaoFactory;
 import org.openecomp.core.util.UniqueValueUtil;
@@ -109,6 +86,30 @@ import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Service;
 
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
+import static javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
+import static org.openecomp.sdc.itempermissions.notifications.NotificationConstants.PERMISSION_USER;
+import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME;
+import static org.openecomp.sdc.vendorsoftwareproduct.dao.type.OnboardingMethod.NetworkPackage;
+import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.ITEM_ID;
+import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.ITEM_NAME;
+import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.SUBMIT_DESCRIPTION;
+import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.VERSION_ID;
+import static org.openecomp.sdc.versioning.VersioningNotificationConstansts.VERSION_NAME;
+
 @Named
 @Service("vendorSoftwareProducts")
 @Scope(value = "prototype")
@@ -565,25 +566,29 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
                 .build();
     }
 
-    private void addNetworkPackageInfo(String vspId, Version version, VspDetailsDto vspDetailsDto) {
-        OrchestrationTemplateCandidateData candidateInfo =
-                OrchestrationTemplateCandidateManagerFactory.getInstance().createInterface()
-                        .getInfo(vspId, version);
-        if (Objects.nonNull(candidateInfo) && Objects.nonNull(candidateInfo.getFileSuffix())) {
-            vspDetailsDto.setValidationData(candidateInfo.getValidationDataStructure());
-            vspDetailsDto.setNetworkPackageName(candidateInfo.getFileName());
-            vspDetailsDto.setCandidateOnboardingOrigin(candidateInfo.getFileSuffix());
-        } else {
-            OrchestrationTemplateEntity orchestrationTemplateInfo =
-                    vendorSoftwareProductManager.getOrchestrationTemplateInfo(vspId, version);
-            if (Objects.nonNull(orchestrationTemplateInfo) && Objects.nonNull(orchestrationTemplateInfo
-                    .getFileSuffix())) {
-                vspDetailsDto.setValidationData(orchestrationTemplateInfo.getValidationDataStructure());
-                vspDetailsDto.setNetworkPackageName(orchestrationTemplateInfo.getFileName());
-                vspDetailsDto.setOnboardingOrigin(orchestrationTemplateInfo.getFileSuffix());
-            }
+  private void addNetworkPackageInfo(String vspId, Version version, VspDetailsDto vspDetailsDto) {
+    Optional<OrchestrationTemplateCandidateData> candidateInfo =
+        OrchestrationTemplateCandidateManagerFactory.getInstance().createInterface()
+            .getInfo(vspId, version);
+    if (candidateInfo.isPresent()) {
+      if (candidateInfo.get().getValidationDataStructure() != null) {
+        vspDetailsDto.setValidationData(candidateInfo.get().getValidationDataStructure());
+      }
+      vspDetailsDto.setNetworkPackageName(candidateInfo.get().getFileName());
+      vspDetailsDto.setCandidateOnboardingOrigin(candidateInfo.get().getFileSuffix());
+    } else {
+      OrchestrationTemplateEntity orchestrationTemplateInfo =
+          vendorSoftwareProductManager.getOrchestrationTemplateInfo(vspId, version);
+      if (Objects.nonNull(orchestrationTemplateInfo) && Objects.nonNull(orchestrationTemplateInfo
+          .getFileSuffix())) {
+        if (orchestrationTemplateInfo.getValidationDataStructure() != null) {
+          vspDetailsDto.setValidationData(orchestrationTemplateInfo.getValidationDataStructure());
         }
+        vspDetailsDto.setNetworkPackageName(orchestrationTemplateInfo.getFileName());
+        vspDetailsDto.setOnboardingOrigin(orchestrationTemplateInfo.getFileSuffix());
+      }
     }
+  }
 
   private boolean userHasPermission(String itemId, String userId) {
     return permissionsManager.getUserItemPermission(itemId, userId)
index a28e2c8..238dbc0 100644 (file)
@@ -41,7 +41,7 @@ public interface OrchestrationTemplateCandidateManager {
 
   Optional<Pair<String, byte[]>> get(String vspId, Version version) throws IOException;
 
-  OrchestrationTemplateCandidateData getInfo(String vspId, Version version);
+  Optional<OrchestrationTemplateCandidateData> getInfo(String vspId, Version version);
 
   void abort(String vspId, Version version);
 }
index e5b953f..57f6b67 100644 (file)
@@ -45,7 +45,6 @@ import java.io.InputStream;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Optional;
 
 public class OrchestrationTemplateCandidateManagerImpl
@@ -78,9 +77,10 @@ public class OrchestrationTemplateCandidateManagerImpl
 
   @Override
   public OrchestrationTemplateActionResponse process(String vspId, Version version) {
-    OrchestrationTemplateCandidateData candidate = fetchCandidateDataEntity(vspId, version)
-        .orElseThrow(
-            () -> new CoreException(new OrchestrationTemplateNotFoundErrorBuilder(vspId).build()));
+    OrchestrationTemplateCandidateData candidate =
+        candidateService.getOrchestrationTemplateCandidate(vspId, version)
+            .orElseThrow(() -> new CoreException(
+                new OrchestrationTemplateNotFoundErrorBuilder(vspId).build()));
 
     return OrchestrationProcessFactory.getInstance(candidate.getFileSuffix())
         .map(processor -> processor.process(getVspDetails(vspId, version), candidate))
@@ -117,27 +117,22 @@ public class OrchestrationTemplateCandidateManagerImpl
     VspDetails vspDetails = getVspDetails(vspId, version);
 
     Optional<OrchestrationTemplateCandidateData> candidateDataEntity =
-        fetchCandidateDataEntity(vspId, version);
+        candidateService.getOrchestrationTemplateCandidate(vspId, version);
 
     if (!candidateDataEntity.isPresent()) {
       return Optional.empty();
     }
 
-    if(Objects.isNull(candidateDataEntity.get().getFileSuffix())) {
-      return Optional.empty();
-    }
-
-    OnboardingTypesEnum type =
-        OnboardingTypesEnum.getOnboardingTypesEnum(candidateDataEntity.get().getFileSuffix());
-
     if (CommonUtil.isFileOriginFromZip(candidateDataEntity.get().getFileSuffix())) {
       FilesDataStructure structure = JsonUtil
           .json2Object(candidateDataEntity.get().getFilesDataStructure(), FilesDataStructure.class);
       String manifest = candidateService.createManifest(vspDetails, structure);
+      OnboardingTypesEnum type =
+          OnboardingTypesEnum.getOnboardingTypesEnum(candidateDataEntity.get().getFileSuffix());
       return Optional.of(
           new ImmutablePair<>(OnboardingTypesEnum.ZIP.toString(), candidateService
               .replaceManifestInZip(candidateDataEntity.get().getContentData(),
-                  manifest, vspId, type)));
+                  manifest, type)));
     }
 
     return Optional.of(
@@ -146,7 +141,7 @@ public class OrchestrationTemplateCandidateManagerImpl
   }
 
   @Override
-  public OrchestrationTemplateCandidateData getInfo(String vspId, Version version) {
+  public Optional<OrchestrationTemplateCandidateData> getInfo(String vspId, Version version) {
     return candidateService.getOrchestrationTemplateCandidateInfo(vspId, version);
   }
 
@@ -155,16 +150,7 @@ public class OrchestrationTemplateCandidateManagerImpl
     candidateService.deleteOrchestrationTemplateCandidate(vspId, version);
   }
 
-  private Optional<OrchestrationTemplateCandidateData> fetchCandidateDataEntity(
-      String vspId, Version version) {
-    return Optional
-        .ofNullable(candidateService.getOrchestrationTemplateCandidate(vspId, version));
-  }
-
   private VspDetails getVspDetails(String vspId, Version version) {
-
     return vspInfoDao.get(new VspDetails(vspId, version));
   }
-
-
 }
index f116abe..5874394 100644 (file)
@@ -68,7 +68,6 @@ 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.OnboardingMethod;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
@@ -127,6 +126,10 @@ import java.util.Set;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductInvalidErrorBuilder.candidateDataNotProcessedOrAbortedErrorBuilder;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductInvalidErrorBuilder.invalidProcessedCandidate;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductInvalidErrorBuilder.vspMissingDeploymentFlavorErrorBuilder;
+
 public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductManager {
 
   private final VspMergeDao vspMergeDao;
@@ -258,19 +261,14 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
   private void validateOrchestrationTemplateCandidate(ValidationResponse validationResponse,
                                                       List<ErrorCode> vspErrors, String vspId,
                                                       Version version) {
-    OrchestrationTemplateCandidateData orchestrationTemplateCandidateData =
-        orchestrationTemplateCandidateManager.getInfo(vspId, version);
-    String validationData = orchestrationTemplateCandidateData.getValidationData();
-    String fileName = orchestrationTemplateCandidateData.getFileName();
-    if (Objects.nonNull(orchestrationTemplateCandidateData.getFileSuffix())) {
-      if (validationData.isEmpty()) {
-        vspErrors.add(VendorSoftwareProductInvalidErrorBuilder
-            .candidateDataNotProcessedOrAbortedErrorBuilder(fileName));
-      } else {
-        vspErrors.add(VendorSoftwareProductInvalidErrorBuilder.invalidProcessedCandidate(fileName));
-      }
-      validationResponse.setVspErrors(vspErrors);
-    }
+    orchestrationTemplateCandidateManager.getInfo(vspId, version)
+        .ifPresent(candidateInfo -> {
+          String fileName = candidateInfo.getFileName();
+          vspErrors.add(candidateInfo.getValidationData().isEmpty()
+              ? candidateDataNotProcessedOrAbortedErrorBuilder(fileName)
+              : invalidProcessedCandidate(fileName));
+          validationResponse.setVspErrors(vspErrors);
+        });
   }
 
   private void validateManualOnboardingMethod(VspDetails vspDetails,
@@ -281,8 +279,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
     Collection<DeploymentFlavorEntity> deploymentFlavors = deploymentFlavorDao
         .list(new DeploymentFlavorEntity(vspDetails.getId(), vspDetails.getVersion(), null));
     if (CollectionUtils.isEmpty(deploymentFlavors)) {
-      vspErrors
-          .add(VendorSoftwareProductInvalidErrorBuilder.vspMissingDeploymentFlavorErrorBuilder());
+      vspErrors.add(vspMissingDeploymentFlavorErrorBuilder());
     }
     vspErrors.addAll(validateDeploymentFlavors(deploymentFlavors));
 
@@ -675,7 +672,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
     return packageInfo;
   }
 
-  protected void populateVersionsForVlm(String vlmId, Version vlmVersion) {
+  void populateVersionsForVlm(String vlmId, Version vlmVersion) {
     VersioningManager versioningManager = VersioningManagerFactory.getInstance().createInterface();
     versioningManager.list(vlmId).stream()
         .filter(version -> version.getId().equalsIgnoreCase(vlmVersion.getId()))
@@ -852,11 +849,12 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
     return computeDao.listByVsp(vspId, version);
   }
 
-  private boolean isOrchestrationTemplateMissing(OrchestrationTemplateEntity orchestrationTemplate) {
+  private boolean isOrchestrationTemplateMissing(
+      OrchestrationTemplateEntity orchestrationTemplate) {
     return orchestrationTemplate == null
-            || orchestrationTemplate.getContentData() == null
-            || orchestrationTemplate.getFileSuffix() == null
-            || orchestrationTemplate.getFileName() == null;
+        || orchestrationTemplate.getContentData() == null
+        || orchestrationTemplate.getFileSuffix() == null
+        || orchestrationTemplate.getFileName() == null;
   }
 
   private boolean isServiceModelMissing(ToscaServiceModel serviceModel) {
index a86b1ef..2c97937 100644 (file)
@@ -95,7 +95,7 @@ public class OrchestrationTemplateCandidateManagerImplTest {
   private OrchestrationUtil orchestrationUtil;
 
   @BeforeClass
-  public void setUp() throws Exception {
+  public void setUp() {
     MockitoAnnotations.initMocks(this);
   }
 
@@ -129,7 +129,7 @@ public class OrchestrationTemplateCandidateManagerImplTest {
         "    }\n" +
         "  ]\n" +
         "}");
-    doReturn(orchTemplate)
+    doReturn(Optional.of(orchTemplate))
         .when(candidateServiceMock).getOrchestrationTemplateCandidate(any(), any());
 
     doReturn(new VspDetails(VSP_ID, VERSION01))
@@ -260,7 +260,7 @@ public class OrchestrationTemplateCandidateManagerImplTest {
 
   @Test
   public void testGetFileDataStructure() {
-    Optional<String> jsonFileDataStructure = Optional.of(new String("{\n" +
+    Optional<String> jsonFileDataStructure = Optional.of("{\n" +
         "  \"modules\": [\n" +
         "    {\n" +
         "      \"yaml\": \"hot-mog-0108-bs1271.yml\",\n" +
@@ -270,7 +270,7 @@ public class OrchestrationTemplateCandidateManagerImplTest {
         "  \"unassigned\": [],\n" +
         "  \"artifacts\": [],\n" +
         "  \"nested\": []\n" +
-        "}"));
+        "}");
     Optional<FilesDataStructure> filesDataStructureOptional = Optional.of(JsonUtil.json2Object
         (jsonFileDataStructure.get(), FilesDataStructure.class));
     doReturn(filesDataStructureOptional).when(candidateServiceMock)
index f5c7fb2..9149fcf 100644 (file)
 
 package org.openecomp.sdc.vendorsoftwareproduct.impl;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-
 import org.mockito.ArgumentCaptor;
 import org.mockito.Captor;
 import org.mockito.InjectMocks;
@@ -67,7 +59,6 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
 import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
 import org.openecomp.sdc.versioning.ActionVersioningManager;
-import org.openecomp.sdc.versioning.VersioningManager;
 import org.openecomp.sdc.versioning.dao.types.Version;
 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
 import org.openecomp.sdc.versioning.types.VersionInfo;
@@ -88,22 +79,26 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Optional;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
 
 public class VendorSoftwareProductManagerImplTest {
-  private static final String INVALID_VERSION_MSG = "Invalid requested version.";
 
-  private static String VSP_ID = "vspId";
-  private static String VERSION_ID = "versionId";
-  public static final Version VERSION01 = new Version(0, 1);
-  private static final Version VERSION10 = new Version(1, 0);
+  private static final String VSP_ID = "vspId";
+  private static final Version VERSION01 = new Version("0, 1");
+  private static final Version VERSION10 = new Version("1, 0");
   private static final String USER1 = "vspTestUser1";
   private static final String USER2 = "vspTestUser2";
-  private static final String USER3 = "vspTestUser3";
-  private static String id006 = null;
-  private static String id007 = null;
 
   @Mock
   private ActionVersioningManager versioningManagerMock;
@@ -148,12 +143,12 @@ public class VendorSoftwareProductManagerImplTest {
   private ArgumentCaptor<ActivityLogEntity> activityLogEntityArg;
 
   @BeforeMethod
-  public void setUp() throws Exception {
+  public void setUp() {
     MockitoAnnotations.initMocks(this);
   }
 
   @AfterMethod
-  public void tearDown(){
+  public void tearDown() {
     vendorSoftwareProductManager = null;
   }
 
@@ -232,7 +227,7 @@ public class VendorSoftwareProductManagerImplTest {
     doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
         VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
         VersionableEntityAction.Write);
-    List<String> fgs = new ArrayList<String>();
+    List<String> fgs = new ArrayList<>();
     fgs.add("fg1");
     fgs.add("fg2");
     VspDetails existingVsp =
@@ -240,7 +235,7 @@ public class VendorSoftwareProductManagerImplTest {
             "category",
             "subCategory", "456", fgs);
 
-    List<String> updFgs = new ArrayList<String>();
+    List<String> updFgs = new ArrayList<>();
     //updFgs.add("fg2");
     VspDetails updatedVsp =
         createVspDetails(VSP_ID, VERSION01, "VSP1_updated", null, "vendorName", "vlm1Id", "icon",
@@ -256,7 +251,7 @@ public class VendorSoftwareProductManagerImplTest {
     flavor.setFeatureGroupId("fg1");
     dfEntity.setDeploymentFlavorCompositionData(flavor);
 
-    List<DeploymentFlavorEntity> dfList = new ArrayList<DeploymentFlavorEntity>();
+    List<DeploymentFlavorEntity> dfList = new ArrayList<>();
     dfList.add(dfEntity);
 
     doReturn(dfList).when(deploymentFlavorDaoMock).list(anyObject());
@@ -271,7 +266,7 @@ public class VendorSoftwareProductManagerImplTest {
 
   @Test(expectedExceptions = CoreException.class)
   public void testGetNonExistingVersion_negative() {
-    Version notExistversion = new Version(43, 8);
+    Version notExistversion = new Version("43, 8");
     doReturn(null).when(vspInfoDaoMock).get(any(VspDetails.class));
     vendorSoftwareProductManager.getVsp(VSP_ID, notExistversion);
   }
@@ -301,8 +296,8 @@ public class VendorSoftwareProductManagerImplTest {
   @Test
   public void testGetOldVersion() {
     VersionInfo versionInfo = new VersionInfo();
-    versionInfo.setActiveVersion(new Version(0, 2));
-    versionInfo.setViewableVersions(Arrays.asList(VERSION01, new Version(0, 2)));
+    versionInfo.setActiveVersion(new Version("0, 2"));
+    versionInfo.setViewableVersions(Arrays.asList(VERSION01, new Version("0, 2")));
     versionInfo.setStatus(VersionStatus.Locked);
     versionInfo.setLockingUser(USER2);
     doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
@@ -440,7 +435,7 @@ public class VendorSoftwareProductManagerImplTest {
   }
 
   @Test
-  public void testCreatePackage() throws IOException {
+  public void testCreatePackage() {
     /*VspDetails vspDetailsMock = new VspDetails("vspId", new Version(1, 0));
     doReturn(vspDetailsMock).when(vspInfoDaoMock).get(anyObject());*/
     VersionInfo versionInfo = new VersionInfo();
@@ -472,7 +467,7 @@ public class VendorSoftwareProductManagerImplTest {
     try (InputStream zis = getFileInputStream("/vspmanager/zips/missingYml.zip")) {
 
       UploadFileResponse uploadFileResponse =
-              candidateManager.upload(VSP_ID, VERSION01, zis, "zip", "file");
+          candidateManager.upload(VSP_ID, VERSION01, zis, "zip", "file");
 
       Assert.assertEquals(uploadFileResponse.getErrors().size(), 0);
     }
@@ -480,7 +475,7 @@ public class VendorSoftwareProductManagerImplTest {
 
   // TODO: 3/15/2017 fix and enable
   //@Test(dependsOnMethods = {"testUploadFileMissingFile"})
-  public void testUploadNotZipFile() throws IOException {
+  public void testUploadNotZipFile() {
     URL url = this.getClass().getResource("/notZipFile");
 
     try {
@@ -596,7 +591,8 @@ public class VendorSoftwareProductManagerImplTest {
     orchestrationTemplateCandidateData.setFileSuffix("zip");
     orchestrationTemplateCandidateData.setFilesDataStructure("testdata");
     orchestrationTemplateCandidateData.setValidationData("");
-    doReturn(orchestrationTemplateCandidateData).when(orchestrationTemplateCandidateManagerMock)
+    doReturn(Optional.of(orchestrationTemplateCandidateData))
+        .when(orchestrationTemplateCandidateManagerMock)
         .getInfo(VSP_ID, VERSION01);
     ValidationResponse validationResponse =
         vendorSoftwareProductManager.validate(VSP_ID, VERSION01);
@@ -619,7 +615,8 @@ public class VendorSoftwareProductManagerImplTest {
         OrchestrationTemplateCandidateData();
     orchestrationTemplateCandidateData.setFileSuffix("zip");
     orchestrationTemplateCandidateData.setValidationData("Invalid processed data");
-    doReturn(orchestrationTemplateCandidateData).when(orchestrationTemplateCandidateManagerMock)
+    doReturn(Optional.of(orchestrationTemplateCandidateData))
+        .when(orchestrationTemplateCandidateManagerMock)
         .getInfo(VSP_ID, VERSION01);
     ValidationResponse validationResponse =
         vendorSoftwareProductManager.validate(VSP_ID, VERSION01);
@@ -639,7 +636,7 @@ public class VendorSoftwareProductManagerImplTest {
   }
 
 
-  public InputStream getFileInputStream(String fileName) {
+  private InputStream getFileInputStream(String fileName) {
     URL url = this.getClass().getResource(fileName);
     try {
       return url.openStream();
@@ -649,7 +646,7 @@ public class VendorSoftwareProductManagerImplTest {
     }
   }
 
-  static VspDetails createVspDetails(String id, Version version, String name, String desc,
+  private static VspDetails createVspDetails(String id, Version version, String name, String desc,
                                      String vendorName, String vlm, String icon,
                                      String category, String subCategory,
                                      String licenseAgreement, List<String> featureGroups) {
@@ -661,14 +658,14 @@ public class VendorSoftwareProductManagerImplTest {
     vspDetails.setSubCategory(subCategory);
     vspDetails.setVendorName(vendorName);
     vspDetails.setVendorId(vlm);
-    vspDetails.setVlmVersion(new Version(1, 0));
+    vspDetails.setVlmVersion(new Version("1, 0"));
     vspDetails.setLicenseAgreement(licenseAgreement);
     vspDetails.setFeatureGroups(featureGroups);
     vspDetails.setOnboardingMethod("HEAT");
     return vspDetails;
   }
 
-  static void assertVspsEquals(VspDetails actual, VspDetails expected) {
+  private static void assertVspsEquals(VspDetails actual, VspDetails expected) {
     Assert.assertEquals(actual.getId(), expected.getId());
     Assert.assertEquals(actual.getVersion(), expected.getVersion());
     Assert.assertEquals(actual.getName(), expected.getName());
index 9743814..c44ee30 100644 (file)
@@ -26,9 +26,9 @@ import java.util.Optional;
 
 public interface OrchestrationTemplateCandidateDao extends VersionableDao {
 
-  OrchestrationTemplateCandidateData get(String vspId, Version version);
+  Optional<OrchestrationTemplateCandidateData> get(String vspId, Version version);
 
-  OrchestrationTemplateCandidateData getInfo(String vspId, Version version);
+  Optional<OrchestrationTemplateCandidateData> getInfo(String vspId, Version version);
 
   void delete(String vspId, Version version);
 
index 0012075..578b120 100644 (file)
@@ -44,7 +44,7 @@ public interface CandidateService {
 
   OrchestrationTemplateCandidateData createCandidateDataEntity(
       CandidateDataEntityTo candidateDataEntityTo, InputStream zipFileManifest,
-      AnalyzedZipHeatFiles analyzedZipHeatFiles) throws Exception;
+      AnalyzedZipHeatFiles analyzedZipHeatFiles);
 
   void updateCandidateUploadData(String vspId, Version version,
                                  OrchestrationTemplateCandidateData uploadData);
@@ -55,11 +55,11 @@ public interface CandidateService {
   void updateOrchestrationTemplateCandidateFileDataStructure(String vspId, Version version,
                                                              FilesDataStructure fileDataStructure);
 
-  OrchestrationTemplateCandidateData getOrchestrationTemplateCandidate(String vspId,
-                                                                       Version version);
+  Optional<OrchestrationTemplateCandidateData> getOrchestrationTemplateCandidate(String vspId,
+                                                                                 Version version);
 
-  OrchestrationTemplateCandidateData getOrchestrationTemplateCandidateInfo(String vspId,
-                                                                       Version version);
+  Optional<OrchestrationTemplateCandidateData> getOrchestrationTemplateCandidateInfo(String vspId,
+                                                                                     Version version);
 
   byte[] getZipData(ByteBuffer contentData) throws IOException;
 
@@ -71,7 +71,7 @@ public interface CandidateService {
                                                                   OnboardingTypesEnum type,
                                                                   Map<String, List<ErrorMessage>> uploadErrors);
 
-  byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId,
+  byte[] replaceManifestInZip(ByteBuffer contentData, String manifest,
                               OnboardingTypesEnum type) throws IOException;
 
   Optional<ManifestContent> createManifest(VspDetails vspDetails,
index 22fe1dd..f49832d 100644 (file)
@@ -36,7 +36,6 @@ import org.openecomp.sdc.versioning.dao.types.Version;
 
 import java.io.ByteArrayInputStream;
 import java.nio.ByteBuffer;
-import java.util.Collection;
 import java.util.Optional;
 
 import static org.openecomp.core.zusammen.api.ZusammenUtil.buildStructuralElement;
@@ -48,7 +47,7 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
   private static final Logger logger =
       LoggerFactory.getLogger(OrchestrationTemplateCandidateDaoZusammenImpl.class);
 
-  private ZusammenAdaptor zusammenAdaptor;
+  private final ZusammenAdaptor zusammenAdaptor;
 
   private static final String EMPTY_DATA = "{}";
 
@@ -62,8 +61,8 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
   }
 
   @Override
-  public OrchestrationTemplateCandidateData get(String vspId, Version version) {
-    logger.info("Getting orchestration template for VendorSoftwareProduct id -> " + vspId);
+  public Optional<OrchestrationTemplateCandidateData> get(String vspId, Version version) {
+    logger.info("Getting orchestration template for vsp id {}", vspId);
 
     SessionContext context = createSessionContext();
     ElementContext elementContext = new ElementContext(vspId, version.getId());
@@ -71,93 +70,75 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
     Optional<Element> candidateElement =
         zusammenAdaptor.getElementByName(context, elementContext, null,
             ElementType.OrchestrationTemplateCandidate.name());
-    if (candidateElement.isPresent()) {
-      if (VspZusammenUtil.hasEmptyData(candidateElement.get().getData())) {
-        return null;
-      }
-      OrchestrationTemplateCandidateData candidateData = new OrchestrationTemplateCandidateData();
-      candidateData.setFilesDataStructure(
-          new String(FileUtils.toByteArray(candidateElement.get().getData())));
 
-      Collection<Element> subElements = candidateElement.get().getSubElements();
-      if (subElements.isEmpty()) {
-        return candidateData;
-      }
+    if (!candidateElement.isPresent() ||
+        VspZusammenUtil.hasEmptyData(candidateElement.get().getData()) ||
+        candidateElement.get().getSubElements().isEmpty()) {
+      logger.info("Orchestration template for vsp id {} does not exist / has empty data", vspId);
+      return Optional.empty();
+    }
 
-      for (Element element : subElements) {
-        Optional<Element> subElement = zusammenAdaptor.getElement(context,
-            elementContext, element.getElementId().toString());
-
-        if (subElement.get().getInfo().getName()
-            .equals(ElementType.OrchestrationTemplateCandidateContent
-                .name())) {
-          candidateData.setContentData(
-              ByteBuffer.wrap(FileUtils.toByteArray(subElement.get().getData())));
-          candidateData.setFileSuffix(subElement.get().getInfo()
-              .getProperty(InfoPropertyName.FILE_SUFFIX.getVal()));
-          candidateData.setFileName(subElement.get().getInfo()
-              .getProperty(InfoPropertyName.FILE_NAME.getVal()));
-        } else if (subElement.get().getInfo().getName()
-            .equals(ElementType.OrchestrationTemplateCandidateValidationData.name())) {
-          candidateData.setValidationData(new String(FileUtils.toByteArray(subElement
-              .get().getData())));
-        }
-      }
+    OrchestrationTemplateCandidateData candidate = new OrchestrationTemplateCandidateData();
+    candidate.setFilesDataStructure(
+        new String(FileUtils.toByteArray(candidateElement.get().getData())));
 
-      logger
-          .info("Finished getting orchestration template for VendorSoftwareProduct id -> " + vspId);
-      return candidateData;
-    }
-    logger.info(String
-        .format("Orchestration template for VendorSoftwareProduct id %s does not exist", vspId));
-    return null;
+    candidateElement.get().getSubElements().stream()
+        .map(element -> zusammenAdaptor
+            .getElement(context, elementContext, element.getElementId().toString()))
+        .forEach(element -> element.ifPresent(
+            candidateInfoElement -> populateCandidate(candidate, candidateInfoElement, true)));
+
+    logger.info("Finished getting orchestration template for vsp id {}", vspId);
+    return Optional.of(candidate);
   }
 
   @Override
-  public OrchestrationTemplateCandidateData getInfo(String vspId, Version version) {
-    logger.info("Getting orchestration template info for VendorSoftwareProduct id -> " + vspId);
+  public Optional<OrchestrationTemplateCandidateData> getInfo(String vspId, Version version) {
+    logger.info("Getting orchestration template info for vsp id {}", vspId);
 
     SessionContext context = createSessionContext();
     ElementContext elementContext = new ElementContext(vspId, version.getId());
 
-    OrchestrationTemplateCandidateData candidateData = new OrchestrationTemplateCandidateData();
-
     Optional<ElementInfo> candidateElement =
         zusammenAdaptor.getElementInfoByName(context, elementContext, null,
             ElementType.OrchestrationTemplateCandidate.name());
 
-    if (candidateElement.isPresent()) {
-      Collection<ElementInfo> subElements = candidateElement.get().getSubElements();
-      if (subElements.isEmpty()) {
-        return candidateData;
-      }
+    if (!candidateElement.isPresent() || candidateElement.get().getSubElements().isEmpty()) {
+      logger.info("Orchestration template info for vsp id {} does not exist", vspId);
+      return Optional.empty();
+    }
 
-      for (ElementInfo elementInfo : subElements) {
-        Optional<Element> subElement = zusammenAdaptor.getElement(context,
-            elementContext, elementInfo.getId().toString());
-
-        if (subElement.get().getInfo().getName().equals(ElementType
-            .OrchestrationTemplateCandidateContent.name())) {
-
-          candidateData.setFileSuffix(subElement.get().getInfo()
-              .getProperty(InfoPropertyName.FILE_SUFFIX.getVal()));
-          candidateData.setFileName(subElement.get().getInfo()
-              .getProperty(InfoPropertyName.FILE_NAME.getVal()));
-        } else if (subElement.get().getInfo().getName().equals(ElementType
-            .OrchestrationTemplateCandidateValidationData.name())) {
-          candidateData.setValidationData(new String(FileUtils.toByteArray(subElement.get()
-              .getData())));
-        }
+    OrchestrationTemplateCandidateData candidate = new OrchestrationTemplateCandidateData();
+    candidateElement.get().getSubElements().stream()
+        .map(elementInfo -> zusammenAdaptor
+            .getElement(context, elementContext, elementInfo.getId().toString()))
+        .forEach(element -> element.ifPresent(
+            candidateInfoElement -> populateCandidate(candidate, candidateInfoElement, false)));
+    logger.info("Finished getting orchestration template info for vsp id {}", vspId);
+    return candidate.getFileSuffix() == null ? Optional.empty() : Optional.of(candidate);
+  }
+
+  private void populateCandidate(OrchestrationTemplateCandidateData candidate,
+                                 Element candidateInfoElement,
+                                 boolean fullData) {
+    if (candidateInfoElement.getInfo().getName()
+        .equals(ElementType.OrchestrationTemplateCandidateContent.name())) {
+
+      if (fullData) {
+        candidate
+            .setContentData(ByteBuffer.wrap(FileUtils.toByteArray(candidateInfoElement.getData())));
       }
+      candidate.setFileSuffix(
+          candidateInfoElement.getInfo().getProperty(InfoPropertyName.FILE_SUFFIX.getVal()));
+      candidate.setFileName(
+          candidateInfoElement.getInfo().getProperty(InfoPropertyName.FILE_NAME.getVal()));
+
+    } else if (candidateInfoElement.getInfo().getName()
+        .equals(ElementType.OrchestrationTemplateCandidateValidationData.name())) {
 
-      logger.info(
-          "Finished getting orchestration template info for VendorSoftwareProduct id -> " + vspId);
-      return candidateData;
+      candidate
+          .setValidationData(new String(FileUtils.toByteArray(candidateInfoElement.getData())));
     }
-    logger.info(String
-        .format("Orchestration template info for VendorSoftwareProduct id %s does not exist",
-            vspId));
-    return null;
   }
 
   @Override
@@ -187,7 +168,7 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
   @Override
   public void update(String vspId, Version version,
                      OrchestrationTemplateCandidateData candidateData) {
-    logger.info("Uploading candidate data entity for VendorSoftwareProduct id -> " + vspId);
+    logger.info("Uploading candidate data entity for vsp id {}", vspId);
 
     ZusammenElement candidateElement =
         buildStructuralElement(ElementType.OrchestrationTemplateCandidate, Action.UPDATE);
@@ -215,15 +196,14 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
     ElementContext elementContext = new ElementContext(vspId, version.getId());
     zusammenAdaptor.saveElement(context, elementContext, candidateElement,
         "Update Orchestration Template Candidate");
-    logger
-        .info("Finished uploading candidate data entity for VendorSoftwareProduct id -> " + vspId);
+    logger.info("Finished uploading candidate data entity for vsp id {}", vspId);
   }
 
   @Override
-  public void updateValidationData(String vspId, Version version, ValidationStructureList
-      validationData) {
-    logger.info("Updating validation data of  orchestration template candidate for VSP id -> "
-        + vspId);
+  public void updateValidationData(String vspId, Version version,
+                                   ValidationStructureList validationData) {
+    logger
+        .info("Updating validation data of orchestration template candidate for VSP id {} ", vspId);
 
     ZusammenElement validationDataElement = buildStructuralElement(ElementType
         .OrchestrationTemplateCandidateValidationData, Action.UPDATE);
@@ -238,13 +218,14 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
     ElementContext elementContext = new ElementContext(vspId, version.getId());
     zusammenAdaptor.saveElement(context, elementContext, candidateElement,
         "Update Orchestration Template Candidate validation data");
-    logger.info("Finished updating validation data of  orchestration template candidate for VSP "
-        + "id -> " + vspId);
+    logger
+        .info("Finished updating validation data of orchestration template candidate for VSP id {}",
+            vspId);
   }
 
   @Override
   public void updateStructure(String vspId, Version version, FilesDataStructure fileDataStructure) {
-    logger.info("Updating orchestration template for VSP id -> " + vspId);
+    logger.info("Updating orchestration template for VSP id {}", vspId);
 
     ZusammenElement candidateElement =
         buildStructuralElement(ElementType.OrchestrationTemplateCandidate, Action.UPDATE);
@@ -255,15 +236,13 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
     ElementContext elementContext = new ElementContext(vspId, version.getId());
     zusammenAdaptor.saveElement(context, elementContext, candidateElement,
         "Update Orchestration Template Candidate structure");
-    logger
-        .info("Finished uploading candidate data entity for VendorSoftwareProduct id -> " + vspId);
+    logger.info("Finished uploading candidate data entity for vsp id {}", vspId);
   }
 
 
   @Override
   public Optional<String> getStructure(String vspId, Version version) {
-    logger.info("Getting orchestration template candidate structure for VendorSoftwareProduct id "
-        + "-> " + vspId);
+    logger.info("Getting orchestration template candidate structure for vsp id {}", vspId);
 
     SessionContext context = createSessionContext();
     ElementContext elementContext = new ElementContext(vspId, version.getId());
@@ -275,9 +254,7 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
       return Optional.of(new String(FileUtils.toByteArray(element.get().getData())));
     }
 
-    logger.info(
-        "Finished getting orchestration template candidate structure for VendorSoftwareProduct "
-            + "id -> " + vspId);
+    logger.info("Finished getting orchestration template candidate structure for vsp id {}", vspId);
 
     return Optional.empty();
   }
@@ -286,13 +263,13 @@ public class OrchestrationTemplateCandidateDaoZusammenImpl
     FILE_SUFFIX("fileSuffix"),
     FILE_NAME("fileName");
 
-    private String val;
+    private final String val;
 
-    InfoPropertyName(String val){
+    InfoPropertyName(String val) {
       this.val = val;
     }
 
-    public String getVal() {
+    String getVal() {
       return val;
     }
   }
index 4618d28..43a94e0 100644 (file)
@@ -70,7 +70,7 @@ import java.util.zip.ZipOutputStream;
 import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
 
 public class CandidateServiceImpl implements CandidateService {
-  protected static final Logger logger = LoggerFactory.getLogger(CandidateServiceImpl.class);
+  private static final Logger logger = LoggerFactory.getLogger(CandidateServiceImpl.class);
   private CandidateServiceValidator candidateServiceValidator = new CandidateServiceValidator();
   private ManifestCreator manifestCreator;
   private OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDao;
@@ -79,7 +79,6 @@ public class CandidateServiceImpl implements CandidateService {
                               OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDao) {
     this.manifestCreator = manifestCreator;
     this.orchestrationTemplateCandidateDao = orchestrationTemplateCandidateDao;
-
   }
 
   public CandidateServiceImpl() {
@@ -125,8 +124,7 @@ public class CandidateServiceImpl implements CandidateService {
   private String heatStructureTreeToFileDataStructure(HeatStructureTree tree,
                                                       FileContentHandler zipContentMap,
                                                       Map<String, List<ErrorMessage>> uploadErrors,
-                                                      AnalyzedZipHeatFiles analyzedZipHeatFiles)
-      throws Exception {
+                                                      AnalyzedZipHeatFiles analyzedZipHeatFiles) {
     FilesDataStructure structure = new FilesDataStructure();
     Set<String> usedEnvFiles = new HashSet<>();
     addHeatsToFileDataStructure(tree, usedEnvFiles, structure, uploadErrors,
@@ -150,7 +148,7 @@ public class CandidateServiceImpl implements CandidateService {
   @Override
   public OrchestrationTemplateCandidateData createCandidateDataEntity(
       CandidateDataEntityTo candidateDataEntityTo, InputStream zipFileManifest,
-      AnalyzedZipHeatFiles analyzedZipHeatFiles) throws Exception {
+      AnalyzedZipHeatFiles analyzedZipHeatFiles) {
     FileContentHandler zipContentMap = candidateDataEntityTo.getContentMap();
     FilesDataStructure filesDataStructure;
     String dataStructureJson;
@@ -183,8 +181,7 @@ public class CandidateServiceImpl implements CandidateService {
 
   private void balanceManifestFilesWithZipFiles(
       FilesDataStructure filesDataStructure,
-      FileContentHandler fileContentHandler, AnalyzedZipHeatFiles analyzedZipHeatFiles)
-      throws Exception {
+      FileContentHandler fileContentHandler, AnalyzedZipHeatFiles analyzedZipHeatFiles) {
     Set<String> zipFileList = fileContentHandler.getFileList();
     filesDataStructure.getNested().addAll(analyzedZipHeatFiles.getNestedFiles());
     List<Module> modules = filesDataStructure.getModules();
@@ -249,9 +246,9 @@ public class CandidateServiceImpl implements CandidateService {
         CollectionUtils.addIgnoreNull(fileNames, module.getYaml());
       }
     }
-    fileNames.addAll(filesDataStructure.getArtifacts().stream().collect(Collectors.toSet()));
-    fileNames.addAll(filesDataStructure.getNested().stream().collect(Collectors.toSet()));
-    fileNames.addAll(filesDataStructure.getUnassigned().stream().collect(Collectors.toSet()));
+    fileNames.addAll(filesDataStructure.getArtifacts());
+    fileNames.addAll(filesDataStructure.getNested());
+    fileNames.addAll(filesDataStructure.getUnassigned());
 
     return fileNames;
   }
@@ -336,24 +333,23 @@ public class CandidateServiceImpl implements CandidateService {
   }
 
   @Override
-  public OrchestrationTemplateCandidateData getOrchestrationTemplateCandidate(String vspId,
-                                                                              Version version) {
+  public Optional<OrchestrationTemplateCandidateData> getOrchestrationTemplateCandidate(String vspId,
+                                                                                        Version version) {
     return orchestrationTemplateCandidateDao.get(vspId, version);
   }
 
   @Override
-  public OrchestrationTemplateCandidateData getOrchestrationTemplateCandidateInfo(String vspId,
-                                                                                  Version version) {
+  public Optional<OrchestrationTemplateCandidateData> getOrchestrationTemplateCandidateInfo(
+      String vspId,
+      Version version) {
     return orchestrationTemplateCandidateDao.getInfo(vspId, version);
   }
 
   @Override
   public String createManifest(VspDetails vspDetails, FilesDataStructure structure) {
-    Optional<ManifestContent> manifest = manifestCreator.createManifest(vspDetails, structure);
-    if (!manifest.isPresent()) {
-      throw new RuntimeException(Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage());
-    }
-    return JsonUtil.object2Json(manifest.get());
+    return JsonUtil.object2Json(manifestCreator.createManifest(vspDetails, structure)
+        .orElseThrow(() -> new CoreException(new ErrorCode.ErrorCodeBuilder()
+            .withMessage(Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage()).build())));
   }
 
   @Override
@@ -372,7 +368,7 @@ public class CandidateServiceImpl implements CandidateService {
     byte[] file;
     ByteArrayInputStream byteArrayInputStream = null;
     try {
-      file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, vspId, type);
+      file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, type);
       byteArrayInputStream = new ByteArrayInputStream(
           Objects.isNull(file) ? candidateDataEntity.getContentData().array()
               : file);
@@ -388,7 +384,7 @@ public class CandidateServiceImpl implements CandidateService {
   }
 
   @Override
-  public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId,
+  public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest,
                                      OnboardingTypesEnum type)
       throws IOException {
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -525,19 +521,14 @@ public class CandidateServiceImpl implements CandidateService {
   }
 
   private boolean isEnvFileUsedByHeatFile(Set<String> usedEnvFiles, HeatStructureTree other) {
-    if (HeatFileAnalyzer.isEnvFile(other.getFileName())) {
-      if (usedEnvFiles.contains(other.getFileName())) {
-        return true;
-      }
-    }
-    return false;
+    return HeatFileAnalyzer.isEnvFile(other.getFileName()) &&
+        usedEnvFiles.contains(other.getFileName());
   }
 
   private void addHeatsToFileDataStructure(HeatStructureTree tree, Set<String> usedEnvFiles,
                                            FilesDataStructure structure,
                                            Map<String, List<ErrorMessage>> uploadErrors,
-                                           AnalyzedZipHeatFiles analyzedZipHeatFiles)
-      throws Exception {
+                                           AnalyzedZipHeatFiles analyzedZipHeatFiles) {
     List<Module> modules = new ArrayList<>();
     Set<HeatStructureTree> heatsSet = tree.getHeat();
     if (Objects.isNull(heatsSet)) {