From 9f2d31d8cb8c4e28c3b1bea809867d39df36e502 Mon Sep 17 00:00:00 2001 From: Pavel Aharoni Date: Mon, 17 Jul 2017 16:26:48 +0300 Subject: [PATCH] [SDC-136] support CVFC type Change-Id: I36af758d5bff633972245d7100a8c892a47527fb Signed-off-by: Pavel Aharoni --- .../sdc/tosca/parser/api/ISdcCsarHelper.java | 9 +++- .../sdc/tosca/parser/impl/SdcCsarHelperImpl.java | 21 +++++++- .../openecomp/sdc/tosca/parser/impl/SdcTypes.java | 10 +++- .../sdc/impl/SdcToscaParserBasicTest.java | 2 + .../sdc/impl/ToscaParserNodeTemplateTest.java | 60 +++++++++++++++++++-- .../resources/csars/service-nested-vfc-csar.csar | Bin 0 -> 47592 bytes 6 files changed, 94 insertions(+), 8 deletions(-) create mode 100644 src/test/resources/csars/service-nested-vfc-csar.csar diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/api/ISdcCsarHelper.java b/src/main/java/org/openecomp/sdc/tosca/parser/api/ISdcCsarHelper.java index 45d8392..6c8f5df 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/api/ISdcCsarHelper.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/api/ISdcCsarHelper.java @@ -368,6 +368,11 @@ public interface ISdcCsarHelper { * @return VNF Configuration Node Template. */ public NodeTemplate getVnfConfig(String vfCustomizationUuid); - - + + /** + * Check if Node Template has Topology Template + * @param nodeTemplate - Node Template to check + * @return true if node template has topology template, false if not. + */ + public boolean hasTopology(NodeTemplate nodeTemplate); } diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java index 0ed4c97..7b901ec 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java @@ -215,7 +215,10 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { List serviceVfList = getServiceVfList(); NodeTemplate vfInstance = getNodeTemplateByCustomizationUuid(serviceVfList, vfCustomizationId); - return getNodeTemplateBySdcType(vfInstance, SdcTypes.VFC); + List vfcs = getNodeTemplateBySdcType(vfInstance, SdcTypes.VFC); + vfcs.addAll(getNodeTemplateBySdcType(vfInstance, SdcTypes.CVFC)); + + return vfcs; } @Override @@ -649,6 +652,22 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { return vnfConfig; } + @Override + public boolean hasTopology(NodeTemplate nodeTemplate) { + if (nodeTemplate == null) { + log.error("hasTopology - nodeTemplate - is null"); + return false; + } + + if (nodeTemplate.getMetaData() != null) { + String type = nodeTemplate.getMetaData().getValue("type"); + log.debug("hasTopology - node template {} is a {} type", nodeTemplate.getName(), type); + return SdcTypes.isComplex(SdcTypes.valueOf(type)); + } + + return false; + } + /************************************* helper functions ***********************************/ private Map filterProperties(Object property, String path, FilterType filterType, String pattern, Map filterMap) { diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcTypes.java b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcTypes.java index 5b68aea..9f885f4 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcTypes.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcTypes.java @@ -20,8 +20,16 @@ package org.openecomp.sdc.tosca.parser.impl; +import java.util.Arrays; +import java.util.List; + public enum SdcTypes { - CP, VL, VF, VFC, PNF, SERVICE + CP, VL, VF, VFC, PNF, SERVICE, CVFC; + + public static List complexTypes = Arrays.asList(VF, PNF, SERVICE, CVFC); + public static boolean isComplex(SdcTypes sdcType) { + return complexTypes.contains(sdcType); + } } diff --git a/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java b/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java index 3af654e..471fbc0 100644 --- a/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java +++ b/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java @@ -27,6 +27,7 @@ public abstract class SdcToscaParserBasicTest { static ISdcCsarHelper complexCps; static ISdcCsarHelper fdntCsarHelperWithInputs; static ISdcCsarHelper nfodCsarHlper; + static ISdcCsarHelper nestedVfcCsarHlper; static Map>> fdntCsarHelper_Data; @BeforeClass @@ -39,6 +40,7 @@ public abstract class SdcToscaParserBasicTest { complexCps = getCsarHelper("csars/service-consolidated-props-csar.csar"); fdntCsarHelperWithInputs = getCsarHelper("csars/service-ServiceFdnt-with-get-input.csar"); nfodCsarHlper = getCsarHelper("csars/service-NfodService-csar.csar"); + nestedVfcCsarHlper = getCsarHelper("csars/service-nested-vfc-csar.csar"); fdntCsarHelper_Data = new HashMap>>(){ { HashMap> FDNT ; diff --git a/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java b/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java index 8470cbd..d8e065b 100644 --- a/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java +++ b/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java @@ -520,9 +520,7 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest { } //endregion - - - + //region getVnfConfig @Test public void testGetVnfConfig() { NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57"); @@ -554,5 +552,59 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest { assertNotNull(vfcList); assertEquals(2, vfcList.size()); } - + //endregion + + //region nested vfc + @Test + public void testNestedVfcByExistCvfc() { + List vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615"); + assertNotNull(vfcList); + assertEquals(1, vfcList.size()); + assertEquals("VF_VNF", vfcList.get(0).getName()); + } + + @Test + public void testNestedVfcByNullVf() { + List vfcList = nestedVfcCsarHlper.getVfcListByVf(null); + assertNotNull(vfcList); + assertEquals(0, vfcList.size()); + } + + @Test + public void testNestedVfcByDummyVf() { + List vfcList = nestedVfcCsarHlper.getVfcListByVf("dummy"); + assertNotNull(vfcList); + assertEquals(0, vfcList.size()); + } + //endregion + + //region hasTopology + @Test + public void testHasTopologyByVF() { + List vfList = nestedVfcCsarHlper.getServiceVfList(); + boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfList.get(0)); + assertEquals(true, hasTopology); + } + + @Test + public void testHasTopologyByCVFC() { + List vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615"); + boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfcList.get(0)); + assertEquals(true, hasTopology); + } + + @Test + public void testHasTopologyByVL() { + List serviceVlList = fdntCsarHelper.getServiceVlList(); + boolean hasTopology = fdntCsarHelper.hasTopology(serviceVlList.get(0)); + assertEquals(false, hasTopology); + } + + @Test + public void testHasTopologyByNull() { + boolean hasTopology = fdntCsarHelper.hasTopology(null); + assertEquals(false, hasTopology); + } + //endregion + } diff --git a/src/test/resources/csars/service-nested-vfc-csar.csar b/src/test/resources/csars/service-nested-vfc-csar.csar new file mode 100644 index 0000000000000000000000000000000000000000..b141fe2f370f4a2bc226966813f16dbeca49dde1 GIT binary patch literal 47592 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 B2fF|O literal 0 HcmV?d00001 -- 2.16.6