[SDC-182] support nested properties with function 61/6761/1
authorEster Rotstein <er767y@att.com>
Sun, 6 Aug 2017 07:04:42 +0000 (10:04 +0300)
committerEster Rotstein <er767y@att.com>
Sun, 6 Aug 2017 07:04:42 +0000 (10:04 +0300)
Change-Id: I7c7dda4940010bd018880f76eb61eeb2de6d4fcc
Signed-off-by: Ester Rotstein <er767y@att.com>
src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java
src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java
src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java
src/test/resources/csars/service-Ipassignservice-csar.csar

index 9b40416..bafdee2 100644 (file)
@@ -736,22 +736,13 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
 
         if (property instanceof Map) {
             for (Map.Entry<String, Object> item: ((Map<String, Object>) property).entrySet()) {
-                if (item.getKey().equals("get_input")) {
-                    String itemToStr = item.getKey() + ":" + item.getValue().toString();
-                    filterProperties(itemToStr, path, filterType, pattern, filterMap);
-                } else {
-                    path += PATH_DELIMITER + item.getKey();
-                    filterProperties(item.getValue(), path, filterType, pattern, filterMap);
-                }
+                String itemPath = path + PATH_DELIMITER + item.getKey();
+                filterProperties(item.getValue(), itemPath, filterType, pattern, filterMap);
             }
         } else if (property instanceof List) {
             for (Object item: (List<Object>)property) {
                 filterProperties(item, path, filterType, pattern, filterMap);
             }
-        } else if (property instanceof Function) {
-            if (filterType.isMatch(property.toString(), pattern)) {
-                filterMap.put(path, property.toString());
-            }
         } else {
             if (filterType.isMatch(property.toString(), pattern)) {
                 filterMap.put(path, property.toString());
index 817ac92..28dd376 100644 (file)
@@ -24,7 +24,6 @@ public abstract class SdcToscaParserBasicTest {
     static ISdcCsarHelper rainyCsarHelperSingleVf;
     static ISdcCsarHelper rainyCsarHelperMultiVfs;
     static ISdcCsarHelper fdntCsarHelper;
-    static ISdcCsarHelper complexCps;
     static ISdcCsarHelper fdntCsarHelperWithInputs;
     static ISdcCsarHelper nfodCsarHlper;
     static ISdcCsarHelper ipAssignCsarHelper;
@@ -38,7 +37,6 @@ public abstract class SdcToscaParserBasicTest {
         fdntCsarHelper = getCsarHelper("csars/service-sunny-flow.csar");
         rainyCsarHelperMultiVfs = getCsarHelper("csars/service-ServiceFdnt-csar-rainy.csar");
         rainyCsarHelperSingleVf = getCsarHelper("csars/service-ServiceFdnt-csar.csar");
-        complexCps = getCsarHelper("csars/service-consolidated-props-csar.csar");
                fdntCsarHelperWithInputs = getCsarHelper("csars/service-ServiceFdnt-with-get-input.csar");
                nfodCsarHlper =  getCsarHelper("csars/service-NfodService-csar.csar");
                ipAssignCsarHelper =  getCsarHelper("csars/service-Ipassignservice-csar.csar");
index 4ab9af3..e31828c 100644 (file)
@@ -66,6 +66,12 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
                assertEquals(null, fdntCsarHelperWithInputs.getNodeTemplatePropertyLeafValue(serviceVfList.get(1), "target_network_role"));
        }
 
+       @Test
+       public void testNodeTemplateNestedFunctionProperty() throws SdcToscaParserException {
+               List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
+               assertEquals(null, ipAssignCsarHelper.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_ip_requirements#ip_count_required#count"));
+       }
+
        @Test
        public void testNodeTemplateNestedProperty() throws SdcToscaParserException {
                List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
@@ -352,7 +358,7 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
                                assertEquals("subnet_role_4", firstIpRequirements.get("subnet_role"));
                                assertEquals(4, firstIpRequirements.get("ip_version"));
                                assertEquals(true, ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("is_required"));
-                               assertEquals(4, ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("count"));
+                               assertEquals("get_input:node_count", ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("count").toString());
                                assertEquals(false, ((Map<String, Object>)((Map<String, Object>)pd01.get("mac_requirements")).get("mac_count_required")).get("is_required"));
                                assertEquals("test_subnetpoolid", pd01.get("subnetpoolid"));
                                assertEquals("oam", pd01.get("network_role_tag"));
@@ -363,7 +369,6 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
                assertTrue(isChecked);
        }
 
-
        @Test
        public void testGetCpPropertiesFromVfcForNullVFC() {
                Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(null);
@@ -395,17 +400,18 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
     //region filterNodeTemplatePropertiesByValue
     @Test
     public void testFilterNodeTemplatePropertiesByContains() {
-        List<NodeTemplate> vfcs = complexCps.getVfcListByVf("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
+        List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
         boolean isChecked = false;
         for (NodeTemplate vfc: vfcs) {
-            if(vfc.getName().equalsIgnoreCase("abstract_ddc"))
+            if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
             {
                 isChecked = true;
-                Map<String, String> filteredInputs = complexCps.filterNodeTemplatePropertiesByValue(vfc, FilterType.CONTAINS, "get_input");
+                Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.CONTAINS, "get_input");
 
-                assertEquals(16, filteredInputs.size());
-                assertEquals("get_input:vnf_id", filteredInputs.get("compute_ddc_metadata#vf_module_id#vnf_id"));
-                               assertEquals("get_input:[ddc_int_imbl_v6_ips, 3]", filteredInputs.get("port_ddc_int_imbl__port_fixed_ips#ip_address"));
+                assertEquals(7, filteredInputs.size());
+                assertEquals("get_input:availabilityzone_name", filteredInputs.get("compute_pd_server_availability_zone"));
+                               assertEquals("get_input:[pd_server_names, 0]", filteredInputs.get("compute_pd_server_name"));
+                               assertEquals("get_input:node_count", filteredInputs.get("port_pd01_port_ip_requirements#ip_count_required#count"));
 
                 break;
             }
@@ -416,25 +422,25 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
 
     @Test
     public void testFilterNodeTemplatePropertiesByDummyContains() {
-        List<NodeTemplate> vfcs = complexCps.getVfcListByVf("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
-        Map<String, String> filteredInputs = complexCps.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.CONTAINS, "dummy");
+        List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
+        Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.CONTAINS, "dummy");
         assertNotNull(filteredInputs);
         assertEquals(0, filteredInputs.size());
     }
 
     @Test
     public void testFilterNodeTemplatePropertiesByEquals() {
-        List<NodeTemplate> vfcs = complexCps.getVfcListByVf("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
+        List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
         boolean isChecked = false;
         for (NodeTemplate vfc: vfcs) {
-            if(vfc.getName().equalsIgnoreCase("abstract_ddc"))
+            if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
             {
                 isChecked = true;
-                Map<String, String> filteredInputs = complexCps.filterNodeTemplatePropertiesByValue(vfc, FilterType.EQUALS, "ddc");
+                Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.EQUALS, "oam");
 
                 assertEquals(2, filteredInputs.size());
-                assertEquals("ddc", filteredInputs.get("vm_type_tag"));
-                assertEquals("ddc", filteredInputs.get("nfc_naming_code"));
+                assertEquals("oam", filteredInputs.get("port_pd02_port_network_role_tag"));
+                assertEquals("oam", filteredInputs.get("port_pd01_port_network_role_tag"));
                 break;
             }
 
@@ -444,31 +450,31 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
 
        @Test
        public void testFilterNodeTemplatePropertiesByDummyEquals() {
-               List<NodeTemplate> vfcs = complexCps.getVfcListByVf("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
-               Map<String, String> filteredInputs = complexCps.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, "dummy");
+               List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
+               Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, "dummy");
                assertNotNull(filteredInputs);
                assertEquals(0, filteredInputs.size());
        }
 
        @Test
        public void testFilterNodeTemplatePropertiesByNullFilterType() {
-               List<NodeTemplate> vfcs = complexCps.getVfcListByVf("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
-               Map<String, String> filteredInputs = complexCps.filterNodeTemplatePropertiesByValue(vfcs.get(11), null, "ddc");
+               List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
+               Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), null, "ddc");
                assertNotNull(filteredInputs);
                assertEquals(0, filteredInputs.size());
        }
 
        @Test
        public void testFilterNodeTemplatePropertiesByNullPattern() {
-               List<NodeTemplate> vfcs = complexCps.getVfcListByVf("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
-               Map<String, String> filteredInputs = complexCps.filterNodeTemplatePropertiesByValue(vfcs.get(11), FilterType.EQUALS, null);
+               List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
+               Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, null);
                assertNotNull(filteredInputs);
                assertEquals(0, filteredInputs.size());
        }
 
        @Test
        public void testFilterNodeTemplatePropertiesByNullVfc() {
-               Map<String, String> filteredInputs = complexCps.filterNodeTemplatePropertiesByValue(null, FilterType.EQUALS, "ddc");
+               Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(null, FilterType.EQUALS, "ddc");
                assertNotNull(filteredInputs);
                assertEquals(0, filteredInputs.size());
        }
@@ -527,7 +533,7 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
     
     @Test
     public void testGetVnfConfigByNonFoundVNF() {
-       NodeTemplate vnfConfig = complexCps.getVnfConfig("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
+       NodeTemplate vnfConfig = ipAssignCsarHelper.getVnfConfig("b5190df2-7880-4d6f-836f-56ab17e1b85b");
        assertNull(vnfConfig);
     }
     
index 0507457..abdcd3e 100644 (file)
Binary files a/src/test/resources/csars/service-Ipassignservice-csar.csar and b/src/test/resources/csars/service-Ipassignservice-csar.csar differ