From dadd8646df5c2a110b6928ac770bf22ac82e1b21 Mon Sep 17 00:00:00 2001 From: "Sheshukov, Natalia (ns019t)" Date: Sun, 15 Apr 2018 13:13:59 +0300 Subject: SDC Tosca Parser – support Annotations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I99079e1a8de11c5c21a54f1695ee94addcabeab2 Issue-ID: SDC-1226 Signed-off-by: Yuli Shlosberg --- .../onap/sdc/tosca/parser/api/ISdcCsarHelper.java | 6 ++ .../sdc/tosca/parser/impl/SdcCsarHelperImpl.java | 5 ++ .../org/onap/sdc/impl/SdcToscaParserBasicTest.java | 4 ++ .../onap/sdc/impl/ToscaParserNodeTemplateTest.java | 75 +++++++++++++++++---- .../csars/resource-Sirovinputannotation-csar.csar | Bin 0 -> 77979 bytes .../csars/service-AdiodVmxVpeBvService-csar.csar | Bin 0 -> 117439 bytes 6 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 src/test/resources/csars/resource-Sirovinputannotation-csar.csar create mode 100644 src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar diff --git a/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java b/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java index 5052ddf..cc47db9 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java +++ b/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java @@ -560,6 +560,12 @@ public interface ISdcCsarHelper { * @return the list of the node templates */ public List getGroupMembersOfOriginOfNodeTemplate(NodeTemplate nodeTemplate, String groupName); + + /** + * Get inputs of the topology template including existing annotations + * @return the list of the inputs + */ + public List getInputsWithAnnotations(); /** * Get all interface details for given node template.
diff --git a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java index ee4c7e8..ed6345c 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java +++ b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java @@ -1120,4 +1120,9 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { return null; } + @Override + public List getInputsWithAnnotations() { + return toscaTemplate.getInputs(true); + } + } diff --git a/src/test/java/org/onap/sdc/impl/SdcToscaParserBasicTest.java b/src/test/java/org/onap/sdc/impl/SdcToscaParserBasicTest.java index 08f5bf1..edcf3ca 100644 --- a/src/test/java/org/onap/sdc/impl/SdcToscaParserBasicTest.java +++ b/src/test/java/org/onap/sdc/impl/SdcToscaParserBasicTest.java @@ -43,6 +43,8 @@ public abstract class SdcToscaParserBasicTest { static ISdcCsarHelper csarHelperVfGroupsPolicies; static ISdcCsarHelper csarHelperServiceGroupsPolicies; static ISdcCsarHelper csarHelperVfInterfaces; + static ISdcCsarHelper csarHelperServiceAnnotations; + static ISdcCsarHelper csarHelperServiceAdiodAnnotations; static Map>> fdntCsarHelper_Data; @@ -72,7 +74,9 @@ public abstract class SdcToscaParserBasicTest { csarHelperServiceGroupsCapabilities = getCsarHelper("csars/service-VdbePx-csar.csar"); csarHelperVfGroupsPolicies = getCsarHelper("csars/resource-Vdbe-csar.csar"); csarHelperServiceGroupsPolicies = getCsarHelper("csars/service-VlanD2dSrv-csar.csar"); + csarHelperServiceAnnotations = getCsarHelper("csars/resource-Sirovinputannotation-csar.csar"); csarHelperVfInterfaces = getCsarHelper("csars/service-CxSvc-csar.csar"); + csarHelperServiceAdiodAnnotations = getCsarHelper("csars/service-AdiodVmxVpeBvService-csar.csar"); fdntCsarHelper_Data = new HashMap>>(){ { diff --git a/src/test/java/org/onap/sdc/impl/ToscaParserNodeTemplateTest.java b/src/test/java/org/onap/sdc/impl/ToscaParserNodeTemplateTest.java index 0acfdf6..db7e5ae 100644 --- a/src/test/java/org/onap/sdc/impl/ToscaParserNodeTemplateTest.java +++ b/src/test/java/org/onap/sdc/impl/ToscaParserNodeTemplateTest.java @@ -18,6 +18,8 @@ import org.onap.sdc.toscaparser.api.Group; import org.onap.sdc.toscaparser.api.NodeTemplate; import org.onap.sdc.toscaparser.api.Policy; import org.onap.sdc.toscaparser.api.Property; +import org.onap.sdc.toscaparser.api.parameters.Annotation; +import org.onap.sdc.toscaparser.api.parameters.Input; import org.testng.annotations.Test; public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest { @@ -1121,6 +1123,47 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest { assertNotNull(capability); } + @Test + public void testGetVfGroupsPolicies() { + List policies = csarHelperVfGroupsPolicies.getPoliciesOfTopologyTemplate(); + assertNotNull(policies); + List groups = csarHelperVfGroupsPolicies.getGroupsOfTopologyTemplate(); + assertNotNull(groups); + } + + @Test + public void testGetServiceGroupsPolicies() { + NodeTemplate nt = csarHelperServiceGroupsPolicies.getNodeTemplateByName("vDBE 0"); + List policies = csarHelperServiceGroupsPolicies.getPoliciesOfOriginOfNodeTemplate(nt); + assertNotNull(policies); + List groups = csarHelperServiceGroupsPolicies.getGroupsOfOriginOfNodeTemplate(nt); + assertNotNull(groups); + } + + @Test + public void testGetResourceInputsWithAnnotations() { + List inputs = csarHelperServiceAnnotations.getServiceInputs(); + assertNotNull(inputs); + assertEquals(inputs.size(), 19); + assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty()); + + inputs = csarHelperServiceAnnotations.getInputsWithAnnotations(); + assertNotNull(inputs); + assertEquals(inputs.size(), 19); + validateInputsAnnotations(inputs); + } + + @Test + public void testGetServiceInputsWithAnnotations() { + List inputs = csarHelperServiceAdiodAnnotations.getServiceInputs(); + assertNotNull(inputs); + assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty()); + + inputs = csarHelperServiceAdiodAnnotations.getInputsWithAnnotations(); + assertNotNull(inputs); + validateInputsAnnotations(inputs); + } + @SuppressWarnings("unchecked") private void validateInputsProperties(NodeTemplate vdbe0, Group group) { assertNotNull(group.getPropertiesObjects()); @@ -1142,21 +1185,27 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest { assertEquals(list.size(), 2); } - @Test - public void testGetVfGroupsPolicies() { - List policies = csarHelperVfGroupsPolicies.getPoliciesOfTopologyTemplate(); - assertNotNull(policies); - List groups = csarHelperVfGroupsPolicies.getGroupsOfTopologyTemplate(); - assertNotNull(groups); + private void validateInputsAnnotations(List inputs) { + List inputsWithAnnotations = inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()); + assertTrue(!inputs.isEmpty()); + inputsWithAnnotations.stream().forEach(i -> validateAnnotations(i)); } - @Test - public void testGetServiceGroupsPolicies() { - NodeTemplate nt = csarHelperServiceGroupsPolicies.getNodeTemplateByName("vDBE 0"); - List policies = csarHelperServiceGroupsPolicies.getPoliciesOfOriginOfNodeTemplate(nt); - assertNotNull(policies); - List groups = csarHelperServiceGroupsPolicies.getGroupsOfOriginOfNodeTemplate(nt); - assertNotNull(groups); + + private void validateAnnotations(Input input) { + assertNotNull(input.getAnnotations()); + assertEquals(input.getAnnotations().size(), 1); + Annotation annotation = input.getAnnotations().get("source"); + assertEquals(annotation.getName(), "source"); + assertEquals(annotation.getType().toLowerCase(), "org.openecomp.annotations.source"); + assertNotNull(annotation.getProperties()); + Optional source_type = annotation.getProperties() + .stream() + .filter(p->p.getName().equals("source_type")) + .findFirst(); + assertTrue(source_type.isPresent()); + assertEquals(source_type.get().getValue(), "HEAT"); } + } diff --git a/src/test/resources/csars/resource-Sirovinputannotation-csar.csar b/src/test/resources/csars/resource-Sirovinputannotation-csar.csar new file mode 100644 index 0000000..a872843 Binary files /dev/null and b/src/test/resources/csars/resource-Sirovinputannotation-csar.csar differ diff --git a/src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar b/src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar new file mode 100644 index 0000000..28aa6f4 Binary files /dev/null and b/src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar differ -- cgit 1.2.3-korg