diff options
author | rameshiyer27 <ramesh.murugan.iyer@est.tech> | 2023-10-02 11:02:10 +0100 |
---|---|---|
committer | Ramesh Murugan Iyer <ramesh.murugan.iyer@est.tech> | 2023-10-02 10:27:20 +0000 |
commit | c706398593f184301d38bd6cba86566da60bece6 (patch) | |
tree | 82368d0ea9c6397a7727a579083b42cf94b63e64 | |
parent | 573057bf622d0a671d9327f32ad096f58bc31cc1 (diff) |
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 <ramesh.murugan.iyer@est.tech>
Change-Id: I4c6c88eee7c8017dfd4877e154062fca42e660ed
-rwxr-xr-x | models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AcDefinitionProvider.java | 8 |
1 files changed, 8 insertions, 0 deletions
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); } |