aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common-be/pom.xml5
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java19
-rw-r--r--integration-tests/pom.xml11
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java21
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java31
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java162
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java46
-rw-r--r--pom.xml3
9 files changed, 39 insertions, 264 deletions
diff --git a/common-be/pom.xml b/common-be/pom.xml
index 248edb30f9..f45c25f37b 100644
--- a/common-be/pom.xml
+++ b/common-be/pom.xml
@@ -109,11 +109,6 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.onap.sdc.sdc-tosca</groupId>
- <artifactId>sdc-tosca</artifactId>
- <version>${sdc-tosca-parser.version}</version>
- </dependency>
- <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java b/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java
index 12813f231d..640c95bf65 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java
@@ -19,13 +19,12 @@
package org.openecomp.sdc.be.config;
-import org.apache.commons.io.IOUtils;
-import org.onap.sdc.tosca.parser.utils.YamlToObjectConverter;
-import org.openecomp.sdc.be.config.exception.LoadConfigurationException;
-
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import org.apache.commons.io.IOUtils;
+import org.openecomp.sdc.be.config.exception.LoadConfigurationException;
+import org.yaml.snakeyaml.Yaml;
/**
* Singleton that loads and stores the Non Mano configuration
@@ -52,7 +51,7 @@ public class NonManoConfigurationManager {
} catch (final IOException e) {
throw new LoadConfigurationException("Could not parse non-mano configuration file 'config/nonManoConfig.yaml' to string", e);
}
- nonManoConfiguration = new YamlToObjectConverter().convertFromString(data, NonManoConfiguration.class);
+ nonManoConfiguration = convertFromString(data, NonManoConfiguration.class);
}
public static NonManoConfigurationManager getInstance() {
@@ -66,4 +65,14 @@ public class NonManoConfigurationManager {
public NonManoConfiguration getNonManoConfiguration() {
return nonManoConfiguration;
}
+
+ private <T> T convertFromString(final String yamlContents, final Class<T> className) {
+ try {
+ return (new Yaml()).loadAs(yamlContents, className);
+ } catch (final Exception e) {
+ throw new
+ LoadConfigurationException(String.format("Failed to convert YAML %s to object.", yamlContents), e);
+ }
+ }
+
}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 9d646721c2..8b5e614b65 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -24,7 +24,6 @@ limitations under the License.
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.openecomp.sdc</groupId>
<artifactId>sdc-integration-tests</artifactId>
<packaging>jar</packaging>
<name>sdc-integration-tests</name>
@@ -52,6 +51,8 @@ limitations under the License.
<it.docker.version>latest</it.docker.version>
<it.ui.firefox.version>2.53.1</it.ui.firefox.version>
+ <!-- parser-->
+ <sdc-tosca-parser.version>1.6.5</sdc-tosca-parser.version>
</properties>
<dependencies>
@@ -182,6 +183,12 @@ limitations under the License.
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.onap.sdc.sdc-tosca</groupId>
+ <artifactId>sdc-tosca</artifactId>
+ <version>${sdc-tosca-parser.version}</version>
+ </dependency>
+
<!--FOR the Frontend -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
@@ -281,7 +288,7 @@ limitations under the License.
<directory>../catalog-be-plugins/etsi-nfv-nsd-csar-plugin/target</directory>
<filtering>false</filtering>
<includes>
- <include>etsi-nfv-nsd-csar-plugin-${version}.jar</include>
+ <include>etsi-nfv-nsd-csar-plugin-${project.version}.jar</include>
</includes>
</resource>
</resources>
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java
index f03d561375..f5570ae4e1 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java
@@ -31,9 +31,11 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -48,12 +50,12 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
-import org.onap.sdc.tosca.parser.utils.YamlToObjectConverter;
-import org.openecomp.sdc.be.config.NonManoConfiguration;
import org.onap.sdc.tosca.services.YamlUtil;
import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.sdc.be.config.NonManoConfiguration;
import org.openecomp.sdc.tosca.csar.Manifest;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.yaml.snakeyaml.Yaml;
public class ETSIServiceImplTest {
@@ -73,9 +75,8 @@ public class ETSIServiceImplTest {
@Before
public void setUp() throws IOException {
- YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter();
- NonManoConfiguration configuration = yamlToObjectConverter.convert("src/test/resources",
- NonManoConfiguration.class, "nonManoConfig.yaml");
+ final String fullFileName = Paths.get("src", "test", "resources", "nonManoConfig.yaml").toString();
+ final NonManoConfiguration configuration = convert(fullFileName, NonManoConfiguration.class);
etsiService = Mockito.spy(new ETSIServiceImpl(configuration));
}
@@ -290,4 +291,14 @@ public class ETSIServiceImplTest {
containsString(file2Path.toString()));
}
+ private <T> T convert(final String fullFileName, final Class<T> className) throws IOException {
+ assertTrue((new File(fullFileName)).exists());
+
+ try (final InputStream in = Files.newInputStream(Paths.get(fullFileName));) {
+ return (new Yaml()).loadAs(in, className);
+ } catch (final IOException e) {
+ throw new IOException(e);
+ }
+ }
+
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/pom.xml b/openecomp-be/lib/openecomp-tosca-lib/pom.xml
index 1d23ac4e4d..48d513dba5 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-tosca-lib/pom.xml
@@ -90,11 +90,6 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.onap.sdc.sdc-tosca</groupId>
- <artifactId>sdc-tosca</artifactId>
- <version>${sdc-tosca-parser.version}</version>
- </dependency>
- <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java
deleted file mode 100644
index 59d7acccd4..0000000000
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openecomp.sdc.tosca.services;
-
-import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-public interface ToscaValidationService {
-
- public Map<String, List<ErrorMessage>> validate(FileContentHandler fileContentHandler)
- throws IOException;
-
-}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java
deleted file mode 100644
index 9f3dd0790f..0000000000
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openecomp.sdc.tosca.services.impl;
-
-import org.apache.commons.io.FilenameUtils;
-import org.onap.sdc.tosca.parser.config.ConfigurationManager;
-import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
-import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
-import org.onap.sdc.toscaparser.api.common.JToscaValidationIssue;
-import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.core.utilities.file.FileUtils;
-import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
-import org.openecomp.core.validation.ErrorMessageCode;
-import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
-import org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum;
-import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.sdc.tosca.services.ToscaValidationService;
-import org.yaml.snakeyaml.Yaml;
-
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-
-public class ToscaValidationServiceImpl implements ToscaValidationService {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(ToscaValidationServiceImpl.class);
- private static final String SDCPARSER_JTOSCA_VALIDATIONISSUE_CONFIG =
- "SDCParser_jtosca-validation-issue-configuration.yaml";
- private static final String SDCPARSER_ERROR_CONFIG = "SDCParser_error-configuration.yaml";
-
- static {
- // Override default SDC Parser configuration
- ConfigurationManager configurationManager = ConfigurationManager.getInstance();
- configurationManager.setJtoscaValidationIssueConfiguration(SDCPARSER_JTOSCA_VALIDATIONISSUE_CONFIG);
- configurationManager.setErrorConfiguration(SDCPARSER_ERROR_CONFIG);
- SdcToscaParserFactory.setConfigurationManager(configurationManager);
- }
-
- @Override
- public Map<String, List<ErrorMessage>> validate(FileContentHandler fileContentHandler)
- throws IOException {
-
- Path dir =
- Files.createTempDirectory(OnboardingTypesEnum.CSAR + "_" + System.currentTimeMillis());
- try {
- // Write temporary files and folders to File System
- Map<String, String> filePaths = FileUtils.writeFilesFromFileContentHandler
- (fileContentHandler, dir);
- // Process Tosca Yaml validation
- return processToscaYamls(filePaths);
- } finally {
- // Cleanup temporary files and folders from file system
- org.apache.commons.io.FileUtils.deleteDirectory(dir.toFile());
- }
- }
-
- private Map<String, List<ErrorMessage>> processToscaYamls(Map<String, String> filePaths) {
- Map<String, String> validFilePaths = getValidFilePaths(filePaths);
- Map<String, List<ErrorMessage>> validationIssues = new HashMap<>();
-
- // Process Yaml Files
- for (Map.Entry<String, String> fileEntry : validFilePaths.entrySet()) {
- try {
- SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();
- factory.getSdcCsarHelper(fileEntry.getValue());
- processValidationIssues(fileEntry.getKey(), factory, validationIssues);
- } catch (SdcToscaParserException stpe) {
- LOGGER.error("SDC Parser Exception from SDC Parser Library : " + stpe);
- ErrorMessage.ErrorMessageUtil.addMessage(fileEntry.getKey(), validationIssues).add(
- new ErrorMessage(ErrorLevel.ERROR, ErrorMessagesFormatBuilder
- .getErrorWithParameters(new ErrorMessageCode("JE000"), "Unexpected Error "
- + "occurred")));
- }
- catch (RuntimeException rte) {
- LOGGER.error("Runtime Exception from SDC Parser Library : " + rte);
- ErrorMessage.ErrorMessageUtil.addMessage(fileEntry.getKey(), validationIssues).add(
- new ErrorMessage(ErrorLevel.ERROR, ErrorMessagesFormatBuilder
- .getErrorWithParameters(new ErrorMessageCode("JE000"), "Unexpected Error "
- + "occurred")));
- }
- }
- return validationIssues;
- }
-
- private Map<String, String> getValidFilePaths(Map<String, String> filePaths) {
- return filePaths.entrySet()
- .stream()
- .filter(map -> FileUtils.isValidYamlExtension(FilenameUtils.getExtension(map.getKey()))
- && isToscaYaml(map.getValue()))
- .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
- }
-
- private boolean isToscaYaml(final String filePath) {
- boolean retValue = false;
-
- try (final InputStream input = new BufferedInputStream(new FileInputStream(new File(filePath)));) {
- final Yaml yaml = new Yaml();
- final LinkedHashMap<String,Object> data = (LinkedHashMap) yaml.load(input);
- if(data.get(ToscaTagNamesEnum.TOSCA_VERSION.getElementName()) != null) {
- retValue = true;
- }
- }
- catch(final Exception e){
- LOGGER.info("Ignore the exception as the input file may not be a Tosca Yaml; let the " +
- "default value return", e);
- }
- return retValue;
- }
-
- private void processValidationIssues(String fileName, SdcToscaParserFactory factory, Map<String,
- List<ErrorMessage>> validationIssues) {
-
- List<JToscaValidationIssue> criticalsReport = factory.getCriticalExceptions();
- criticalsReport.stream().forEach(err ->
- ErrorMessage.ErrorMessageUtil.addMessage(fileName, validationIssues).add(
- new ErrorMessage(ErrorLevel.ERROR, ErrorMessagesFormatBuilder
- .getErrorWithParameters(new ErrorMessageCode(err.getCode()), err.getMessage()))));
-
- List<JToscaValidationIssue> warningsReport = factory.getWarningExceptions();
- warningsReport.stream().forEach(err ->
- ErrorMessage.ErrorMessageUtil.addMessage(fileName, validationIssues).add(
- new ErrorMessage(ErrorLevel.WARNING, ErrorMessagesFormatBuilder
- .getErrorWithParameters(new ErrorMessageCode(err.getCode()), err.getMessage()))));
-
- List<JToscaValidationIssue> notAnalyzedReport = factory.getNotAnalyzadExceptions();
- notAnalyzedReport.stream().forEach(err ->
- ErrorMessage.ErrorMessageUtil.addMessage(fileName, validationIssues).add(
- new ErrorMessage(ErrorLevel.WARNING, ErrorMessagesFormatBuilder
- .getErrorWithParameters(new ErrorMessageCode(err.getCode()), err.getMessage()))));
-
- }
-
-}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java
deleted file mode 100644
index c9ceb363a4..0000000000
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openecomp.sdc.tosca.services.impl;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.Test;
-import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
-import org.openecomp.sdc.common.utils.CommonUtil;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.tosca.services.ToscaValidationService;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.assertFalse;
-
-public class ToscaValidationServiceImplTest {
-
- @Test
- public void validateCSARContentErrorHandling() throws IOException {
- String resName = "/mock/validationService/csar/resource-Spgw-csar-ZTE.csar";
- byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(resName));
- FileContentHandler contentMap =
- CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.CSAR, uploadedFileData);
- ToscaValidationService handler = new ToscaValidationServiceImpl();
- Map<String, List<ErrorMessage>> errors = handler.validate(contentMap);
- assertFalse(errors.isEmpty());
- }
-
-}
diff --git a/pom.xml b/pom.xml
index 836d11a625..436dcf0fa8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,9 +125,6 @@ Modifications copyright (c) 2018-2019 Nokia
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<maven-jar-plugin.version>2.4</maven-jar-plugin.version>
- <!-- parser-->
- <sdc-tosca-parser.version>1.6.5</sdc-tosca-parser.version>
-
<!-- sonar -->
<sonar.projectVersion>${project.version}</sonar.projectVersion>
<sonar.nodejs.executable>${project.basedir}/node/node</sonar.nodejs.executable>