From: rameshiyer27 Date: Mon, 2 Oct 2023 10:02:10 +0000 (+0100) Subject: Handle TOSCA template with invalid element type X-Git-Tag: 7.0.1~11 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=c706398593f184301d38bd6cba86566da60bece6;p=policy%2Fclamp.git 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 --- 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); }