From 1df0b72a316dcc7f913061706db165d78d2c3a03 Mon Sep 17 00:00:00 2001 From: Pavel Aharoni Date: Mon, 3 Apr 2017 10:06:16 +0300 Subject: [SDC-8] trying to merge changes of tests and csars Change-Id: Iac4d5bd1ea312b76cba52a172d5ac80757173409 Signed-off-by: Pavel Aharoni --- .../sdc/tosca/parser/impl/SdcCsarHelperImpl.java | 61 ++++++++----- .../openecomp/sdc/impl/ToscaParserStubsTest.java | 96 +++++++++++++++++++++ ...vice-ServiceFdnt-csar-allotted-resources-4.csar | Bin 0 -> 39949 bytes ...ceFdnt-csar-groups-status-supported-case-3.csar | Bin 0 -> 39943 bytes .../csars/service-ServiceFdnt-csar-nt-props-1.csar | Bin 0 -> 39948 bytes .../service-ServiceFdnt-csar-nt-tt-metadata-2.csar | Bin 0 -> 39938 bytes .../resources/csars/service-ServiceFdnt-csar.csar | Bin 0 -> 39979 bytes .../test/resources/csars/service-vmme-csar.csar | Bin 0 -> 74074 bytes 8 files changed, 134 insertions(+), 23 deletions(-) create mode 100644 sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserStubsTest.java create mode 100644 sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-allotted-resources-4.csar create mode 100644 sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-groups-status-supported-case-3.csar create mode 100644 sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-props-1.csar create mode 100644 sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-tt-metadata-2.csar create mode 100644 sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar.csar create mode 100644 sdc-tosca-parser/src/test/resources/csars/service-vmme-csar.csar (limited to 'sdc-tosca-parser/src') diff --git a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java index 51afe7e..d5caa5d 100644 --- a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java +++ b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java @@ -24,6 +24,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collector; +import java.util.stream.Collectors; import org.apache.commons.lang3.tuple.Pair; import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; @@ -32,27 +34,34 @@ import org.openecomp.sdc.toscaparser.api.NodeTemplate; import org.openecomp.sdc.toscaparser.api.Property; import org.openecomp.sdc.toscaparser.api.TopologyTemplate; import org.openecomp.sdc.toscaparser.api.ToscaTemplate; +import org.yaml.snakeyaml.Yaml; public class SdcCsarHelperImpl implements ISdcCsarHelper { private ToscaTemplate toscaTemplate; - + private static Yaml defaultYaml = new Yaml(); + + public SdcCsarHelperImpl(ToscaTemplate toscaTemplate) { this.toscaTemplate = toscaTemplate; } @Override + //Sunny flow - covered with UT, flat and nested public String getNodeTemplatePropertyLeafValue(NodeTemplate nodeTemplate, String leafValuePath) { String[] split = leafValuePath.split("#"); List properties = nodeTemplate.getProperties(); Optional findFirst = properties.stream().filter(x -> x.getName().equals(split[0])).findFirst(); if (findFirst.isPresent()){ - Object current = findFirst.get().getValue(); - /*for (int i = 1; i < split.length; i++) { - //if (i ) - }*/ - //TODO add nested props - return (String)current; + Property property = findFirst.get(); + Object current = property.getValue(); + if (split.length > 1){ + current = defaultYaml.load((String)current); + for (int i = 1; i < split.length; i++) { + current = ((Map)current).get(split[i]); + } + } + return String.valueOf(current); } return null; } @@ -64,11 +73,13 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { } @Override + //Sunny flow - covered with UT public List getServiceVfList() { return getNodeTemplateBySdcType(toscaTemplate.getTopologyTemplate(), Types.TYPE_VF); } - + @Override + //Sunny flow - covered with UT public List getServiceNodeTemplatesByType(String nodeType) { List res = new ArrayList<>(); List nodeTemplates = toscaTemplate.getNodeTemplates(); @@ -113,11 +124,6 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { return res; } - /*@Override - public String getMetadataPropertyValue(Metadata metadata, String metadataPropertyName) { - return (String)metadata.get(metadataPropertyName); - }*/ - @Override public String getServiceInputLeafValue(String inputLeafValuePath) { //toscaTemplate.getTopologyTemplate().getNodeTemplates().get(0).getProperties().get(0). @@ -131,7 +137,9 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { @Override public Map getServiceMetadata() { - return toscaTemplate.getTopologyTemplate().getMetadata(); + TopologyTemplate topologyTemplate = toscaTemplate.getTopologyTemplate(); + System.out.println(topologyTemplate.toString()); + return topologyTemplate.getMetadata(); } //Get property from group @@ -139,10 +147,10 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { public String getGroupPropertyLeafValue(Group group, String propertyName) { return null;//getLeafPropertyValue(group, propertyName); } - + private List getNodeTemplateBySdcType(NodeTemplate nodeTemplate, String sdcType){ //Need metadata to fetch by type - + /*List nodeTemplates = nodeTemplate.getNestedNodeTemplates(); List res = new ArrayList<>(); for (NodeTemplate nodeTemplateEntry : nodeTemplates){ @@ -152,16 +160,16 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { }*/ return null; } - + private List getNodeTemplateBySdcType(TopologyTemplate topologyTemplate, String sdcType){ //Need metadata to fetch by type - + List nodeTemplates = topologyTemplate.getNodeTemplates(); List res = new ArrayList<>(); for (NodeTemplate nodeTemplateEntry : nodeTemplates){ //TODO switch back to type condition if (nodeTemplateEntry.getTypeDefinition().getType().contains("."+sdcType.toLowerCase()+".")){ - //if (sdcType.equals(nodeTemplateEntry.getMetadata().get(SdcPropertyNames.PROPERTY_NAME_TYPE))){ + //if (sdcType.equals(nodeTemplateEntry.getMetadata().get(SdcPropertyNames.PROPERTY_NAME_TYPE))){ res.add(nodeTemplateEntry); } } @@ -189,16 +197,23 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { } @Override + //TODO constant strings public List getAllottedResources() { - //TODO - Need metadata - return new ArrayList<>(); + List nodeTemplates = toscaTemplate.getTopologyTemplate().getNodeTemplates(); + return nodeTemplates.stream().filter(x -> x.getMetadata() != null && x.getMetadata().get("category").equals("allotted_resources")).collect(Collectors.toList()); } @Override + //Sunny flow - covered with UT public String getTypeOfNodeTemplate(NodeTemplate nodeTemplate) { //Can be done return nodeTemplate.getTypeDefinition().getType(); } - - + + /*//Not part of API, for inner/test use + public NodeTemplate getNodeTemplateByName(TopologyTemplate topologyTemplate, String topologyName){ + List nodeTemplates = topologyTemplate.getNodeTemplates(); + Optional findFirst = nodeTemplates.stream().filter(x -> x.getName().equals(topologyName)).findFirst(); + return findFirst.isPresent() ? findFirst.get() : null; + }*/ } diff --git a/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserStubsTest.java b/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserStubsTest.java new file mode 100644 index 0000000..aac552c --- /dev/null +++ b/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserStubsTest.java @@ -0,0 +1,96 @@ +package org.openecomp.sdc.impl; + +import java.io.File; +import java.util.List; +import java.util.Map; + +import org.junit.AfterClass; +import static org.junit.Assert.*; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; +import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory; +import org.openecomp.sdc.toscaparser.api.NodeTemplate; + +public class ToscaParserStubsTest { + + private static ISdcCsarHelper csarHelper; + private static SdcToscaParserFactory factory; + + + @BeforeClass + public static void init() throws SdcToscaParserException{ + factory = SdcToscaParserFactory.getInstance(); + //csarHelper = factory.getSdcCsarHelper("C:\\Users\\pa0916\\Desktop\\Work\\ASDC\\CSARs\\service-ServiceFdnt-csar-allotted-resources-4.csar"); + String fileStr = ToscaParserStubsTest.class.getClassLoader().getResource("csars/service-ServiceFdnt-csar-allotted-resources-4.csar").getFile(); + File file = new File(fileStr); + csarHelper = factory.getSdcCsarHelper(file.getAbsolutePath()); + } + + + @Test + //TODO add rainy flows + public void testNumberOfVfSunnyFlow() throws SdcToscaParserException { + List serviceVfList = csarHelper.getServiceVfList(); + assertNotNull(serviceVfList); + assertEquals(1, serviceVfList.size()); + } + + @Test + //TODO add rainy flows + public void testNodeTemplateFlatProperty() throws SdcToscaParserException { + List serviceVfList = csarHelper.getServiceVfList(); + String nodeTemplatePropertyLeafValue = csarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "availability_zone_max_count"); + assertEquals("2", nodeTemplatePropertyLeafValue); + } + + @Test + //TODO add rainy flows + public void testNodeTemplateNestedProperty() throws SdcToscaParserException { + List serviceVfList = csarHelper.getServiceVfList(); + String nodeTemplatePropertyLeafValue = csarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_role#nf_naming#instance_name"); + assertEquals("FDNT_instance_VF", nodeTemplatePropertyLeafValue); + } + + @Test + //TODO add rainy flows + public void testServiceNodeTemplatesByType() throws SdcToscaParserException { + List serviceVfList = csarHelper.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Fdnt"); + assertNotNull(serviceVfList); + assertEquals(1, serviceVfList.size()); + } + + @Test + //TODO add rainy flows + public void testGetTypeOfNodeTemplate() { + List serviceVfList = csarHelper.getServiceVfList(); + String typeOfNodeTemplate = csarHelper.getTypeOfNodeTemplate(serviceVfList.get(0)); + assertEquals("org.openecomp.resource.vf.Fdnt", typeOfNodeTemplate); + } + + + //@Test + //TODO add rainy flows + public void testGetServiceMetadata() { + //FAILS!! Metadata is null + Map serviceMetadata = csarHelper.getServiceMetadata(); + assertNotNull(serviceMetadata); + assertEquals("78c72999-1003-4a35-8534-bbd7d96fcae3", serviceMetadata.get("invariantUUID")); + assertEquals("Service FDNT", serviceMetadata.get("name")); + assertEquals("true", serviceMetadata.get("serviceEcompNaming")); + } + + @Test + //TODO add rainy flows + public void testGetAllottedResources() { + List allottedResources = csarHelper.getAllottedResources(); + assertEquals(1, allottedResources.size()); + } + + + @AfterClass + public static void close(){ + factory.close(); + } + } diff --git a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-allotted-resources-4.csar b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-allotted-resources-4.csar new file mode 100644 index 0000000..7b4cff2 Binary files /dev/null and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-allotted-resources-4.csar differ diff --git a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-groups-status-supported-case-3.csar b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-groups-status-supported-case-3.csar new file mode 100644 index 0000000..7286663 Binary files /dev/null and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-groups-status-supported-case-3.csar differ diff --git a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-props-1.csar b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-props-1.csar new file mode 100644 index 0000000..ceac90a Binary files /dev/null and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-props-1.csar differ diff --git a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-tt-metadata-2.csar b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-tt-metadata-2.csar new file mode 100644 index 0000000..3cda214 Binary files /dev/null and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-nt-tt-metadata-2.csar differ diff --git a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar.csar b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar.csar new file mode 100644 index 0000000..6179316 Binary files /dev/null and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar.csar differ diff --git a/sdc-tosca-parser/src/test/resources/csars/service-vmme-csar.csar b/sdc-tosca-parser/src/test/resources/csars/service-vmme-csar.csar new file mode 100644 index 0000000..416707c Binary files /dev/null and b/sdc-tosca-parser/src/test/resources/csars/service-vmme-csar.csar differ -- cgit 1.2.3-korg