[SDC] Onboarding 1710 rebase.
[sdc.git] / 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 e05c848..6ccece1 100644 (file)
@@ -71,553 +71,560 @@ import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
 public class CandidateServiceImpl implements CandidateService {
-  protected static final Logger logger = LoggerFactory.getLogger(CandidateServiceImpl.class);
-  private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+    protected static final Logger logger = LoggerFactory.getLogger(CandidateServiceImpl.class);
+    private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
 
-  private CandidateServiceValidator candidateServiceValidator = new CandidateServiceValidator();
-  private ManifestCreator manifestCreator;
-  private OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao;
+    private CandidateServiceValidator candidateServiceValidator = new CandidateServiceValidator();
+    private ManifestCreator manifestCreator;
+    private OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao;
 
-  public CandidateServiceImpl(ManifestCreator manifestCreator,
-                              OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao) {
-    this.manifestCreator = manifestCreator;
-    this.orchestrationTemplateCandidateDataDao = orchestrationTemplateCandidateDataDao;
+    public CandidateServiceImpl(ManifestCreator manifestCreator,
+                                OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao) {
+        this.manifestCreator = manifestCreator;
+        this.orchestrationTemplateCandidateDataDao = orchestrationTemplateCandidateDataDao;
 
-  }
+    }
 
-  public CandidateServiceImpl() {
-  }
+    public CandidateServiceImpl() {
+    }
 
-  @Override
-  public Optional<ErrorMessage> validateNonEmptyFileToUpload(InputStream heatFileToUpload) {
+    @Override
+    public Optional<ErrorMessage> validateNonEmptyFileToUpload(InputStream heatFileToUpload) {
 
 
-    mdcDataDebugMessage.debugEntryMessage(null);
+        mdcDataDebugMessage.debugEntryMessage(null);
 
-    if (Objects.isNull(heatFileToUpload)) {
-      return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
-          Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
-    } else {
-      try {
-        int available = heatFileToUpload.available();
-        if (available == 0) {
-          mdcDataDebugMessage.debugExitMessage(null);
-          return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
-              Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+        if (Objects.isNull(heatFileToUpload)) {
+            return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+                Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+        } else {
+            try {
+                int available = heatFileToUpload.available();
+                if (available == 0) {
+                    mdcDataDebugMessage.debugExitMessage(null);
+                    return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+                        Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+                }
+            } catch (IOException e) {
+                mdcDataDebugMessage.debugExitMessage(null);
+                return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+                    Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+            }
         }
-      } catch (IOException e) {
+
         mdcDataDebugMessage.debugExitMessage(null);
-        return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
-            Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
-      }
+        return Optional.empty();
     }
 
-    mdcDataDebugMessage.debugExitMessage(null);
-    return Optional.empty();
-  }
-
-  @Override
-  public Optional<ErrorMessage> validateRawZipData(byte[] uploadedFileData) {
-    if (Objects.isNull(uploadedFileData)) {
-      return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
-          Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
-    }
-    return Optional.empty();
-  }
-
-  private String heatStructureTreeToFileDataStructure(HeatStructureTree tree,
-                                                      FileContentHandler zipContentMap,
-                                                      Map<String, List<ErrorMessage>> uploadErrors,
-                                                      AnalyzedZipHeatFiles analyzedZipHeatFiles)
-      throws Exception {
-    FilesDataStructure structure = new FilesDataStructure();
-    Set<String> usedEnvFiles = new HashSet<>();
-    addHeatsToFileDataStructure(tree, usedEnvFiles, structure, uploadErrors,
-        analyzedZipHeatFiles);
-    handleOtherResources(tree, usedEnvFiles, structure);
-    FilesDataStructure fileDataStructureFromManifest =
-        createFileDataStructureFromManifest(zipContentMap.getFileContent
-            (SdcCommon.MANIFEST_NAME));
-    List<String> structureArtifacts = structure.getArtifacts();
-    structureArtifacts.addAll(fileDataStructureFromManifest.getArtifacts().stream().filter
-        (artifact -> !structureArtifacts.contains(artifact)).collect((Collectors.toList())));
-    handleArtifactsFromTree(tree, structure);
-
-    return JsonUtil.object2Json(structure);
-  }
-
-  @Override
-  public OrchestrationTemplateCandidateData createCandidateDataEntity(
-      CandidateDataEntityTo candidateDataEntityTo, InputStream zipFileManifest,
-      AnalyzedZipHeatFiles analyzedZipHeatFiles) throws Exception {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null);
-
-    FileContentHandler zipContentMap = candidateDataEntityTo.getContentMap();
-    FilesDataStructure filesDataStructure;
-    String dataStructureJson;
-
-    if (zipFileManifest != null) {
-      // create data structure from manifest
-      filesDataStructure = createFileDataStructureFromManifest(zipFileManifest);
-      Set<String> zipFileList = zipContentMap.getFileList();
-      balanceManifestFilesWithZipFiles(filesDataStructure,
-          zipContentMap, analyzedZipHeatFiles);
-      Set<String> filesDataStructureFiles = getFlatFileNames(filesDataStructure);
-      filesDataStructure.getUnassigned().addAll(zipFileList.stream()
-          .filter(fileName -> (!filesDataStructureFiles.contains(fileName) &&
-              !filesDataStructure.getNested().contains(fileName) &&
-              !fileName.equals(SdcCommon.MANIFEST_NAME)))
-          .collect(Collectors.toList()));
-      dataStructureJson = JsonUtil.object2Json(filesDataStructure);
-    } else {
-      // create data structure from based on naming convention
-      dataStructureJson =
-          heatStructureTreeToFileDataStructure(candidateDataEntityTo.getTree(), zipContentMap,
-              candidateDataEntityTo.getErrors(), analyzedZipHeatFiles);
-    }
-
-    mdcDataDebugMessage.debugExitMessage(null);
-    return new OrchestrationTemplateCandidateData(
-        ByteBuffer.wrap(candidateDataEntityTo.getUploadedFileData()), dataStructureJson);
-  }
-
-  private void balanceManifestFilesWithZipFiles(
-      FilesDataStructure filesDataStructure,
-      FileContentHandler fileContentHandler, AnalyzedZipHeatFiles analyzedZipHeatFiles)
-      throws Exception {
-    Set<String> zipFileList = fileContentHandler.getFileList();
-    filesDataStructure.getNested().addAll(analyzedZipHeatFiles.getNestedFiles());
-    List<Module> modules = filesDataStructure.getModules();
-    if (CollectionUtils.isEmpty(modules)) {
-      return;
-    }
-
-    for (int i = 0; i < modules.size(); i++) {
-      Module module = modules.get(i);
-      if (!isFileExistInZipContains(zipFileList, module.getYaml())) {
-        addFileToUnassigned(filesDataStructure, zipFileList, module.getEnv());
-        addFileToUnassigned(filesDataStructure, zipFileList, module.getVol());
-        addFileToUnassigned(filesDataStructure, zipFileList, module.getVolEnv());
-        modules.remove(i--);
-      } else if (Objects.nonNull(module.getVol()) && !zipFileList.contains(module.getVol())) {
-        module.setVol(null);
-        CollectionUtils.addIgnoreNull(filesDataStructure.getUnassigned(), module.getVolEnv());
-      } else {
-        if (filesDataStructure.getNested().contains(module.getYaml())) {
-          moveModuleFileToNested(filesDataStructure, i--, module);
+    @Override
+    public Optional<ErrorMessage> validateRawZipData(byte[] uploadedFileData) {
+        if (Objects.isNull(uploadedFileData)) {
+            return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+                Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
         }
-      }
+        return Optional.empty();
     }
-  }
 
-  private void addFileToUnassigned(FilesDataStructure filesDataStructure, Set<String> zipFileList,
-                                   String fileName) {
-    if (isFileExistInZipContains(zipFileList, fileName)) {
-      filesDataStructure.getUnassigned().add(fileName);
+    private String heatStructureTreeToFileDataStructure(HeatStructureTree tree,
+                                                        FileContentHandler zipContentMap,
+                                                        Map<String, List<ErrorMessage>> uploadErrors,
+                                                        AnalyzedZipHeatFiles analyzedZipHeatFiles)
+        throws Exception {
+        FilesDataStructure structure = new FilesDataStructure();
+        Set<String> usedEnvFiles = new HashSet<>();
+        addHeatsToFileDataStructure(tree, usedEnvFiles, structure, uploadErrors,
+            analyzedZipHeatFiles);
+        handleOtherResources(tree, usedEnvFiles, structure);
+        FilesDataStructure fileDataStructureFromManifest =
+            createFileDataStructureFromManifest(zipContentMap.getFileContent
+                (SdcCommon.MANIFEST_NAME));
+        List<String> structureArtifacts = structure.getArtifacts();
+        structureArtifacts.addAll(fileDataStructureFromManifest.getArtifacts().stream().filter
+            (artifact -> !structureArtifacts.contains(artifact)).collect((Collectors.toList())));
+        handleArtifactsFromTree(tree, structure);
+
+        return JsonUtil.object2Json(structure);
     }
-  }
 
-  private boolean isFileExistInZipContains(Set<String> zipFileList, String fileName) {
-    return Objects.nonNull(fileName) && zipFileList.contains(fileName);
-  }
+    @Override
+    public OrchestrationTemplateCandidateData createCandidateDataEntity(
+        CandidateDataEntityTo candidateDataEntityTo, InputStream zipFileManifest,
+        AnalyzedZipHeatFiles analyzedZipHeatFiles) throws Exception {
+
+
+        mdcDataDebugMessage.debugEntryMessage(null);
+
+        FileContentHandler zipContentMap = candidateDataEntityTo.getContentMap();
+        FilesDataStructure filesDataStructure;
+        String dataStructureJson;
+
+        if (zipFileManifest != null) {
+            // create data structure from manifest
+            filesDataStructure = createFileDataStructureFromManifest(zipFileManifest);
+            Set<String> zipFileList = zipContentMap.getFileList();
+            balanceManifestFilesWithZipFiles(filesDataStructure,
+                zipContentMap, analyzedZipHeatFiles);
+            Set<String> filesDataStructureFiles = getFlatFileNames(filesDataStructure);
+            filesDataStructure.getUnassigned().addAll(zipFileList.stream()
+                .filter(fileName -> (!filesDataStructureFiles.contains(fileName) &&
+                    !filesDataStructure.getNested().contains(fileName) &&
+                    !fileName.equals(SdcCommon.MANIFEST_NAME)))
+                .collect(Collectors.toList()));
+            dataStructureJson = JsonUtil.object2Json(filesDataStructure);
+        } else {
+            // create data structure from based on naming convention
+            dataStructureJson =
+                heatStructureTreeToFileDataStructure(candidateDataEntityTo.getTree(), zipContentMap,
+                    candidateDataEntityTo.getErrors(), analyzedZipHeatFiles);
+        }
 
-  private void moveModuleFileToNested(FilesDataStructure filesDataStructure, int i, Module module) {
-    if (!filesDataStructure.getNested().contains(module.getYaml())) {
-      filesDataStructure.getNested().add(module.getYaml());
+        mdcDataDebugMessage.debugExitMessage(null);
+        return new OrchestrationTemplateCandidateData(
+            ByteBuffer.wrap(candidateDataEntityTo.getUploadedFileData()), dataStructureJson);
     }
-    if (Objects.nonNull(module.getEnv())) {
-      filesDataStructure.getNested().add(module.getEnv());
+
+    private void balanceManifestFilesWithZipFiles(
+        FilesDataStructure filesDataStructure,
+        FileContentHandler fileContentHandler, AnalyzedZipHeatFiles analyzedZipHeatFiles)
+        throws Exception {
+        Set<String> zipFileList = fileContentHandler.getFileList();
+        filesDataStructure.getNested().addAll(analyzedZipHeatFiles.getNestedFiles());
+        List<Module> modules = filesDataStructure.getModules();
+        if (CollectionUtils.isEmpty(modules)) {
+            return;
+        }
+
+        for (int i = 0; i < modules.size(); i++) {
+            Module module = modules.get(i);
+            if (!isFileExistInZipContains(zipFileList, module.getYaml())) {
+                addFileToUnassigned(filesDataStructure, zipFileList, module.getEnv());
+                addFileToUnassigned(filesDataStructure, zipFileList, module.getVol());
+                addFileToUnassigned(filesDataStructure, zipFileList, module.getVolEnv());
+                modules.remove(i--);
+            } else if (Objects.nonNull(module.getVol()) && !zipFileList.contains(module.getVol())) {
+                module.setVol(null);
+                CollectionUtils
+                    .addIgnoreNull(filesDataStructure.getUnassigned(), module.getVolEnv());
+            } else {
+                if (filesDataStructure.getNested().contains(module.getYaml())) {
+                    moveModuleFileToNested(filesDataStructure, i--, module);
+                }
+            }
+        }
     }
-    if (Objects.nonNull(module.getVol())) {
-      filesDataStructure.getNested().add(module.getVol());
+
+    private void addFileToUnassigned(FilesDataStructure filesDataStructure, Set<String> zipFileList,
+                                     String fileName) {
+        if (isFileExistInZipContains(zipFileList, fileName)) {
+            filesDataStructure.getUnassigned().add(fileName);
+        }
     }
-    if (Objects.nonNull(module.getVolEnv())) {
-      filesDataStructure.getNested().add(module.getVolEnv());
+
+    private boolean isFileExistInZipContains(Set<String> zipFileList, String fileName) {
+        return Objects.nonNull(fileName) && zipFileList.contains(fileName);
     }
-    filesDataStructure.getModules().remove(i);
-  }
 
-  private Set<String> getFlatFileNames(FilesDataStructure filesDataStructure) {
-    Set<String> fileNames = new HashSet<>();
-    if (!CollectionUtils.isEmpty(filesDataStructure.getModules())) {
-      for (Module module : filesDataStructure.getModules()) {
-        CollectionUtils.addIgnoreNull(fileNames, module.getEnv());
-        CollectionUtils.addIgnoreNull(fileNames, module.getVol());
-        CollectionUtils.addIgnoreNull(fileNames, module.getVolEnv());
-        CollectionUtils.addIgnoreNull(fileNames, module.getYaml());
-      }
+    private void moveModuleFileToNested(FilesDataStructure filesDataStructure, int i,
+                                        Module module) {
+        if (!filesDataStructure.getNested().contains(module.getYaml())) {
+            filesDataStructure.getNested().add(module.getYaml());
+        }
+        if (Objects.nonNull(module.getEnv())) {
+            filesDataStructure.getNested().add(module.getEnv());
+        }
+        if (Objects.nonNull(module.getVol())) {
+            filesDataStructure.getNested().add(module.getVol());
+        }
+        if (Objects.nonNull(module.getVolEnv())) {
+            filesDataStructure.getNested().add(module.getVolEnv());
+        }
+        filesDataStructure.getModules().remove(i);
     }
-    fileNames.addAll(filesDataStructure.getArtifacts().stream().collect(Collectors.toSet()));
-    fileNames.addAll(filesDataStructure.getNested().stream().collect(Collectors.toSet()));
-    fileNames.addAll(filesDataStructure.getUnassigned().stream().collect(Collectors.toSet()));
 
-    return fileNames;
-  }
+    private Set<String> getFlatFileNames(FilesDataStructure filesDataStructure) {
+        Set<String> fileNames = new HashSet<>();
+        if (!CollectionUtils.isEmpty(filesDataStructure.getModules())) {
+            for (Module module : filesDataStructure.getModules()) {
+                CollectionUtils.addIgnoreNull(fileNames, module.getEnv());
+                CollectionUtils.addIgnoreNull(fileNames, module.getVol());
+                CollectionUtils.addIgnoreNull(fileNames, module.getVolEnv());
+                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()));
+
+        return fileNames;
+    }
 
-  private FilesDataStructure createFileDataStructureFromManifest(InputStream isManifestContent) {
+    private FilesDataStructure createFileDataStructureFromManifest(InputStream isManifestContent) {
+
+
+        mdcDataDebugMessage.debugEntryMessage(null);
+
+        ManifestContent manifestContent =
+            JsonUtil.json2Object(isManifestContent, ManifestContent.class);
+        FilesDataStructure structure = new FilesDataStructure();
+        for (FileData fileData : manifestContent.getData()) {
+            if (Objects.nonNull(fileData.getType()) &&
+                fileData.getType().equals(FileData.Type.HEAT)) {
+                Module module = new Module();
+                module.setYaml(fileData.getFile());
+                module.setIsBase(fileData.getBase());
+                addHeatDependenciesToModule(module, fileData.getData());
+                structure.getModules().add(module);
+            } else if (HeatFileAnalyzer.isYamlOrEnvFile(fileData.getFile()) &&
+                !FileData.Type.isArtifact(fileData.getType())) {
+                structure.getUnassigned().add(fileData.getFile());
+            } else {
+                structure.getArtifacts().add(fileData.getFile());
+            }
+        }
 
+        mdcDataDebugMessage.debugExitMessage(null);
+        return structure;
+    }
 
-    mdcDataDebugMessage.debugEntryMessage(null);
+    private void addHeatDependenciesToModule(Module module, List<FileData> data) {
+        if (CollectionUtils.isEmpty(data)) {
+            return;
+        }
 
-    ManifestContent manifestContent =
-        JsonUtil.json2Object(isManifestContent, ManifestContent.class);
-    FilesDataStructure structure = new FilesDataStructure();
-    for (FileData fileData : manifestContent.getData()) {
-      if (Objects.nonNull(fileData.getType()) && fileData.getType().equals(FileData.Type.HEAT)) {
-        Module module = new Module();
-        module.setYaml(fileData.getFile());
-        module.setIsBase(fileData.getBase());
-        addHeatDependenciesToModule(module, fileData.getData());
-        structure.getModules().add(module);
-      } else if (HeatFileAnalyzer.isYamlOrEnvFile(fileData.getFile()) &&
-          !FileData.Type.isArtifact(fileData.getType())) {
-        structure.getUnassigned().add(fileData.getFile());
-      } else {
-        structure.getArtifacts().add(fileData.getFile());
-      }
-    }
-
-    mdcDataDebugMessage.debugExitMessage(null);
-    return structure;
-  }
-
-  private void addHeatDependenciesToModule(Module module, List<FileData> data) {
-    if (CollectionUtils.isEmpty(data)) {
-      return;
-    }
-
-    for (FileData fileData : data) {
-      if (fileData.getType().equals(FileData.Type.HEAT_ENV)) {
-        module.setEnv(fileData.getFile());
-      } else if (fileData.getType().equals(FileData.Type.HEAT_VOL))// must be volume
-      {
-        module.setVol(fileData.getFile());
-        if (!CollectionUtils.isEmpty(fileData.getData())) {
-          FileData volEnv = fileData.getData().get(0);
-          if (volEnv.getType().equals(FileData.Type.HEAT_ENV)) {
-            module.setVolEnv(volEnv.getFile());
-          } else {
-            throw new CoreException((new ErrorCode.ErrorCodeBuilder())
-                .withMessage(Messages.ILLEGAL_MANIFEST.getErrorMessage())
-                .withId(Messages.ILLEGAL_MANIFEST.getErrorMessage())
-                .withCategory(ErrorCategory.APPLICATION).build());
-          }
+        for (FileData fileData : data) {
+            if (fileData.getType().equals(FileData.Type.HEAT_ENV)) {
+                module.setEnv(fileData.getFile());
+            } else if (fileData.getType().equals(FileData.Type.HEAT_VOL))// must be volume
+            {
+                module.setVol(fileData.getFile());
+                if (!CollectionUtils.isEmpty(fileData.getData())) {
+                    FileData volEnv = fileData.getData().get(0);
+                    if (volEnv.getType().equals(FileData.Type.HEAT_ENV)) {
+                        module.setVolEnv(volEnv.getFile());
+                    } else {
+                        throw new CoreException((new ErrorCode.ErrorCodeBuilder())
+                            .withMessage(Messages.ILLEGAL_MANIFEST.getErrorMessage())
+                            .withId(Messages.ILLEGAL_MANIFEST.getErrorMessage())
+                            .withCategory(ErrorCategory.APPLICATION).build());
+                    }
+                }
+            } else {
+                throw new CoreException((new ErrorCode.ErrorCodeBuilder())
+                    .withMessage(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
+                    .withId(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
+                    .withCategory(ErrorCategory.APPLICATION).build());
+            }
         }
-      } else {
-        throw new CoreException((new ErrorCode.ErrorCodeBuilder())
-            .withMessage(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
-            .withId(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
-            .withCategory(ErrorCategory.APPLICATION).build());
-      }
     }
-  }
 
-  @Override
-  public void updateCandidateUploadData(OrchestrationTemplateCandidateData uploadData,
-                                        String itemId) {
-    mdcDataDebugMessage.debugEntryMessage(null);
+    @Override
+    public void updateCandidateUploadData(OrchestrationTemplateCandidateData uploadData,
+                                          String itemId) {
+        mdcDataDebugMessage.debugEntryMessage(null);
 
-    //vendorSoftwareProductDao.updateCandidateUploadData(uploadData);
-    orchestrationTemplateCandidateDataDao.update(itemId, uploadData);
+        //vendorSoftwareProductDao.updateCandidateUploadData(uploadData);
+        orchestrationTemplateCandidateDataDao.update(itemId, uploadData);
 
-    mdcDataDebugMessage.debugExitMessage(null);
-  }
+        mdcDataDebugMessage.debugExitMessage(null);
+    }
 
-  @Override
-  public Optional<FilesDataStructure> getOrchestrationTemplateCandidateFileDataStructure(
-      String vspId, Version version) {
+    @Override
+    public Optional<FilesDataStructure> getOrchestrationTemplateCandidateFileDataStructure(
+        String vspId, Version version) {
 
-    mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
+        mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
 
-    Optional<String> jsonFileDataStructure =
-        orchestrationTemplateCandidateDataDao.getStructure(vspId, version);
+        Optional<String> jsonFileDataStructure =
+            orchestrationTemplateCandidateDataDao.getStructure(vspId, version);
 
-    if (jsonFileDataStructure.isPresent()) {
-      mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
-      return Optional
-          .of(JsonUtil.json2Object(jsonFileDataStructure.get(), FilesDataStructure.class));
-    } else {
-      mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
-      return Optional.empty();
+        if (jsonFileDataStructure.isPresent()) {
+            mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
+            return Optional
+                .of(JsonUtil.json2Object(jsonFileDataStructure.get(), FilesDataStructure.class));
+        } else {
+            mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
+            return Optional.empty();
+        }
     }
-  }
 
-  @Override
-  public void updateOrchestrationTemplateCandidateFileDataStructure(String vspId, Version version,
-                                                                    FilesDataStructure fileDataStructure) {
-    OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface()
-        .updateStructure(vspId, version, fileDataStructure);
-  }
+    @Override
+    public void updateOrchestrationTemplateCandidateFileDataStructure(String vspId, Version version,
+                                                                      FilesDataStructure fileDataStructure) {
+        OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface()
+            .updateStructure(vspId, version, fileDataStructure);
+    }
 
-  @Override
-  public OrchestrationTemplateCandidateData getOrchestrationTemplateCandidate(String vspId,
-                                                                              Version version) {
-    mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
-    mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
+    @Override
+    public OrchestrationTemplateCandidateData getOrchestrationTemplateCandidate(String vspId,
+                                                                                Version version) {
+        mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
+        mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
 
-    return orchestrationTemplateCandidateDataDao.get(vspId, version);
-  }
+        return orchestrationTemplateCandidateDataDao.get(vspId, version);
+    }
 
   @Override
   public String createManifest(VspDetails vspDetails, FilesDataStructure structure) {
 
-    mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
+        mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
 
-    Optional<ManifestContent> manifest = manifestCreator.createManifest(vspDetails, structure);
-    if (!manifest.isPresent()) {
-      throw new RuntimeException(Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage());
+        Optional<ManifestContent> manifest = manifestCreator.createManifest(vspDetails, structure);
+        if (!manifest.isPresent()) {
+            throw new RuntimeException(Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage());
+        }
+
+        mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
+        return JsonUtil.object2Json(manifest.get());
     }
 
-    mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
-    return JsonUtil.object2Json(manifest.get());
-  }
+    @Override
+    public Optional<ManifestContent> createManifest(VspDetails vspDetails,
+                                                    FileContentHandler fileContentHandler,
+                                                    AnalyzedZipHeatFiles analyzedZipHeatFiles) {
 
-  @Override
-  public Optional<ManifestContent> createManifest(VspDetails vspDetails,
-                                                  FileContentHandler fileContentHandler,
-                                                  AnalyzedZipHeatFiles analyzedZipHeatFiles) {
 
+        mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
 
-    mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
+        mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
+        return manifestCreator.createManifest(vspDetails, fileContentHandler, analyzedZipHeatFiles);
+    }
 
-    mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
-    return manifestCreator.createManifest(vspDetails, fileContentHandler, analyzedZipHeatFiles);
-  }
+    @Override
+    public Optional<ByteArrayInputStream> fetchZipFileByteArrayInputStream(String vspId,
+                                                                           OrchestrationTemplateCandidateData candidateDataEntity,
+                                                                           String manifest,
+                                                                           Map<String, List<ErrorMessage>> uploadErrors) {
+        byte[] file;
+        ByteArrayInputStream byteArrayInputStream = null;
+        try {
+            file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, vspId);
+            byteArrayInputStream = new ByteArrayInputStream(
+                Objects.isNull(file) ? candidateDataEntity.getContentData().array()
+                    : file);
+        } catch (IOException e) {
+            ErrorMessage errorMessage =
+                new ErrorMessage(ErrorLevel.ERROR,
+                    Messages.CANDIDATE_PROCESS_FAILED.getErrorMessage());
+            logger.error(errorMessage.getMessage(), e);
+            ErrorsUtil
+                .addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE, errorMessage, uploadErrors);
+        }
+        return Optional.ofNullable(byteArrayInputStream);
+    }
 
-  @Override
-  public Optional<ByteArrayInputStream> fetchZipFileByteArrayInputStream(String vspId,
-                                                                         OrchestrationTemplateCandidateData candidateDataEntity,
-                                                                         String manifest,
-                                                                         Map<String, List<ErrorMessage>> uploadErrors) {
-    byte[] file;
-    ByteArrayInputStream byteArrayInputStream = null;
-    try {
-      file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, vspId);
-      byteArrayInputStream = new ByteArrayInputStream(
-          Objects.isNull(file) ? candidateDataEntity.getContentData().array()
-              : file);
-    } catch (IOException e) {
-      ErrorMessage errorMessage =
-          new ErrorMessage(ErrorLevel.ERROR, Messages.CANDIDATE_PROCESS_FAILED.getErrorMessage());
-      logger.error(errorMessage.getMessage(), e);
-      ErrorsUtil.addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE, errorMessage, uploadErrors);
-    }
-    return Optional.ofNullable(byteArrayInputStream);
-  }
+    @Override
+    public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId)
+        throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+        try (final ZipOutputStream zos = new ZipOutputStream(baos);
+             ZipInputStream zipStream = new ZipInputStream(
+                 new ByteArrayInputStream(contentData.array()))) {
+            ZipEntry zipEntry;
+            boolean manifestWritten = false;
+            while ((zipEntry = zipStream.getNextEntry()) != null) {
+                if (!zipEntry.getName().equalsIgnoreCase(SdcCommon.MANIFEST_NAME)) {
+                    ZipEntry loc_ze = new ZipEntry(zipEntry.getName());
+                    zos.putNextEntry(loc_ze);
+                    byte[] buf = new byte[1024];
+                    int len;
+                    while ((len = zipStream.read(buf)) > 0) {
+                        zos.write(buf, 0, (len < buf.length) ? len : buf.length);
+                    }
+                } else {
+                    manifestWritten = true;
+                    writeManifest(manifest, zos);
+                }
+                zos.closeEntry();
+            }
+            if (!manifestWritten) {
+                writeManifest(manifest, zos);
+                zos.closeEntry();
+            }
+        }
+        return baos.toByteArray();
+    }
 
-  @Override
-  public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId)
-      throws IOException {
-    ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-    try (final ZipOutputStream zos = new ZipOutputStream(baos);
-         ZipInputStream zipStream = new ZipInputStream(
-             new ByteArrayInputStream(contentData.array()))) {
-      ZipEntry zipEntry;
-      boolean manifestWritten = false;
-      while ((zipEntry = zipStream.getNextEntry()) != null) {
-        if (!zipEntry.getName().equalsIgnoreCase(SdcCommon.MANIFEST_NAME)) {
-          ZipEntry loc_ze = new ZipEntry(zipEntry.getName());
-          zos.putNextEntry(loc_ze);
-          byte[] buf = new byte[1024];
-          int len;
-          while ((len = zipStream.read(buf)) > 0) {
-            zos.write(buf, 0, (len < buf.length) ? len : buf.length);
-          }
-        } else {
-          manifestWritten = true;
-          writeManifest(manifest, zos);
+    @Override
+    public Optional<List<ErrorMessage>> validateFileDataStructure(
+        FilesDataStructure filesDataStructure) {
+        return candidateServiceValidator.validateFileDataStructure(filesDataStructure);
+    }
+
+    private void writeManifest(String manifest, ZipOutputStream zos) throws IOException {
+        zos.putNextEntry(new ZipEntry(SdcCommon.MANIFEST_NAME));
+        try (InputStream manifestStream = new ByteArrayInputStream(
+            manifest.getBytes(StandardCharsets.UTF_8))) {
+            byte[] buf = new byte[1024];
+            int len;
+            while ((len = (manifestStream.read(buf))) > 0) {
+                zos.write(buf, 0, (len < buf.length) ? len : buf.length);
+            }
         }
-        zos.closeEntry();
-      }
-      if (!manifestWritten) {
-        writeManifest(manifest, zos);
-        zos.closeEntry();
-      }
     }
-    return baos.toByteArray();
-  }
 
-  @Override
-  public Optional<List<ErrorMessage>> validateFileDataStructure(
-      FilesDataStructure filesDataStructure) {
-    return candidateServiceValidator.validateFileDataStructure(filesDataStructure);
-  }
-
-  private void writeManifest(String manifest, ZipOutputStream zos) throws IOException {
-    zos.putNextEntry(new ZipEntry(SdcCommon.MANIFEST_NAME));
-    try (InputStream manifestStream = new ByteArrayInputStream(
-        manifest.getBytes(StandardCharsets.UTF_8))) {
-      byte[] buf = new byte[1024];
-      int len;
-      while ((len = (manifestStream.read(buf))) > 0) {
-        zos.write(buf, 0, (len < buf.length) ? len : buf.length);
-      }
-    }
-  }
-
-  private void handleArtifactsFromTree(HeatStructureTree tree, FilesDataStructure structure) {
-
-    if (Objects.isNull(tree) || Objects.isNull(tree.getArtifacts())) {
-      return;
-    }
-
-    if (CollectionUtils.isNotEmpty(tree.getArtifacts())) {
-      structure.getArtifacts().addAll(
-          tree.getArtifacts()
-              .stream()
-              .map(Artifact::getFileName)
-              .filter(fileName -> !structure.getArtifacts().contains(fileName))
-              .collect(Collectors.toList()));
-    }
-  }
-
-  private void handleOtherResources(HeatStructureTree tree, Set<String> usedEnvFiles,
-                                    FilesDataStructure structure) {
-    Set<HeatStructureTree> others = tree.getOther();
-    if (Objects.isNull(others)) {
-      return;
-    }
-
-    List<String> artifacts = new ArrayList<>();
-    List<String> unassigned = new ArrayList<>();
-    for (HeatStructureTree other : others) {
-      if (HeatFileAnalyzer.isYamlOrEnvFile(other.getFileName())) {
-        if (isEnvFileUsedByHeatFile(usedEnvFiles, other)) {
-          continue;
+    private void handleArtifactsFromTree(HeatStructureTree tree, FilesDataStructure structure) {
+
+        if (Objects.isNull(tree) || Objects.isNull(tree.getArtifacts())) {
+            return;
+        }
+
+        if (CollectionUtils.isNotEmpty(tree.getArtifacts())) {
+            structure.getArtifacts().addAll(
+                tree.getArtifacts()
+                    .stream()
+                    .map(Artifact::getFileName)
+                    .filter(fileName -> !structure.getArtifacts().contains(fileName))
+                    .collect(Collectors.toList()));
         }
-        unassigned.add(other.getFileName());
-      } else {
-        artifacts.add(other.getFileName());
-      }
-      handleArtifactsFromTree(other, structure);
-    }
-    structure.getArtifacts().addAll(artifacts);
-    structure.getUnassigned().addAll(unassigned);
-  }
-
-  private boolean isEnvFileUsedByHeatFile(Set<String> usedEnvFiles, HeatStructureTree other) {
-    if (HeatFileAnalyzer.isEnvFile(other.getFileName())) {
-      if (usedEnvFiles.contains(other.getFileName())) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  private void addHeatsToFileDataStructure(HeatStructureTree tree, Set<String> usedEnvFiles,
-                                           FilesDataStructure structure,
-                                           Map<String, List<ErrorMessage>> uploadErrors,
-                                           AnalyzedZipHeatFiles analyzedZipHeatFiles)
-      throws Exception {
-    List<Module> modules = new ArrayList<>();
-    Set<HeatStructureTree> heatsSet = tree.getHeat();
-    if (Objects.isNull(heatsSet)) {
-      return;
-    }
-    for (HeatStructureTree heat : heatsSet) {
-      if (isFileBaseFile(heat.getFileName())) {
-        handleSingleHeat(structure, modules, heat, uploadErrors);
-      } else if (isFileModuleFile(heat.getFileName(), analyzedZipHeatFiles.getModuleFiles())) {
-        handleSingleHeat(structure, modules, heat, uploadErrors);
-      } else {
-        structure.getUnassigned().add(heat.getFileName());
-        addNestedToFileDataStructure(heat, structure);
-      }
-      if (!Objects.isNull(heat.getEnv())) {
-        usedEnvFiles.add(heat.getEnv() == null ? null : heat.getEnv().getFileName());
-      }
     }
-    structure.setModules(modules);
 
-  }
+    private void handleOtherResources(HeatStructureTree tree, Set<String> usedEnvFiles,
+                                      FilesDataStructure structure) {
+        Set<HeatStructureTree> others = tree.getOther();
+        if (Objects.isNull(others)) {
+            return;
+        }
 
-  private boolean isFileModuleFile(String fileName, Set<String> modulesFileNames) {
-    return modulesFileNames.contains(fileName);
-  }
+        List<String> artifacts = new ArrayList<>();
+        List<String> unassigned = new ArrayList<>();
+        for (HeatStructureTree other : others) {
+            if (HeatFileAnalyzer.isYamlOrEnvFile(other.getFileName())) {
+                if (isEnvFileUsedByHeatFile(usedEnvFiles, other)) {
+                    continue;
+                }
+                unassigned.add(other.getFileName());
+            } else {
+                artifacts.add(other.getFileName());
+            }
+            handleArtifactsFromTree(other, structure);
+        }
+        structure.getArtifacts().addAll(artifacts);
+        structure.getUnassigned().addAll(unassigned);
+    }
 
-  private boolean isFileBaseFile(String fileName) {
-    return manifestCreator.isFileBaseFile(fileName);
-  }
+    private boolean isEnvFileUsedByHeatFile(Set<String> usedEnvFiles, HeatStructureTree other) {
+        if (HeatFileAnalyzer.isEnvFile(other.getFileName())) {
+            if (usedEnvFiles.contains(other.getFileName())) {
+                return true;
+            }
+        }
+        return false;
+    }
 
-  private void handleSingleHeat(FilesDataStructure structure, List<Module> modules,
-                                HeatStructureTree heat,
-                                Map<String, List<ErrorMessage>> uploadErrors) {
+    private void addHeatsToFileDataStructure(HeatStructureTree tree, Set<String> usedEnvFiles,
+                                             FilesDataStructure structure,
+                                             Map<String, List<ErrorMessage>> uploadErrors,
+                                             AnalyzedZipHeatFiles analyzedZipHeatFiles)
+        throws Exception {
+        List<Module> modules = new ArrayList<>();
+        Set<HeatStructureTree> heatsSet = tree.getHeat();
+        if (Objects.isNull(heatsSet)) {
+            return;
+        }
+        for (HeatStructureTree heat : heatsSet) {
+            if (isFileBaseFile(heat.getFileName())) {
+                handleSingleHeat(structure, modules, heat, uploadErrors);
+            } else if (isFileModuleFile(heat.getFileName(),
+                analyzedZipHeatFiles.getModuleFiles())) {
+                handleSingleHeat(structure, modules, heat, uploadErrors);
+            } else {
+                structure.getUnassigned().add(heat.getFileName());
+                addNestedToFileDataStructure(heat, structure);
+            }
+            if (!Objects.isNull(heat.getEnv())) {
+                usedEnvFiles.add(heat.getEnv() == null ? null : heat.getEnv().getFileName());
+            }
+        }
+        structure.setModules(modules);
 
+    }
 
-    mdcDataDebugMessage.debugEntryMessage(null);
+    private boolean isFileModuleFile(String fileName, Set<String> modulesFileNames) {
+        return modulesFileNames.contains(fileName);
+    }
 
-    Module module = new Module();
-    module.setYaml(heat.getFileName());
-    module.setIsBase(heat.getBase());
-    addNestedToFileDataStructure(heat, structure);
-    Set<HeatStructureTree> volumeSet = heat.getVolume();
-    int inx = 0;
-    if (Objects.nonNull(volumeSet)) {
-      handleVolumes(module, volumeSet, structure, inx, uploadErrors);
+    private boolean isFileBaseFile(String fileName) {
+        return manifestCreator.isFileBaseFile(fileName);
     }
-    handleEnv(module, heat, false, structure);
-    modules.add(module);
 
-    mdcDataDebugMessage.debugExitMessage(null);
-  }
+    private void handleSingleHeat(FilesDataStructure structure, List<Module> modules,
+                                  HeatStructureTree heat,
+                                  Map<String, List<ErrorMessage>> uploadErrors) {
 
-  private void handleVolumes(Module module, Set<HeatStructureTree> volumeSet,
-                             FilesDataStructure structure, int inx,
-                             Map<String, List<ErrorMessage>> uploadErrors) {
 
+        mdcDataDebugMessage.debugEntryMessage(null);
 
-    mdcDataDebugMessage.debugEntryMessage(null);
+        Module module = new Module();
+        module.setYaml(heat.getFileName());
+        module.setIsBase(heat.getBase());
+        addNestedToFileDataStructure(heat, structure);
+        Set<HeatStructureTree> volumeSet = heat.getVolume();
+        int inx = 0;
+        if (Objects.nonNull(volumeSet)) {
+            handleVolumes(module, volumeSet, structure, inx, uploadErrors);
+        }
+        handleEnv(module, heat, false, structure);
+        modules.add(module);
 
-    for (HeatStructureTree volume : volumeSet) {
-      if (inx++ > 0) {
-        ErrorsUtil.addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE,
-            new ErrorMessage(ErrorLevel.WARNING,
-                Messages.MORE_THEN_ONE_VOL_FOR_HEAT.getErrorMessage()), uploadErrors);
-        break;
-      }
-      handleArtifactsFromTree(volume, structure);
-      module.setVol(volume.getFileName());
-      handleEnv(module, volume, true, structure);
+        mdcDataDebugMessage.debugExitMessage(null);
     }
 
-    mdcDataDebugMessage.debugExitMessage(null);
-  }
+    private void handleVolumes(Module module, Set<HeatStructureTree> volumeSet,
+                               FilesDataStructure structure, int inx,
+                               Map<String, List<ErrorMessage>> uploadErrors) {
 
-  private void handleEnv(Module module, HeatStructureTree tree, boolean isVolEnv,
-                         FilesDataStructure structure) {
 
+        mdcDataDebugMessage.debugEntryMessage(null);
 
-    mdcDataDebugMessage.debugEntryMessage(null);
+        for (HeatStructureTree volume : volumeSet) {
+            if (inx++ > 0) {
+                ErrorsUtil.addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE,
+                    new ErrorMessage(ErrorLevel.WARNING,
+                        Messages.MORE_THEN_ONE_VOL_FOR_HEAT.getErrorMessage()), uploadErrors);
+                break;
+            }
+            handleArtifactsFromTree(volume, structure);
+            module.setVol(volume.getFileName());
+            handleEnv(module, volume, true, structure);
+        }
 
-    if (Objects.nonNull(tree.getEnv())) {
-      if (isVolEnv) {
-        module.setVolEnv(tree.getEnv().getFileName());
-      } else {
-        module.setEnv(tree.getEnv().getFileName());
-      }
-      handleArtifactsFromTree(tree.getEnv(), structure);
+        mdcDataDebugMessage.debugExitMessage(null);
     }
 
-    mdcDataDebugMessage.debugExitMessage(null);
-  }
+    private void handleEnv(Module module, HeatStructureTree tree, boolean isVolEnv,
+                           FilesDataStructure structure) {
+
+
+        mdcDataDebugMessage.debugEntryMessage(null);
+
+        if (Objects.nonNull(tree.getEnv())) {
+            if (isVolEnv) {
+                module.setVolEnv(tree.getEnv().getFileName());
+            } else {
+                module.setEnv(tree.getEnv().getFileName());
+            }
+            handleArtifactsFromTree(tree.getEnv(), structure);
+        }
 
-  private void addNestedToFileDataStructure(HeatStructureTree heat, FilesDataStructure structure) {
-    Set<HeatStructureTree> nestedSet = heat.getNested();
-    if (Objects.isNull(nestedSet)) {
-      return;
+        mdcDataDebugMessage.debugExitMessage(null);
     }
-    for (HeatStructureTree nested : nestedSet) {
-      if (structure.getNested().contains(nested.getFileName())) {
-        continue;
-      }
-      structure.getNested().add(nested.getFileName());
-      if (CollectionUtils.isNotEmpty(nested.getArtifacts())) {
-        handleArtifactsFromTree(nested, structure);
-      }
-      addNestedToFileDataStructure(nested, structure);
+
+    private void addNestedToFileDataStructure(HeatStructureTree heat,
+                                              FilesDataStructure structure) {
+        Set<HeatStructureTree> nestedSet = heat.getNested();
+        if (Objects.isNull(nestedSet)) {
+            return;
+        }
+        for (HeatStructureTree nested : nestedSet) {
+            if (structure.getNested().contains(nested.getFileName())) {
+                continue;
+            }
+            structure.getNested().add(nested.getFileName());
+            if (CollectionUtils.isNotEmpty(nested.getArtifacts())) {
+                handleArtifactsFromTree(nested, structure);
+            }
+            addNestedToFileDataStructure(nested, structure);
+        }
     }
-  }
 }