aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/openecomp/sdc/tosca/parser/api/ISdcCsarHelper.java9
-rw-r--r--src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java43
-rw-r--r--src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java3
-rw-r--r--src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java33
-rw-r--r--src/test/resources/csars/service-NfodService-csar.csarbin0 -> 39906 bytes
5 files changed, 83 insertions, 5 deletions
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 35c68d4..45d8392 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
@@ -361,4 +361,13 @@ public interface ISdcCsarHelper {
* @return service node templates of this SDC type.
*/
public List<NodeTemplate> getServiceNodeTemplateBySdcType(SdcTypes sdcType);
+
+ /**
+ * Get all node templates for this CSAR service.
+ * @param vfCustomizationUuid - the Customization UUID of the node.
+ * @return VNF Configuration Node Template.
+ */
+ public NodeTemplate getVnfConfig(String vfCustomizationUuid);
+
+
}
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 e3b9937..0ed4c97 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
@@ -24,6 +24,7 @@ import java.util.*;
import java.util.Map.Entry;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
@@ -561,7 +562,12 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
}
public List<NodeTemplate> getNodeTemplateBySdcType(NodeTemplate parentNodeTemplate, SdcTypes sdcType) {
- if (parentNodeTemplate == null) {
+ return getNodeTemplateBySdcType(parentNodeTemplate, sdcType, false);
+ }
+
+ private List<NodeTemplate> getNodeTemplateBySdcType(NodeTemplate parentNodeTemplate, SdcTypes sdcType, boolean isVNF) {
+
+ if (parentNodeTemplate == null) {
log.error("getNodeTemplateBySdcType - nodeTemplate is null or empty");
return new ArrayList<>();
}
@@ -575,10 +581,23 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
if (substitutionMappings != null) {
List<NodeTemplate> nodeTemplates = substitutionMappings.getNodeTemplates();
- if (nodeTemplates != null && nodeTemplates.size() > 0)
- return nodeTemplates.stream().filter(x -> (x.getMetaData() != null && sdcType.toString().equals(x.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_TYPE)))).collect(Collectors.toList());
- else
+ if (nodeTemplates != null && nodeTemplates.size() > 0) {
+ if (sdcType.equals(SdcTypes.VFC) && isVNF) {
+ return nodeTemplates.stream()
+ .filter(x -> (x.getMetaData() != null &&
+ sdcType.toString().equals(x.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_TYPE))) && (x.getType().endsWith("VnfConfiguration")))
+ .collect(Collectors.toList());
+ }
+ else {
+ return nodeTemplates.stream()
+ .filter(x -> (x.getMetaData() != null &&
+ sdcType.toString().equals(x.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_TYPE))) && !(x.getType().endsWith("VnfConfiguration")))
+ .collect(Collectors.toList());
+ }
+ }
+ else {
log.debug("getNodeTemplateBySdcType - SubstitutionMappings' node Templates not exist");
+ }
} else
log.debug("getNodeTemplateBySdcType - SubstitutionMappings not exist");
@@ -616,6 +635,19 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
return filterMap;
}
+
+ public NodeTemplate getVnfConfig(String vfCustomizationUuid) {
+
+ if (GeneralUtility.isEmptyString(vfCustomizationUuid)) {
+ log.error("getVnfConfig - vfCustomizationId - is null or empty");
+ return null;
+ }
+
+ List<NodeTemplate> serviceVfList = getServiceVfList();
+ NodeTemplate vfInstance = getNodeTemplateByCustomizationUuid(serviceVfList, vfCustomizationUuid);
+ NodeTemplate vnfConfig = getNodeTemplateBySdcType(vfInstance, SdcTypes.VFC, true).stream().findAny().orElse(null);
+ return vnfConfig;
+ }
/************************************* helper functions ***********************************/
private Map<String, String> filterProperties(Object property, String path, FilterType filterType, String pattern, Map<String, String> filterMap) {
@@ -656,6 +688,7 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
TopologyTemplate topologyTemplate = toscaTemplate.getTopologyTemplate();
return getNodeTemplateBySdcType(topologyTemplate, sdcType);
}
+
/************************************* helper functions ***********************************/
private List<NodeTemplate> getNodeTemplateBySdcType(TopologyTemplate topologyTemplate, SdcTypes sdcType) {
@@ -696,6 +729,8 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
return null;
}
+
+
}
diff --git a/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java b/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java
index 2039645..3af654e 100644
--- a/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java
+++ b/src/test/java/org/openecomp/sdc/impl/SdcToscaParserBasicTest.java
@@ -26,6 +26,7 @@ public abstract class SdcToscaParserBasicTest {
static ISdcCsarHelper fdntCsarHelper;
static ISdcCsarHelper complexCps;
static ISdcCsarHelper fdntCsarHelperWithInputs;
+ static ISdcCsarHelper nfodCsarHlper;
static Map<String, HashMap<String, List<String>>> fdntCsarHelper_Data;
@BeforeClass
@@ -37,7 +38,7 @@ public abstract class SdcToscaParserBasicTest {
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");
fdntCsarHelper_Data = new HashMap<String, HashMap<String, List<String>>>(){
{
HashMap<String, List<String>> FDNT ;
diff --git a/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java b/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java
index a0808c5..8470cbd 100644
--- a/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java
+++ b/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java
@@ -522,4 +522,37 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
+
+ @Test
+ public void testGetVnfConfig() {
+ NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
+ assertNotNull(vnfConfig);
+ assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
+ }
+
+ @Test
+ public void testGetVnfConfigByNonFoundVNF() {
+ NodeTemplate vnfConfig = complexCps.getVnfConfig("f999e2ca-72c0-42d3-9b11-13f2122fb8ef");
+ assertNull(vnfConfig);
+ }
+
+ @Test
+ public void testGetVnfConfigByDummyUUID() {
+ NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("XXX");
+ assertNull(vnfConfig);
+ }
+
+ @Test
+ public void testGetVnfConfigByNullUUID() {
+ NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig(null);
+ assertNull(vnfConfig);
+ }
+
+ @Test
+ public void testGetVfcTypWithoutVnf() {
+ List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
+ assertNotNull(vfcList);
+ assertEquals(2, vfcList.size());
+ }
+
}
diff --git a/src/test/resources/csars/service-NfodService-csar.csar b/src/test/resources/csars/service-NfodService-csar.csar
new file mode 100644
index 0000000..679c80b
--- /dev/null
+++ b/src/test/resources/csars/service-NfodService-csar.csar
Binary files differ