From c706398593f184301d38bd6cba86566da60bece6 Mon Sep 17 00:00:00 2001 From: rameshiyer27 Date: Mon, 2 Oct 2023 11:02:10 +0100 Subject: Handle TOSCA template with invalid element type Tosca node templates should have elements with valid element type and composition type. Invalid elements will be ignored, throws error if there are no single valid element present. Issue-ID: POLICY-4830 Signed-off-by: rameshiyer27 Change-Id: I4c6c88eee7c8017dfd4877e154062fca42e660ed --- .../models/acm/persistence/provider/AcDefinitionProvider.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'models/src/main/java/org') diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AcDefinitionProvider.java b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AcDefinitionProvider.java index 9f267d32d..a518c4908 100755 --- a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AcDefinitionProvider.java +++ b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AcDefinitionProvider.java @@ -66,6 +66,10 @@ public class AcDefinitionProvider { serviceTemplate.getMetadata().put("compositionId", compositionId); acmDefinition.setServiceTemplate(serviceTemplate); var acElements = AcmUtils.extractAcElementsFromServiceTemplate(serviceTemplate, toscaElementName); + if (acElements.isEmpty()) { + throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, + "NodeTemplate with element type " + toscaElementName + " must exist!"); + } acmDefinition.setElementStateMap(AcmUtils.createElementStateMap(acElements, AcTypeState.COMMISSIONED)); var jpaAcmDefinition = ProviderUtils.getJpaAndValidate(acmDefinition, JpaAutomationCompositionDefinition::new, "AutomationCompositionDefinition"); @@ -94,6 +98,10 @@ public class AcDefinitionProvider { acmDefinition.setServiceTemplate(serviceTemplate); var acElements = AcmUtils.extractAcElementsFromServiceTemplate(serviceTemplate, toscaElementName); + if (acElements.isEmpty()) { + throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, + "NodeTemplate with element type " + toscaElementName + " must exist!"); + } acmDefinition.setElementStateMap(AcmUtils.createElementStateMap(acElements, AcTypeState.COMMISSIONED)); updateAcDefinition(acmDefinition, toscaCompositionName); } -- cgit 1.2.3-korg