summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main
diff options
context:
space:
mode:
authortalio <tali.orenbach@amdocs.com>2017-09-14 10:54:21 +0300
committertalio <tali.orenbach@amdocs.com>2017-09-14 10:54:21 +0300
commit9c94d11d63d9016af74dcf3a2fd72d50955eace2 (patch)
tree5f56c433dabf17e5bca92a4f95711853f7b871a5 /openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main
parentde8841c36349510e1b4c773753afad0eb8061f8c (diff)
Removing service templates without node templates
Bugfix for cases where we have substitution service templates without node templates Issue - ID : SDC-330 Change-Id: Ia9f33ce90fe0dbcc8ca2596ca63da704a48c7e67 Signed-off-by: talio <tali.orenbach@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java9
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java30
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImpl.java27
3 files changed, 49 insertions, 17 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
index f5ad2a1d3c..a0034a3828 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
@@ -587,6 +587,15 @@ public class TranslationContext {
}
+ public Set<String> getServiceTemplatesWithoutNodeTemplateSection() {
+ return serviceTemplatesWithoutNodeTemplateSection;
+ }
+
+ public void setServiceTemplatesWithoutNodeTemplateSection(
+ Set<String> serviceTemplatesWithoutNodeTemplateSection) {
+ this.serviceTemplatesWithoutNodeTemplateSection = serviceTemplatesWithoutNodeTemplateSection;
+ }
+
public void addServiceTemplateWithoutNodeTemplates(String serviceTemplateName){
this.serviceTemplatesWithoutNodeTemplateSection.add(serviceTemplateName);
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java
index 843d9fabc6..c29409fe48 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java
@@ -20,6 +20,7 @@
package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+import org.apache.commons.collections4.MapUtils;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.logging.api.Logger;
@@ -31,12 +32,15 @@ import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.DataModelUtil;
import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil;
import org.openecomp.sdc.translator.services.heattotosca.Constants;
import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
import org.openecomp.sdc.translator.services.heattotosca.TranslationService;
+import java.util.Objects;
+
public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
protected static Logger logger =
@@ -46,8 +50,9 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
public void translate(TranslateTo translateTo) {
mdcDataDebugMessage.debugEntryMessage(null, null);
+ TranslationContext context = translateTo.getContext();
FileData nestedFileData =
- HeatToToscaUtil.getFileData(translateTo.getResource().getType(), translateTo.getContext());
+ HeatToToscaUtil.getFileData(translateTo.getResource().getType(), context);
if (nestedFileData == null) {
logger.warn("Nested File '" + translateTo.getResource().getType()
+ "' is not exist, therefore, the nested resource with the ID '"
@@ -58,7 +63,7 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
String substitutionNodeTypeKey = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX + "heat."
+ templateName;
- if (!translateTo.getContext().getTranslatedServiceTemplates()
+ if (!context.getTranslatedServiceTemplates()
.containsKey(translateTo.getResource().getType())) {
//substitution service template
@@ -68,7 +73,7 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
//global substitution service template
ServiceTemplate globalSubstitutionServiceTemplate = new HeatToToscaUtil()
.fetchGlobalSubstitutionServiceTemplate(translateTo.getServiceTemplate(),
- translateTo.getContext());
+ context);
//substitution node type
NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl()
@@ -78,14 +83,22 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
substitutionNodeType);
//substitution mapping
HeatToToscaUtil
- .handleSubstitutionMapping(translateTo.getContext(), substitutionNodeTypeKey,
+ .handleSubstitutionMapping(context, substitutionNodeTypeKey,
nestedSubstitutionServiceTemplate, substitutionNodeType);
//add new nested service template
- translateTo.getContext().getTranslatedServiceTemplates()
+ context.getTranslatedServiceTemplates()
.put(translateTo.getResource().getType(), nestedSubstitutionServiceTemplate);
}
+ ServiceTemplate substitutionServiceTemplate = context.getTranslatedServiceTemplates()
+ .get(translateTo.getResource().getType());
+
+ if(DataModelUtil.isNodeTemplateSectionMissingFromServiceTemplate(substitutionServiceTemplate)){
+ handleSubstitutionServiceTemplateWithoutNodeTemplates(translateTo, context, templateName);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return;
+ }
NodeTemplate substitutionNodeTemplate =
HeatToToscaUtil.createAbstractSubstitutionNodeTemplate(translateTo, templateName,
substitutionNodeTypeKey);
@@ -100,6 +113,13 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
mdcDataDebugMessage.debugExitMessage(null, null);
}
+ private void handleSubstitutionServiceTemplateWithoutNodeTemplates(TranslateTo translateTo,
+ TranslationContext context,
+ String templateName) {
+ context.addServiceTemplateWithoutNodeTemplates(templateName);
+ context.getTranslatedServiceTemplates().remove(translateTo.getResource().getType());
+ }
+
private ServiceTemplate createSubstitutionServiceTemplate(TranslateTo translateTo,
FileData nestedFileData,
String templateName) {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImpl.java
index 5d25c7ef25..bd672e387f 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImpl.java
@@ -45,6 +45,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBase {
@@ -72,7 +73,7 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
logger.warn("Resource '" + translateTo.getResourceId() + "' of type'"
+ HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource()
+ "' with resourceDef which is not pointing to nested heat file is not supported and "
- + "will be ignored in the translation ");
+ + "will be ignored in the translation ");
mdcDataDebugMessage.debugExitMessage(null, null);
return;
@@ -88,17 +89,19 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
translateTo.getHeatOrchestrationTemplate(), nestedResource,
translateTo.getResourceId(), translateTo.getContext());
if (substitutionNodeTemplateId.isPresent()) {
- NodeTemplate substitutionNodeTemplate = DataModelUtil
- .getNodeTemplate(translateTo.getServiceTemplate(), substitutionNodeTemplateId.get());
- Map serviceTemplateFilter = (Map<String, Object>) substitutionNodeTemplate.getProperties()
- .get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
-
- populateServiceTemplateFilterProperties(translateTo, substitutionNodeTemplate,
- serviceTemplateFilter);
- handlingIndexVar(translateTo, substitutionNodeTemplate);
- DataModelUtil
- .addNodeTemplate(translateTo.getServiceTemplate(), substitutionNodeTemplateId.get(),
- substitutionNodeTemplate);
+ NodeTemplate substitutionNodeTemplate =
+ DataModelUtil.getNodeTemplate(translateTo.getServiceTemplate(), substitutionNodeTemplateId.get());
+ if(!Objects.isNull(substitutionNodeTemplate)) {
+ Map serviceTemplateFilter = (Map<String, Object>) substitutionNodeTemplate.getProperties()
+ .get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
+
+ populateServiceTemplateFilterProperties(translateTo, substitutionNodeTemplate,
+ serviceTemplateFilter);
+ handlingIndexVar(translateTo, substitutionNodeTemplate);
+ DataModelUtil
+ .addNodeTemplate(translateTo.getServiceTemplate(), substitutionNodeTemplateId.get(),
+ substitutionNodeTemplate);
+ }
}
mdcDataDebugMessage.debugExitMessage(null, null);