aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationBase.java')
-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/ResourceTranslationBase.java179
1 files changed, 56 insertions, 123 deletions
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/ResourceTranslationBase.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationBase.java
index 9011c9e91c..1e04028480 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationBase.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationBase.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
import java.util.ArrayList;
@@ -25,9 +24,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Predicate;
-
import java.util.stream.Collectors;
-
import org.apache.commons.collections4.CollectionUtils;
import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
@@ -62,76 +59,49 @@ public abstract class ResourceTranslationBase {
* @param context the context
* @return the resource translated id
*/
- public static Optional<String> getResourceTranslatedId(String heatFileName,
- HeatOrchestrationTemplate
- heatOrchestrationTemplate,
- String resourceId,
- TranslationContext context) {
+ public static Optional<String> getResourceTranslatedId(String heatFileName, HeatOrchestrationTemplate heatOrchestrationTemplate,
+ String resourceId, TranslationContext context) {
if (!context.getTranslatedIds().containsKey(heatFileName)) {
context.getTranslatedIds().put(heatFileName, new HashMap<>());
}
-
Map<String, String> translatedIdsPerFile = context.getTranslatedIds().get(heatFileName);
String translatedId = translatedIdsPerFile.get(resourceId);
if (translatedId != null) {
return Optional.of(translatedId);
}
-
Resource resource = heatOrchestrationTemplate.getResources().get(resourceId);
if (resource == null) {
- throw new CoreException(
- new ResourceNotFoundInHeatFileErrorBuilder(resourceId, heatFileName).build());
+ throw new CoreException(new ResourceNotFoundInHeatFileErrorBuilder(resourceId, heatFileName).build());
}
- return getTranslatedResourceId(resourceId, heatFileName, resource, heatOrchestrationTemplate,
- context
- );
+ return getTranslatedResourceId(resourceId, heatFileName, resource, heatOrchestrationTemplate, context);
}
- private static Optional<String> getTranslatedResourceId(String resourceId,
- String heatFileName,
- Resource resource,
- HeatOrchestrationTemplate heatOrchestrationTemplate,
- TranslationContext context) {
- TranslateTo translateTo =
- generateTranslationTo(heatFileName, heatOrchestrationTemplate, resource, resourceId,
- context);
-
- String translatedId =
- ResourceTranslationFactory.getInstance(resource).generateTranslatedId(translateTo);
-
- if (ConsolidationDataUtil.isNodeTemplatePointsToServiceTemplateWithoutNodeTemplates(translatedId,
- heatFileName, context)) {
+ private static Optional<String> getTranslatedResourceId(String resourceId, String heatFileName, Resource resource,
+ HeatOrchestrationTemplate heatOrchestrationTemplate, TranslationContext context) {
+ TranslateTo translateTo = generateTranslationTo(heatFileName, heatOrchestrationTemplate, resource, resourceId, context);
+ String translatedId = ResourceTranslationFactory.getInstance(resource).generateTranslatedId(translateTo);
+ if (ConsolidationDataUtil.isNodeTemplatePointsToServiceTemplateWithoutNodeTemplates(translatedId, heatFileName, context)) {
return Optional.empty();
}
-
if (translatedId != null) {
context.getTranslatedIds().get(heatFileName).put(resourceId, translatedId);
}
-
return Optional.ofNullable(translatedId);
}
private static Optional<ToscaTopologyTemplateElements> getResourceTranslatedElementTemplate(String heatFileName,
- HeatOrchestrationTemplate heatOrchestrationTemplate,
- String resourceId, TranslationContext context) {
+ HeatOrchestrationTemplate heatOrchestrationTemplate,
+ String resourceId, TranslationContext context) {
Resource resource = heatOrchestrationTemplate.getResources().get(resourceId);
if (resource == null) {
- throw new CoreException(
- new ResourceNotFoundInHeatFileErrorBuilder(resourceId, heatFileName).build());
+ throw new CoreException(new ResourceNotFoundInHeatFileErrorBuilder(resourceId, heatFileName).build());
}
- TranslateTo translateTo =
- generateTranslationTo(heatFileName, heatOrchestrationTemplate, resource, resourceId,
- context);
-
- return ResourceTranslationFactory.getInstance(resource)
- .getTranslatedToscaTopologyElement(translateTo);
+ TranslateTo translateTo = generateTranslationTo(heatFileName, heatOrchestrationTemplate, resource, resourceId, context);
+ return ResourceTranslationFactory.getInstance(resource).getTranslatedToscaTopologyElement(translateTo);
}
- private static TranslateTo generateTranslationTo(String heatFileName,
- HeatOrchestrationTemplate
- heatOrchestrationTemplate,
- Resource resource, String resourceId,
- TranslationContext context) {
+ private static TranslateTo generateTranslationTo(String heatFileName, HeatOrchestrationTemplate heatOrchestrationTemplate, Resource resource,
+ String resourceId, TranslationContext context) {
TranslateTo to = new TranslateTo();
to.setHeatFileName(heatFileName);
to.setServiceTemplate(null);
@@ -157,16 +127,12 @@ public abstract class ResourceTranslationBase {
* @return the translated id if this resource is supported, or empty value if not supported
*/
public Optional<String> translateResource(String heatFileName, ServiceTemplate serviceTemplate,
- HeatOrchestrationTemplate heatOrchestrationTemplate,
- Resource resource, String resourceId,
+ HeatOrchestrationTemplate heatOrchestrationTemplate, Resource resource, String resourceId,
TranslationContext context) {
- Optional<String> translatedId =
- getResourceTranslatedId(heatFileName, heatOrchestrationTemplate, resourceId, context);
+ Optional<String> translatedId = getResourceTranslatedId(heatFileName, heatOrchestrationTemplate, resourceId, context);
context.getTranslatedResources().putIfAbsent(heatFileName, new HashSet<>());
-
if (isResourceWithSameIdAppearsInOtherFiles(heatFileName, resourceId, context)) {
- throw new CoreException(
- new DuplicateResourceIdsInDifferentFilesErrorBuilder(resourceId).build());
+ throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(resourceId).build());
}
if (context.getTranslatedResources().get(heatFileName).contains(resourceId)) {
return translatedId;
@@ -174,13 +140,11 @@ public abstract class ResourceTranslationBase {
if (!translatedId.isPresent()) {
return Optional.empty();
}
- logger.debug("Translate- file: {} resource Id: {} translated resource id: {}",
- heatFileName, resourceId, translatedId.get());
- TranslateTo translateTo = new TranslateTo(heatFileName, serviceTemplate,
- heatOrchestrationTemplate, resource, resourceId, translatedId.get(), context);
+ logger.debug("Translate- file: {} resource Id: {} translated resource id: {}", heatFileName, resourceId, translatedId.get());
+ TranslateTo translateTo = new TranslateTo(heatFileName, serviceTemplate, heatOrchestrationTemplate, resource, resourceId, translatedId.get(),
+ context);
translate(translateTo);
context.getTranslatedResources().get(heatFileName).add(resourceId);
-
if (DataModelUtil.isNodeTemplate(translatedId.get(), serviceTemplate)) {
if (!context.getHeatStackGroupMembers().containsKey(heatFileName)) {
context.getHeatStackGroupMembers().put(heatFileName, new HashSet<>());
@@ -191,14 +155,9 @@ public abstract class ResourceTranslationBase {
return translatedId;
}
- private boolean isResourceWithSameIdAppearsInOtherFiles(String heatFileName,
- String resourceId,
- TranslationContext context) {
- Set<String> translatedResourceIdsFromOtherFiles =
- context.getTranslatedResourceIdsFromOtherFiles(heatFileName);
-
- return CollectionUtils.isNotEmpty(translatedResourceIdsFromOtherFiles)
- && translatedResourceIdsFromOtherFiles.contains(resourceId);
+ private boolean isResourceWithSameIdAppearsInOtherFiles(String heatFileName, String resourceId, TranslationContext context) {
+ Set<String> translatedResourceIdsFromOtherFiles = context.getTranslatedResourceIdsFromOtherFiles(heatFileName);
+ return CollectionUtils.isNotEmpty(translatedResourceIdsFromOtherFiles) && translatedResourceIdsFromOtherFiles.contains(resourceId);
}
protected String generateTranslatedId(TranslateTo translateTo) {
@@ -207,11 +166,9 @@ public abstract class ResourceTranslationBase {
} else {
return null;
}
-
}
- protected Optional<ToscaTopologyTemplateElements> getTranslatedToscaTopologyElement(
- TranslateTo translateTo) {
+ protected Optional<ToscaTopologyTemplateElements> getTranslatedToscaTopologyElement(TranslateTo translateTo) {
if (isEssentialRequirementsValid(translateTo)) {
return Optional.of(ToscaTopologyTemplateElements.NODE_TEMPLATE);
} else {
@@ -224,12 +181,10 @@ public abstract class ResourceTranslationBase {
}
private void updateResourceDependency(TranslateTo translateTo) {
-
Resource resource = translateTo.getResource();
if (resource.getDepends_on() == null) {
return;
}
-
if (resource.getDepends_on() instanceof List) {
List<String> dependsOnList = (List<String>) resource.getDepends_on();
for (String dependsOnResourceId : dependsOnList) {
@@ -243,67 +198,47 @@ public abstract class ResourceTranslationBase {
private void addDependency(String dependsOnResourceId, TranslateTo translateTo) {
String heatFileName = translateTo.getHeatFileName();
- HeatOrchestrationTemplate heatOrchestrationTemplate = translateTo
- .getHeatOrchestrationTemplate();
+ HeatOrchestrationTemplate heatOrchestrationTemplate = translateTo.getHeatOrchestrationTemplate();
TranslationContext context = translateTo.getContext();
-
- Optional<String> resourceTranslatedId =
- getResourceTranslatedId(heatFileName, heatOrchestrationTemplate, dependsOnResourceId,
- context);
-
- Optional<ToscaTopologyTemplateElements> resourceTranslatedElementTemplate =
- getResourceTranslatedElementTemplate(heatFileName, heatOrchestrationTemplate,
- dependsOnResourceId, context);
-
- if (resourceTranslatedId.isPresent()
- && (resourceTranslatedElementTemplate.isPresent()
- && resourceTranslatedElementTemplate.get() == ToscaTopologyTemplateElements.NODE_TEMPLATE)) {
+ Optional<String> resourceTranslatedId = getResourceTranslatedId(heatFileName, heatOrchestrationTemplate, dependsOnResourceId, context);
+ Optional<ToscaTopologyTemplateElements> resourceTranslatedElementTemplate = getResourceTranslatedElementTemplate(heatFileName,
+ heatOrchestrationTemplate, dependsOnResourceId, context);
+ if (resourceTranslatedId.isPresent() && (resourceTranslatedElementTemplate.isPresent()
+ && resourceTranslatedElementTemplate.get() == ToscaTopologyTemplateElements.NODE_TEMPLATE)) {
Resource sourceResource = translateTo.getResource();
- Resource targetResource = HeatToToscaUtil.getResource(heatOrchestrationTemplate, dependsOnResourceId,
- translateTo.getHeatFileName());
+ Resource targetResource = HeatToToscaUtil.getResource(heatOrchestrationTemplate, dependsOnResourceId, translateTo.getHeatFileName());
if (isValidDependency(sourceResource, targetResource, translateTo)) {
- addDependsOnRequirement(dependsOnResourceId, translateTo, resourceTranslatedId.get(), sourceResource,
- targetResource);
+ addDependsOnRequirement(dependsOnResourceId, translateTo, resourceTranslatedId.get(), sourceResource, targetResource);
}
}
}
- private void addDependsOnRequirement(String dependsOnResourceId, TranslateTo translateTo,
- String resourceTranslatedId, Resource sourceResource,
+ private void addDependsOnRequirement(String dependsOnResourceId, TranslateTo translateTo, String resourceTranslatedId, Resource sourceResource,
Resource targetResource) {
RequirementAssignment requirementAssignment = new RequirementAssignment();
requirementAssignment.setNode(resourceTranslatedId);
requirementAssignment.setCapability(ToscaCapabilityType.NATIVE_NODE);
requirementAssignment.setRelationship(ToscaRelationshipType.NATIVE_DEPENDS_ON);
- DataModelUtil.addRequirementAssignment(translateTo.getServiceTemplate().getTopology_template()
- .getNode_templates().get(translateTo.getTranslatedId()),
+ DataModelUtil
+ .addRequirementAssignment(translateTo.getServiceTemplate().getTopology_template().getNode_templates().get(translateTo.getTranslatedId()),
ToscaConstants.DEPENDS_ON_REQUIREMENT_ID, requirementAssignment);
ConsolidationDataUtil
- .updateNodesConnectedData(translateTo, dependsOnResourceId, targetResource,
- sourceResource, translateTo.getTranslatedId(), ToscaConstants.DEPENDS_ON_REQUIREMENT_ID,
- requirementAssignment);
+ .updateNodesConnectedData(translateTo, dependsOnResourceId, targetResource, sourceResource, translateTo.getTranslatedId(),
+ ToscaConstants.DEPENDS_ON_REQUIREMENT_ID, requirementAssignment);
}
private boolean isValidDependency(Resource sourceResource, Resource targetResource, TranslateTo translateTo) {
- return !(HeatToToscaUtil.isNestedResource(sourceResource) || HeatToToscaUtil.isNestedResource(targetResource))
- && HeatToToscaUtil.isValidDependsOnCandidate(sourceResource, targetResource,
- ConsolidationEntityType.OTHER, translateTo.getContext());
+ return !(HeatToToscaUtil.isNestedResource(sourceResource) || HeatToToscaUtil.isNestedResource(targetResource)) && HeatToToscaUtil
+ .isValidDependsOnCandidate(sourceResource, targetResource, ConsolidationEntityType.OTHER, translateTo.getContext());
}
- Optional<List<Map.Entry<String, Resource>>> getResourceByTranslatedResourceId(
- String heatFileName,
- HeatOrchestrationTemplate heatOrchestrationTemplate,
- String translatedResourceId,
- TranslateTo translateTo,
- String heatResourceType) {
- List<Map.Entry<String, Resource>> list = heatOrchestrationTemplate.getResources().entrySet()
- .stream()
- .filter(entry -> getPredicatesForTranslatedIdToResourceId(heatFileName,
- heatOrchestrationTemplate, translatedResourceId, translateTo.getContext(),
- heatResourceType)
- .stream()
- .allMatch(p -> p.test(entry)))
- .collect(Collectors.toList());
+ Optional<List<Map.Entry<String, Resource>>> getResourceByTranslatedResourceId(String heatFileName,
+ HeatOrchestrationTemplate heatOrchestrationTemplate,
+ String translatedResourceId, TranslateTo translateTo,
+ String heatResourceType) {
+ List<Map.Entry<String, Resource>> list = heatOrchestrationTemplate.getResources().entrySet().stream().filter(
+ entry -> getPredicatesForTranslatedIdToResourceId(heatFileName, heatOrchestrationTemplate, translatedResourceId, translateTo.getContext(),
+ heatResourceType).stream().allMatch(p -> p.test(entry))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(list)) {
return Optional.empty();
} else {
@@ -311,17 +246,16 @@ public abstract class ResourceTranslationBase {
}
}
- private List<Predicate<Map.Entry<String, Resource>>> getPredicatesForTranslatedIdToResourceId(
- String heatFileName, HeatOrchestrationTemplate heatOrchestrationTemplate,
- String translatedResourceId, TranslationContext context, String heatResourceType) {
+ private List<Predicate<Map.Entry<String, Resource>>> getPredicatesForTranslatedIdToResourceId(String heatFileName,
+ HeatOrchestrationTemplate heatOrchestrationTemplate,
+ String translatedResourceId,
+ TranslationContext context,
+ String heatResourceType) {
List<Predicate<Map.Entry<String, Resource>>> list = new ArrayList<>();
- list.add(entry ->
- entry.getValue().getType().equals(heatResourceType));
+ list.add(entry -> entry.getValue().getType().equals(heatResourceType));
list.add(entry -> {
- Optional<String> resourceTranslatedId =
- getResourceTranslatedId(heatFileName, heatOrchestrationTemplate, entry.getKey(), context);
- return resourceTranslatedId.isPresent()
- && resourceTranslatedId.get().equals(translatedResourceId);
+ Optional<String> resourceTranslatedId = getResourceTranslatedId(heatFileName, heatOrchestrationTemplate, entry.getKey(), context);
+ return resourceTranslatedId.isPresent() && resourceTranslatedId.get().equals(translatedResourceId);
});
return list;
}
@@ -329,5 +263,4 @@ public abstract class ResourceTranslationBase {
boolean isUnsupportedResourceType(Resource resource, List<String> supportedTypes) {
return !Objects.nonNull(resource) || !supportedTypes.contains(resource.getType());
}
-
}