import org.openecomp.core.translator.factory.HeatToToscaTranslatorFactory;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.common.togglz.ToggleableFeature;
import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.core.validation.util.MessageContainerUtil;
import org.openecomp.sdc.common.errors.CoreException;
protected static Logger logger = (Logger) LoggerFactory.getLogger(HeatToToscaUtil.class);
protected static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private static final String forwarder = "forwarder";
/**
mdcDataDebugMessage.debugEntryMessage(null, null);
HeatToToscaTranslator heatToToscaTranslator =
HeatToToscaTranslatorFactory.getInstance().createInterface();
- InputStream fileContent = fileNameContentMap.getFileContent(SdcCommon.MANIFEST_NAME);
- heatToToscaTranslator.addManifest(SdcCommon.MANIFEST_NAME, FileUtils.toByteArray(fileContent));
+ try (InputStream fileContent = fileNameContentMap.getFileContent(SdcCommon.MANIFEST_NAME)) {
+ heatToToscaTranslator.addManifest(SdcCommon.MANIFEST_NAME, FileUtils.toByteArray(fileContent));
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to read manifest", e);
+ }
fileNameContentMap.getFileList().stream()
.filter(fileName -> !(fileName.equals(SdcCommon.MANIFEST_NAME))).forEach(
return heatToToscaTranslator.translate();
} catch (IOException e) {
// rethrow as a RuntimeException to keep the signature backward compatible
- throw new RuntimeException(e);
+ throw new RuntimeException("Failed to read Heat template tree", e);
}
}
ConsolidationEntityType sourceEntityType = dependencyEntity.getSourceEntityType();
ConsolidationEntityType targetEntityType = dependencyEntity.getTargetEntityType();
- //Ignore Compute->Port, Compute->volume, Compute->Compute and Compute->VFC Nested relationships
- if (sourceEntityType == ConsolidationEntityType.COMPUTE) {
- if (targetEntityType == ConsolidationEntityType.COMPUTE
- || targetEntityType == ConsolidationEntityType.VOLUME
- || targetEntityType == ConsolidationEntityType.PORT
- || targetEntityType == ConsolidationEntityType.VFC_NESTED) {
- return false;
- }
- }
- //Ignore Port->Compute, Port->volume, Port->Port and Port->VFC Nested relationships
- if (sourceEntityType == ConsolidationEntityType.PORT) {
- if (targetEntityType == ConsolidationEntityType.COMPUTE
- || targetEntityType == ConsolidationEntityType.VOLUME
- || targetEntityType == ConsolidationEntityType.PORT
- || targetEntityType == ConsolidationEntityType.VFC_NESTED) {
- return false;
- }
- }
-
- //Ignore Volume->Compute, Volume->Volume, Volume->Port and Volume->VFC Nested relationships
- if (sourceEntityType == ConsolidationEntityType.VOLUME) {
- if (targetEntityType == ConsolidationEntityType.COMPUTE
- || targetEntityType == ConsolidationEntityType.VOLUME
- || targetEntityType == ConsolidationEntityType.PORT
- || targetEntityType == ConsolidationEntityType.VFC_NESTED) {
- return false;
- }
- }
-
- //Ignore VFC Nested->Compute, VFC Nested->Volume, VFC Nested->Port and
- // VFC Nested->VFC Nested relationships
- if (sourceEntityType == ConsolidationEntityType.VFC_NESTED) {
- if (targetEntityType == ConsolidationEntityType.COMPUTE
- || targetEntityType == ConsolidationEntityType.VOLUME
- || targetEntityType == ConsolidationEntityType.PORT
- || targetEntityType == ConsolidationEntityType.VFC_NESTED) {
- return false;
- }
- }
- return true;
+ return ConsolidationTypesConnectivity.isDependsOnRelationshipValid(sourceEntityType, targetEntityType);
}
private static Map<String, Object> managerSubstitutionNodeTemplateProperties(
NodeType flatNodeType =
getNodeTypeWithFlatHierarchy(type, serviceTemplate, context);
- String capabilityKey;
- List<String> capabilityMapping;
+
if (flatNodeType.getCapabilities() != null) {
- for (Map.Entry<String, CapabilityDefinition> capabilityNodeEntry : flatNodeType
- .getCapabilities()
- .entrySet()) {
- capabilityKey = capabilityNodeEntry.getKey() + "_" + templateName;
- nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityNodeEntry.getValue().clone());
- capabilityMapping = new ArrayList<>();
- capabilityMapping.add(templateName);
- capabilityMapping.add(capabilityNodeEntry.getKey());
- capabilitySubstitutionMapping.put(capabilityKey, capabilityMapping);
- }
+ flatNodeType.getCapabilities()
+ .entrySet()
+ .stream()
+ .filter(capabilityNodeEntry -> shouldCapabilityNeedsToBeAdded(capabilityNodeEntry.getKey()))
+ .forEach(capabilityNodeEntry ->
+ addCapabilityToSubMapping(
+ templateName, capabilityNodeEntry, nodeTypeCapabilitiesDefinition, capabilitySubstitutionMapping));
}
mdcDataDebugMessage.debugExitMessage(null, null);
}
+ private static boolean shouldCapabilityNeedsToBeAdded(String capabilityKey) {
+ return !capabilityKey.contains(forwarder) || ToggleableFeature.FORWARDER_CAPABILITY.isActive();
+ }
+
+ private static void addCapabilityToSubMapping(String templateName,
+ Map.Entry<String, CapabilityDefinition> capabilityNodeEntry,
+ Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
+ Map<String, List<String>> capabilitySubstitutionMapping) {
+ String capabilityKey;
+ List<String> capabilityMapping;
+ capabilityKey = capabilityNodeEntry.getKey() + "_" + templateName;
+ nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityNodeEntry.getValue().clone());
+ capabilityMapping = new ArrayList<>();
+ capabilityMapping.add(templateName);
+ capabilityMapping.add(capabilityNodeEntry.getKey());
+ capabilitySubstitutionMapping.put(capabilityKey, capabilityMapping);
+ }
+
private static List<Map<String, RequirementDefinition>> getNodeTypeReqs(
String type,
String templateName,