aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib
diff options
context:
space:
mode:
authorojasdubey <ojas.dubey@amdocs.com>2019-07-08 13:07:18 +0530
committerAvi Gaffa <avi.gaffa@amdocs.com>2019-07-08 12:00:38 +0000
commitda8b24151295d923cc632dfa2d296b3c67f6cce2 (patch)
tree28e104919c9506d38229cb437bf31cb50d86f46f /openecomp-be/lib
parent3b72874a95ce734f555334fb0fba987a069664d0 (diff)
Move import handling to service template
Moving the handling of all import formats parsing to ServiceTemplate class to make it generic and reusable Change-Id: I80595c3654a625275549a3bb3afe8ba7c9455aff Issue-ID: SDC-2421 Signed-off-by: ojasdubey <ojas.dubey@amdocs.com>
Diffstat (limited to 'openecomp-be/lib')
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/AbstractToscaConverter.java12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java4
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java69
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java53
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTest.yml14
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml4
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml5
7 files changed, 11 insertions, 150 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/AbstractToscaConverter.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/AbstractToscaConverter.java
index 859d3da9dc..0b0c6e42f9 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/AbstractToscaConverter.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/AbstractToscaConverter.java
@@ -46,6 +46,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
@@ -180,12 +181,11 @@ public abstract class AbstractToscaConverter implements ToscaConverter {
}
private void convertImports(ServiceTemplate serviceTemplate) {
- serviceTemplate.setImports(new ArrayList<>());
- serviceTemplate.getImports()
- .add(createImportMap(openecompHeatIndex, HEAT_INDEX_IMPORT_FILE));
- serviceTemplate.getImports().add(createImportMap(ONAP_INDEX, ONAP_INDEX_IMPORT_FILE));
- serviceTemplate.getImports().add(createImportMap(globalSubstitution, globalStName));
-
+ List<Map<String, Import>> imports = new ArrayList<>();
+ imports.add(createImportMap(openecompHeatIndex, HEAT_INDEX_IMPORT_FILE));
+ imports.add(createImportMap(ONAP_INDEX, ONAP_INDEX_IMPORT_FILE));
+ imports.add(createImportMap(globalSubstitution, globalStName));
+ serviceTemplate.setImports(imports);
}
private Map<String, Import> createImportMap(String key, String fileName) {
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java
index d5a99106bc..2c3ff0ae5d 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java
@@ -44,8 +44,8 @@ public class ToscaConvertorDefinitionsTest {
assertNotNull(serviceTemplate.getImports());
assertFalse(serviceTemplate.getImports().isEmpty());
assertEquals(1 ,serviceTemplate.getImports().size());
- assertTrue(serviceTemplate.getImports().get(0).containsKey(HEAT_INDEX));
- assertTrue(serviceTemplate.getImports().get(0).containsKey(ONAP_INDEX));
+ assertTrue(((Map) serviceTemplate.getImports().get(0)).containsKey(HEAT_INDEX));
+ assertTrue(((Map) serviceTemplate.getImports().get(0)).containsKey(ONAP_INDEX));
assertEquals(DEFININTION_VERSION, serviceTemplate.getTosca_definitions_version());
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
index 053253a993..14cf90a272 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
@@ -169,11 +169,10 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
}
void loadToscaYamlFile(ToscaServiceModel toscaServiceModel, ToscaExtensionYamlUtil toscaExtensionYamlUtil,
- byte[] fileContent, String fileFullName) {
+ byte[] fileContent, String fileFullName) {
try {
- String serviceTemplateYamlString = convertServiceTemplateImport(toscaExtensionYamlUtil, fileContent);
ServiceTemplate serviceTemplate =
- toscaExtensionYamlUtil.yamlToObject(serviceTemplateYamlString, ServiceTemplate.class);
+ toscaExtensionYamlUtil.yamlToObject(new String(fileContent), ServiceTemplate.class);
toscaServiceModel.addServiceTemplate(fileFullName, serviceTemplate);
} catch (Exception exc) {
@@ -181,70 +180,6 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
}
}
- String convertServiceTemplateImport(ToscaExtensionYamlUtil toscaExtensionYamlUtil, byte[] fileContent) {
- Map serviceTemplateMap = toscaExtensionYamlUtil.yamlToObject(new String(fileContent), Map.class);
- convertToscaImports(serviceTemplateMap, toscaExtensionYamlUtil);
- return toscaExtensionYamlUtil.objectToYaml(serviceTemplateMap);
- }
-
- private void convertToscaImports(Map serviceTemplateMap, ToscaExtensionYamlUtil toscaExtensionYamlUtil) {
- List<Map<String, Import>> convertedImport = new ArrayList<>();
- Object importObj = serviceTemplateMap.get(IMPORTS);
- if (Objects.nonNull(importObj) && !(importObj instanceof List)) {
- throw new SdcRuntimeException(new IllegalStateException("Invalid TOSCA import section"));
- }
- List<Object> imports = (List) importObj;
- if (CollectionUtils.isEmpty(imports)) {
- return;
- }
- for (Object importEntry : imports) {
- convertToscaImportEntry(convertedImport, importEntry, toscaExtensionYamlUtil);
- }
- serviceTemplateMap.remove(IMPORTS);
- serviceTemplateMap.put(IMPORTS, convertedImport);
- }
-
- private void convertToscaImportEntry(List<Map<String, Import>> convertedImport, Object importEntry,
- ToscaExtensionYamlUtil toscaExtensionYamlUtil) {
- if (importEntry instanceof String) {
- convertImportShortNotation(convertedImport, importEntry.toString());
- } else if (importEntry instanceof Map) {
- if (((Map) importEntry).containsKey("file")) {
- Import importObject = toscaExtensionYamlUtil
- .yamlToObject(toscaExtensionYamlUtil.objectToYaml(importEntry),
- Import.class);
- convertImportExtendNotation(convertedImport, importObject);
- } else {
- convertedImport.add((Map<String, Import>) importEntry);
- }
- }
- }
-
- private void convertImportExtendNotation(List<Map<String, Import>> convertedImport, Import importEntry) {
- Map<String, Import> importMap = new HashMap();
- importMap.put(FileUtils.getFileWithoutExtention(getFileName(importEntry.getFile()).replaceAll("/", "_")),
- importEntry);
- convertedImport.add(importMap);
- }
-
- private void convertImportShortNotation(List<Map<String, Import>> convertImport, String fileFullName) {
- Import importObject = new Import();
- importObject.setFile(fileFullName);
- Map<String, Import> importMap = new HashMap();
- importMap
- .put((FileUtils.getFileWithoutExtention(getFileName(fileFullName)).replaceAll("/", "_")), importObject);
- convertImport.add(importMap);
- }
-
- private static String getFileName(String relativeFileName) {
- if (relativeFileName.contains("../")) {
- return relativeFileName.replace("../", "");
- } else {
- return relativeFileName;
- }
-
- }
-
private static boolean isFile(String currentEntryName) {
return !(currentEntryName.endsWith("\\") || currentEntryName.endsWith("/"));
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
index a915b9b131..f8e6759555 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
@@ -30,6 +30,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+
import org.apache.commons.io.IOUtils;
import org.hamcrest.core.StringContains;
import org.junit.Assert;
@@ -62,7 +63,6 @@ import org.onap.sdc.tosca.datatypes.model.Status;
import org.onap.sdc.tosca.datatypes.model.SubstitutionMapping;
import org.onap.sdc.tosca.datatypes.model.TopologyTemplate;
import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
-import org.onap.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.SdcRuntimeException;
import org.openecomp.sdc.tosca.TestUtil;
@@ -1177,57 +1177,6 @@ public class ToscaAnalyzerServiceImplTest {
}
@Test
- public void testConvertToscaImport() throws Exception {
- String inputResourceName = "/mock/analyzerService/importConvertTest.yml";
- byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(inputResourceName));
-
- ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- ToscaAnalyzerServiceImpl toscaAnalyzerServiceImpl = new ToscaAnalyzerServiceImpl();
- String convertServiceTemplateImport =
- toscaAnalyzerServiceImpl.convertServiceTemplateImport(toscaExtensionYamlUtil, uploadedFileData);
-
- Assert.assertNotNull(convertServiceTemplateImport);
- ServiceTemplate serviceTemplate =
- new YamlUtil().yamlToObject(convertServiceTemplateImport, ServiceTemplate.class);
- Assert.assertNotNull(serviceTemplate.getImports().get(0).get("data"));
- Assert.assertNotNull(serviceTemplate.getImports().get(1).get("artifacts"));
- Assert.assertNotNull(serviceTemplate.getImports().get(2).get("capabilities"));
- Assert.assertNotNull(serviceTemplate.getImports().get(3).get("api_interfaces"));
- Assert.assertNotNull(serviceTemplate.getImports().get(4).get("api_util_relationships"));
- Assert.assertNotNull(serviceTemplate.getImports().get(5).get("common"));
- Assert.assertNotNull(serviceTemplate.getImports().get(6).get("api_util"));
- Assert.assertNotNull(serviceTemplate.getImports().get(7).get("relationshipsExt"));
- }
-
- @Test
- public void testConvertToscaImportForEmptyImport() throws Exception {
- String inputResourceName = "/mock/analyzerService/importConvertTestNoImport.yml";
- byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(inputResourceName));
-
- ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- ToscaAnalyzerServiceImpl toscaAnalyzerServiceImpl = new ToscaAnalyzerServiceImpl();
- String convertServiceTemplateImport =
- toscaAnalyzerServiceImpl.convertServiceTemplateImport(toscaExtensionYamlUtil, uploadedFileData);
-
- Assert.assertNotNull(convertServiceTemplateImport);
- ServiceTemplate serviceTemplate =
- new YamlUtil().yamlToObject(convertServiceTemplateImport, ServiceTemplate.class);
- Assert.assertNull(serviceTemplate.getImports());
- }
-
- @Test
- public void testInvalidToscaImportSection() throws Exception {
- thrown.expect(SdcRuntimeException.class);
- thrown.expectMessage("Invalid TOSCA import section");
- String inputResourceName = "/mock/analyzerService/invalidToscaImport.yml";
- byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(inputResourceName));
-
- ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- ToscaAnalyzerServiceImpl toscaAnalyzerServiceImpl = new ToscaAnalyzerServiceImpl();
- toscaAnalyzerServiceImpl.convertServiceTemplateImport(toscaExtensionYamlUtil, uploadedFileData);
- }
-
- @Test
public void loadValidToscaYamlFileTest() throws Exception {
String inputResourceName = "/mock/analyzerService/ServiceTemplateInterfaceInheritanceTest.yaml";
byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(inputResourceName));
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTest.yml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTest.yml
deleted file mode 100644
index 08ddc3c206..0000000000
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTest.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1
-imports:
-- data.yml
-- artifacts.yml
-- capabilities.yml
-- ../../api/interfaces.yml
-- api/util/relationships.yml
-- common:
- file: api/common.yaml
-- file: api/util.yaml
-- relationshipsExt.yml
-node_types:
- tosca.nodes.Root:
- description: The TOSCA Node Type all other TOSCA base Node Types derive from \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml
deleted file mode 100644
index 536e1367e5..0000000000
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1
-node_types:
- tosca.nodes.Root:
- description: The TOSCA Node Type all other TOSCA base Node Types derive from \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml
deleted file mode 100644
index 8a5cfaa9ac..0000000000
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1
-imports: abc
-node_types:
- tosca.nodes.Root:
- description: The TOSCA Node Type all other TOSCA base Node Types derive from \ No newline at end of file