SDC Tosca Parser getEntity API 36/75636/1 1.4.12
authorManzon, Inna (im453s) <im453s@intl.att.com>
Tue, 25 Dec 2018 15:41:33 +0000 (17:41 +0200)
committerManzon, Inna (im453s) <im453s@intl.att.com>
Thu, 10 Jan 2019 16:27:17 +0000 (18:27 +0200)
Change-Id: I7cb1acfcfacd3c58eae52995523b1e55e7302144
Issue-ID: SDC-1967
Signed-off-by: Manzon, Inna (im453s) <im453s@intl.att.com>
pom.xml
src/main/java/org/onap/sdc/tosca/parser/impl/QueryProcessor.java
src/test/java/org/onap/sdc/impl/GetEntityTest.java
version.properties

diff --git a/pom.xml b/pom.xml
index 981ae9b..c64b5f5 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
        <artifactId>sdc-tosca</artifactId>
        <name>sdc-sdc-tosca</name>
        <description>SDC Tosca Parser JAR file for use by consumers</description>
-       <version>1.4.11-SNAPSHOT</version>
+       <version>1.4.12-SNAPSHOT</version>
        <packaging>jar</packaging>
 
        <properties>
index 42b499b..8ca730c 100644 (file)
@@ -92,31 +92,33 @@ class QueryProcessor {
         return topologyTemplateQuery.getNodeTemplateType() == SdcTypes.SERVICE;
     }
 
-    private List<NodeTemplate> getInternalTopologyTemplates(List<NodeTemplate> nodeTemplateList, boolean searchTypeOnly) {
+    private List<NodeTemplate> getInternalTopologyTemplates(List<NodeTemplate> nodeTemplateList, boolean isRecursive) {
         return nodeTemplateList
             .stream()
-            .map(child->getTopologyTemplatesByQuery(child, searchTypeOnly))
+            .map(child->getTopologyTemplatesByQuery(child, isRecursive))
             .flatMap(List::stream)
             .collect(Collectors.toList());
     }
 
-    private List<NodeTemplate> getTopologyTemplatesByQuery(NodeTemplate current, boolean searchTypeOnly) {
+    private List<NodeTemplate> getTopologyTemplatesByQuery(NodeTemplate current, boolean isRecursive) {
         List<NodeTemplate> topologyTemplateList = Lists.newArrayList();
 
-        boolean isTopologyTemplateFound = searchTypeOnly ?
-                topologyTemplateQuery.isSameSdcType(current.getMetaData()) : topologyTemplateQuery.isMatchingSearchCriteria(current);
+        boolean isTopologyTemplateFound = isRecursive ?
+                SdcTypes.isComplex(current.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_TYPE))
+                : topologyTemplateQuery.isMatchingSearchCriteria(current);
         if (isTopologyTemplateFound) {
             topologyTemplateList.add(current);
-            if (!isServiceSearch()) {
+            if (!isRecursive) {
                 //recursion stop condition
                 return topologyTemplateList;
             }
         }
-        if (SdcTypes.isComplex(current.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_TYPE)) && current.getSubMappingToscaTemplate() != null) {
-            //search the node template inside a given topology template
+        if (SdcTypes.isComplex(current.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_TYPE)) &&
+               current.getSubMappingToscaTemplate() != null) {
+           //search the node template inside a given topology template
             topologyTemplateList.addAll(current.getSubMappingToscaTemplate().getNodeTemplates()
                     .stream()
-                    .map(nt->getTopologyTemplatesByQuery(nt, searchTypeOnly))
+                    .map(nt->getTopologyTemplatesByQuery(nt, isRecursive))
                     .flatMap(List::stream)
                     .collect(Collectors.toList()));
         }
index 830e67a..5c19072 100644 (file)
@@ -89,6 +89,20 @@ public class GetEntityTest {
         assertEquals("jenny vTSBC vlan VNF 0#abstract_rtp_msc#rtp_msc_rtp_msc_avpn_port_0_vlan_subinterface_rtp_msc_avpn", entities.get(7).getPath());
     }
 
+    @Test
+    public void getCpsFromVfRecursively() {
+        EntityQuery entityQuery = EntityQuery.newBuilder(SdcTypes.CP)
+                .build();
+        TopologyTemplateQuery topologyTemplateQuery = TopologyTemplateQuery.newBuilder(SdcTypes.VF)
+                .build();
+
+        List<IEntityDetails> entities = helper.getEntity(entityQuery, topologyTemplateQuery, true);
+
+        assertEquals(16, entities.size());
+        assertEquals("jenny vTSBC vlan VNF 0#abstract_rtp_msc", entities.get(2).getPath());
+        assertEquals("jenny vTSBC vlan VNF 0#abstract_rtp_msc#rtp_msc_rtp_msc_avpn_port_0_vlan_subinterface_rtp_msc_avpn", entities.get(7).getPath());
+    }
+
     @Test
     public void getCpByUuidsFromCVFCRecursively() {
         EntityQuery entityQuery = EntityQuery.newBuilder(SdcTypes.CP)
index a3c3ff7..45ee9cd 100644 (file)
@@ -5,7 +5,7 @@
 
 major=1
 minor=4
-patch=11
+patch=12
 
 base_version=${major}.${minor}.${patch}