Remove enter/exit debug #6
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / services / heattotosca / TranslationService.java
index 43079f9..addbd74 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.openecomp.sdc.translator.services.heattotosca;
 
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.openecomp.core.translator.datatypes.TranslatorOutput;
 import org.openecomp.core.utilities.file.FileUtils;
@@ -32,7 +33,6 @@ import org.openecomp.sdc.heat.datatypes.model.Output;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
 import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
 import org.openecomp.sdc.logging.types.LoggerConstants;
 import org.openecomp.sdc.logging.types.LoggerErrorCode;
@@ -48,6 +48,7 @@ import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
 import org.openecomp.sdc.tosca.services.DataModelUtil;
 import org.openecomp.sdc.tosca.services.ToscaConstants;
 import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
 import org.openecomp.sdc.tosca.services.YamlUtil;
 import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
 import org.openecomp.sdc.translator.datatypes.heattotosca.AttachedResourceId;
@@ -69,8 +70,6 @@ import java.util.Set;
 public class TranslationService {
 
   protected static Logger logger = (Logger) LoggerFactory.getLogger(TranslationService.class);
-  protected static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
-
   /**
    * Gets types to process by translator.
    *
@@ -90,8 +89,6 @@ public class TranslationService {
    * @return the translator output
    */
   public TranslatorOutput translateHeatFiles(TranslationContext translationContext) {
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     ServiceTemplate mainServiceTemplate = createMainServiceTemplate(translationContext);
     List<FileData> fileDataList = translationContext.getManifest().getContent().getData();
     FileDataCollection fileDataCollection = HeatToToscaUtil.getFileCollectionsByFilter(fileDataList,
@@ -117,16 +114,10 @@ public class TranslationService {
     translatorOutput.setNonUnifiedToscaServiceModel(
         ToscaServiceModel.getClonedServiceModel(toscaServiceModel));
     translatorOutput.setToscaServiceModel(toscaServiceModel);
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
     return translatorOutput;
   }
 
   private ServiceTemplate createMainServiceTemplate(TranslationContext translationContext) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     ServiceTemplate mainServiceTemplate = new ServiceTemplate();
     translationContext.getTranslatedServiceTemplates()
         .put(Constants.MAIN_TEMPLATE_NAME, mainServiceTemplate);
@@ -136,8 +127,6 @@ public class TranslationService {
     mainServiceTemplate.setMetadata(templateMetadata);
     mainServiceTemplate.setTopology_template(new TopologyTemplate());
     mainServiceTemplate.setImports(GlobalTypesGenerator.getGlobalTypesImportList());
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
     return mainServiceTemplate;
   }
 
@@ -150,10 +139,6 @@ public class TranslationService {
    */
   public void translateHeatFile(ServiceTemplate serviceTemplate, FileData heatFileData,
                                 TranslationContext context) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     String heatFileName = heatFileData.getFile();
     HeatOrchestrationTemplate heatOrchestrationTemplate = new YamlUtil()
         .yamlToObject(context.getFileContent(heatFileName), HeatOrchestrationTemplate.class);
@@ -170,8 +155,6 @@ public class TranslationService {
       heatFileData.getData().stream().filter(data -> data.getType() == FileData.Type.HEAT_VOL)
           .forEach(data -> translateHeatFile(serviceTemplate, data, context));
     }
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
   }
 
   private void handleHeatPseudoParam(String heatFileName, ServiceTemplate serviceTemplate,
@@ -195,10 +178,6 @@ public class TranslationService {
   private void createHeatStackGroup(ServiceTemplate serviceTemplate, FileData heatFileData,
                                     HeatOrchestrationTemplate heatOrchestrationTemplate,
                                     TranslationContext context) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     ToscaFileOutputService toscaFileOutputService = new ToscaFileOutputServiceCsarImpl();
     final String fileName = heatFileData.getFile();
     final String heatStackGroupId = FileUtils.getFileWithoutExtention(fileName) + "_group";
@@ -213,25 +192,56 @@ public class TranslationService {
       groupDefinition.getProperties().put(Constants.DESCRIPTION_PROPERTY_NAME, hotDescription);
     }
     groupDefinition.setMembers(new ArrayList<>());
-    Map<String, Set<String>> heatStackGroupMembers = context.getHeatStackGroupMembers();
-    if (heatStackGroupMembers.get(fileName) == null) {
+    Set<String> heatStackGroupMembersIds = getHeatStackGroupMembers(fileName,
+        serviceTemplate, context);
+    if (CollectionUtils.isEmpty(heatStackGroupMembersIds)) {
       return; //not creating a group when no resources are present in the heat input
     }
-    groupDefinition.getMembers().addAll(heatStackGroupMembers.get(fileName));
+    groupDefinition.getMembers().addAll(heatStackGroupMembersIds);
     DataModelUtil
         .addGroupDefinitionToTopologyTemplate(serviceTemplate, heatStackGroupId, groupDefinition);
+  }
+
+  private Set<String> getHeatStackGroupMembers(String heatFileName,
+                                                            ServiceTemplate serviceTemplate,
+                                                            TranslationContext context){
+
+    Map<String, Set<String>> heatStackGroupMembers = context.getHeatStackGroupMembers();
+    Set<String> groupMembers = MapUtils.isEmpty(heatStackGroupMembers) ? new HashSet<>()
+        : heatStackGroupMembers.get(heatFileName);
+
+    if(CollectionUtils.isEmpty(groupMembers)){
+      return new HashSet<>();
+    }
+
+    Set<String> updatedMembersIds = new HashSet<>();
+
+    groupMembers.forEach(member -> {
+      if (Objects.nonNull(DataModelUtil.getNodeTemplate(serviceTemplate, member))) {
+        updatedMembersIds.add(member);
+      } else {
+        updateSubstitutableGroupMemberId(heatFileName, serviceTemplate, updatedMembersIds);
+      }
+    });
 
-    mdcDataDebugMessage.debugExitMessage(null, null);
+    return updatedMembersIds;
+  }
+
+  private void updateSubstitutableGroupMemberId(String heatFileName,
+                                                ServiceTemplate serviceTemplate,
+                                                Set<String> updatedMembersIds) {
+    Optional<String> substitutableGroupMemberId =
+        ToscaUtil.getSubstitutableGroupMemberId(heatFileName, serviceTemplate);
+
+    if (substitutableGroupMemberId.isPresent()) {
+      updatedMembersIds.add(substitutableGroupMemberId.get());
+    }
   }
 
   private void translateInputParameters(ServiceTemplate serviceTemplate,
                                         HeatOrchestrationTemplate heatOrchestrationTemplate,
                                         FileData heatFileData, TranslationContext context,
                                         String heatFileName) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     if (heatOrchestrationTemplate.getParameters() == null) {
       return;
     }
@@ -261,18 +271,12 @@ public class TranslationService {
     } else {
       inputs.putAll(parameterDefinitionMap);
     }
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
   }
 
   private void translateOutputParameters(ServiceTemplate serviceTemplate,
                                          HeatOrchestrationTemplate heatOrchestrationTemplate,
                                          FileData heatFileData, String heatFileName,
                                          TranslationContext context) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     if (heatOrchestrationTemplate.getOutputs() == null) {
       return;
     }
@@ -290,17 +294,11 @@ public class TranslationService {
       updateSharedResources(serviceTemplate, heatFileName, heatOrchestrationTemplate,
           heatOrchestrationTemplate.getOutputs(), context);
     }
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
   }
 
   private void updateSharedResources(ServiceTemplate serviceTemplate, String heatFileName,
                                      HeatOrchestrationTemplate heatOrchestrationTemplate,
                                      Map<String, Output> outputs, TranslationContext context) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     for (Map.Entry<String, Output> parameter : outputs.entrySet()) {
       Optional<AttachedResourceId> attachedSharedResourceId = HeatToToscaUtil
           .extractAttachedResourceId(heatFileName, heatOrchestrationTemplate, context,
@@ -331,30 +329,18 @@ public class TranslationService {
         && serviceTemplate.getTopology_template().getOutputs().size() == 0) {
       serviceTemplate.getTopology_template().setOutputs(null);
     }
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
   }
 
   private void updateSharedResource(ServiceTemplate serviceTemplate, TranslationContext context,
                                     Map.Entry<String, Output> paramName,
                                     String sharedTranslatedResourceId, Resource resource) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     context.addHeatSharedResourcesByParam(paramName.getKey(), sharedTranslatedResourceId, resource);
     serviceTemplate.getTopology_template().getOutputs().remove(paramName.getKey());
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
   }
 
   private void translateResources(String heatFileName, ServiceTemplate serviceTemplate,
                                   HeatOrchestrationTemplate heatOrchestrationTemplate,
                                   TranslationContext context) {
-
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
     if(MapUtils.isEmpty(heatOrchestrationTemplate.getResources())){
       return;
     }
@@ -372,8 +358,6 @@ public class TranslationService {
           .translateResource(heatFileName, serviceTemplate, heatOrchestrationTemplate, resource,
               resourceId, context);
     }
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
   }
 
   private Environment getHeatEnvFile(FileData heatFileData, TranslationContext context) {