summaryrefslogtreecommitdiffstats
path: root/mod/bpgenerator/onap-executable/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bpgenerator/onap-executable/src/test')
-rw-r--r--mod/bpgenerator/onap-executable/src/test/java/org/onap/blueprintgenerator/BlueprintJarComparatorTest.java129
-rw-r--r--mod/bpgenerator/onap-executable/src/test/resources/componentspecs/testImports.yaml4
-rw-r--r--mod/bpgenerator/onap-executable/src/test/resources/componentspecs/ves.json337
3 files changed, 470 insertions, 0 deletions
diff --git a/mod/bpgenerator/onap-executable/src/test/java/org/onap/blueprintgenerator/BlueprintJarComparatorTest.java b/mod/bpgenerator/onap-executable/src/test/java/org/onap/blueprintgenerator/BlueprintJarComparatorTest.java
new file mode 100644
index 0000000..973572d
--- /dev/null
+++ b/mod/bpgenerator/onap-executable/src/test/java/org/onap/blueprintgenerator/BlueprintJarComparatorTest.java
@@ -0,0 +1,129 @@
+/*
+ *
+ * * ============LICENSE_START=======================================================
+ * * org.onap.dcae
+ * * ================================================================================
+ * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * * Copyright (c) 2020 Nokia. All rights reserved.
+ * * ================================================================================
+ * * 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.
+ * * ============LICENSE_END=========================================================
+ *
+ *
+ */
+
+package org.onap.blueprintgenerator;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Paths;
+import org.apache.commons.io.FileUtils;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.FixMethodOrder;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runners.MethodSorters;
+
+/**
+ * @author : Ravi Mantena
+ * @date 10/16/2020 Application: ONAP - Blueprint Generator ONAP Bueprint Jar Comparision with Previos version to make
+ * sure Bps are not broken with new changes
+ */
+@Ignore
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class BlueprintJarComparatorTest {
+
+ private static final String ves = "ves.json";
+ private static final String testImports = "testImports.yaml";
+ private static final String previousJarVersion = "1.7.0-SNAPSHOT";
+ private static final String latestJarVersion = "1.7.1-SNAPSHOT";
+ private static final String previousVersion = "0_1";
+ private static final String latestVersion = "1_0";
+ private static final String latestJarPath = buildPathAsString("target");
+ private static final String previousJarPath = buildPathAsString("src", "test", "resources", "archives");
+ private static final String inputPath = buildPathAsString("src", "test", "resources", "componentspecs");
+ private static final String outputPath = buildPathAsString("src", "test", "resources", "outputfiles");
+ private static final String previousJar = "blueprint-generator-onap-executable-" + previousJarVersion + ".jar";
+ private static final String latestJar = "blueprint-generator-onap-executable-" + latestJarVersion + ".jar";
+
+ @BeforeClass
+ @AfterClass
+ public static void filesCleanup() throws IOException {
+ FileUtils.deleteDirectory(new File(outputPath));
+ }
+
+ private static String buildPathAsString(String first, String... more) {
+ return Paths.get(first, more).toAbsolutePath().toString() + File.separator;
+ }
+
+ @Test
+ public void jarTestVeswithDmaapK8s() throws IOException, InterruptedException {
+ String inputFileName = ves;
+ String outputFileName = "dcae-ves-collector-dmaap-";
+ String inputImportsFileName = testImports;
+
+ Process process = runBpgenWithDmaap(inputFileName, outputFileName, inputImportsFileName, previousJarPath,
+ previousJar, previousVersion);
+
+ Process process1 = runBpgenWithDmaap(inputFileName, outputFileName, inputImportsFileName, latestJarPath,
+ latestJar, latestVersion);
+
+ process.waitFor();
+ process1.waitFor();
+
+ Assert.assertEquals(
+ "The BluePrint files (" + outputFileName + ") for " + inputFileName + " with -m option don't match!",
+ FileUtils.readFileToString(new File(outputPath + outputFileName + previousVersion + ".yaml"), "utf-8"),
+ FileUtils.readFileToString(new File(outputPath + outputFileName + latestVersion + ".yaml"), "utf-8"));
+ }
+
+ @Test
+ public void jarTestVeswithoutDmaapK8s() throws IOException, InterruptedException {
+ String inputFileName = ves;
+ String outputFileName = "dcae-ves-collector-";
+ String inputImportsFileName = testImports;
+
+ Process process = runBpgenWithoutDmaap(inputFileName, outputFileName, inputImportsFileName, previousJarPath,
+ previousJar, previousVersion);
+
+ Process process1 = runBpgenWithoutDmaap(inputFileName, outputFileName, inputImportsFileName, latestJarPath,
+ latestJar, latestVersion);
+
+ process.waitFor();
+ process1.waitFor();
+
+ Assert.assertEquals(
+ "The BluePrint files (" + outputFileName + ") for " + inputFileName + " with -m option dont match!",
+ FileUtils.readFileToString(new File(outputPath + outputFileName + previousVersion + ".yaml"), "utf-8"),
+ FileUtils.readFileToString(new File(outputPath + outputFileName + latestVersion + ".yaml"), "utf-8"));
+ }
+
+ private Process runBpgenWithoutDmaap(String inputFileName, String outputFileName, String inputImportsFileName,
+ String jarPath, String jarName, String outputFileVersion) throws IOException {
+ String jarCommand = "java -jar " + jarPath + jarName + " app ONAP -i " + inputPath + inputFileName + " -p " +
+ outputPath + " -n " + outputFileName + outputFileVersion + " -t " + inputPath + inputImportsFileName;
+ return Runtime.getRuntime().exec(jarCommand);
+ }
+
+ private Process runBpgenWithDmaap(String inputFileName, String outputFileName, String inputImportsFileName,
+ String jarPath, String jarName, String outputFileVersion) throws IOException {
+ String jarCommand = "java -jar " + jarPath + jarName + " app ONAP -i " + inputPath + inputFileName + " -p " +
+ outputPath + " -n " + outputFileName + outputFileVersion + " -t " + inputPath + inputImportsFileName
+ + " -d";
+ return Runtime.getRuntime().exec(jarCommand);
+ }
+
+}
+
diff --git a/mod/bpgenerator/onap-executable/src/test/resources/componentspecs/testImports.yaml b/mod/bpgenerator/onap-executable/src/test/resources/componentspecs/testImports.yaml
new file mode 100644
index 0000000..42a482d
--- /dev/null
+++ b/mod/bpgenerator/onap-executable/src/test/resources/componentspecs/testImports.yaml
@@ -0,0 +1,4 @@
+imports:
+ - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml
+ - plugin:k8splugin?version=3.0.0
+ - plugin:dcaepolicyplugin?version=2.4.0 \ No newline at end of file
diff --git a/mod/bpgenerator/onap-executable/src/test/resources/componentspecs/ves.json b/mod/bpgenerator/onap-executable/src/test/resources/componentspecs/ves.json
new file mode 100644
index 0000000..6655a2c
--- /dev/null
+++ b/mod/bpgenerator/onap-executable/src/test/resources/componentspecs/ves.json
@@ -0,0 +1,337 @@
+{
+ "self": {
+ "version": "1.5.0",
+ "name": "dcae-ves-collector",
+ "description": "Collector for receiving VES events through restful interface",
+ "component_type": "docker"
+ },
+ "streams": {
+ "subscribes": [
+ {
+ "format": "dataformat_Hello_World_PM",
+ "version": "1.0.0",
+ "route": "/TEST_HELLO_WORLD_SUB_MR",
+ "type": "message_router",
+ "config_key": "TEST-SUB-MR"
+ },
+ {
+ "format": "dataformat_Hello_World_PM DR",
+ "version": "1.0.0",
+ "route": "/TEST_HELLO_WORLD_SUB_DR",
+ "type": "data_router",
+ "config_key": "TEST-SUB-DR"
+ }
+ ],
+ "publishes": [
+ {
+ "format": "VES_specification",
+ "version": "5.28.4",
+ "type": "message router",
+ "config_key": "ves-fault"
+ },
+ {
+ "format": "VES_specification",
+ "version": "5.28.4",
+ "type": "message router",
+ "config_key": "ves-measurement"
+ },
+ {
+ "format": "VES_specification",
+ "version": "5.28.4",
+ "type": "message router",
+ "config_key": "ves-other"
+ },
+ {
+ "format": "VES_specification",
+ "version": "5.28.4",
+ "type": "message router",
+ "config_key": "ves-heartbeat-secondary"
+ },
+ {
+ "format": "VES_specification",
+ "version": "7.30.0",
+ "type": "message router",
+ "config_key": "ves-pnfRegistration"
+ },
+ {
+ "format": "VES_specification",
+ "version": "7.30.0",
+ "type": "message router",
+ "config_key": "ves-notification"
+ }
+ ]
+ },
+ "services": {
+ "calls": [],
+ "provides": [
+ {
+ "route": "/eventListener/v1",
+ "verb": "POST",
+ "request": {
+ "format": "VES_specification",
+ "version": "4.27.2"
+ },
+ "response": {
+ "format": "ves.coll.response",
+ "version": "1.0.0"
+ }
+ },
+ {
+ "route": "/eventListener/v2",
+ "verb": "POST",
+ "request": {
+ "format": "VES_specification",
+ "version": "4.27.2"
+ },
+ "response": {
+ "format": "ves.coll.response",
+ "version": "1.0.0"
+ }
+ },
+ {
+ "route": "/eventListener/v3",
+ "verb": "POST",
+ "request": {
+ "format": "VES_specification",
+ "version": "4.27.2"
+ },
+ "response": {
+ "format": "ves.coll.response",
+ "version": "1.0.0"
+ }
+ },
+ {
+ "route": "/eventListener/v4",
+ "verb": "POST",
+ "request": {
+ "format": "VES_specification",
+ "version": "4.27.2"
+ },
+ "response": {
+ "format": "ves.coll.response",
+ "version": "1.0.0"
+ }
+ },
+ {
+ "route": "/eventListener/v5",
+ "verb": "POST",
+ "request": {
+ "format": "VES_specification",
+ "version": "5.28.4"
+ },
+ "response": {
+ "format": "ves.coll.response",
+ "version": "1.0.0"
+ }
+ },
+ {
+ "route": "/eventListener/v7",
+ "verb": "POST",
+ "request": {
+ "format": "VES_specification",
+ "version": "7.30.0"
+ },
+ "response": {
+ "format": "ves.coll.response",
+ "version": "1.0.0"
+ }
+ }
+ ]
+ },
+ "parameters": [
+ {
+ "name": "collector.service.port",
+ "value": 8080,
+ "description": "standard http port collector will open for listening;",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "collector.service.secure.port",
+ "value": 8443,
+ "description": "secure http port collector will open for listening ",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": true
+ },
+ {
+ "name": "collector.keystore.file.location",
+ "value": "/opt/app/dcae-certificate/keystore.jks",
+ "description": "fs location of keystore file in vm",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "collector.keystore.passwordfile",
+ "value": "/opt/app/dcae-certificate/.password",
+ "description": "location of keystore password file in vm",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "collector.truststore.file.location",
+ "value": "/opt/app/dcae-certificate/truststore.jks",
+ "description": "fs location of truststore file in vm",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "collector.truststore.passwordfile",
+ "value": "/opt/app/dcae-certificate/.trustpassword",
+ "description": "location of truststore password file in vm",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "collector.dmaap.streamid",
+ "value": "fault=ves-fault,ves-fault-secondary|syslog=ves-syslog,ves-syslog-secondary|heartbeat=ves-heartbeat,ves-heartbeat-secondary|measurementsForVfScaling=ves-measurement,ves-measurement-secondary|mobileFlow=ves-mobileflow,ves-mobileflow-secondary|other=ves-other,ves-other-secondary|stateChange=ves-statechange,ves-statechange-secondary|thresholdCrossingAlert=ves-thresholdCrossingAlert,ves-thresholdCrossingAlert-secondary|voiceQuality=ves-voicequality,ves-voicequality-secondary|sipSignaling=ves-sipsignaling,ves-sipsignaling-secondary|notification=ves-notification,ves-notification-secondary|pnfRegistration=ves-pnfRegistration,ves-pnfRegistration-secondary",
+ "description": "domain-to-streamid mapping used by VESCollector to distributes events based on domain. Both primary and secondary config_key are included for resilency (multiple streamid can be included commma separated). The streamids MUST match to topic config_keys. For single site without resiliency deployment - configkeys with -secondary suffix can be removed",
+ "sourced_at_deployment": true,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "auth.method",
+ "value": "noAuth",
+ "description": "Property to manage application mode, possible configurations: noAuth - default option - no security (http) , certOnly - auth by certificate (https), basicAuth - auth by basic auth username and password (https),certBasicAuth - auth by certificate and basic auth username / password (https),",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "header.authlist",
+ "value": "sample1,$2a$10$pgjaxDzSuc6XVFEeqvxQ5u90DKJnM/u7TJTcinAlFJVaavXMWf/Zi|userid1,$2a$10$61gNubgJJl9lh3nvQvY9X.x4e5ETWJJ7ao7ZhJEvmfJigov26Z6uq|userid2,$2a$10$G52y/3uhuhWAMy.bx9Se8uzWinmbJa.dlm1LW6bYPdPkkywLDPLiy",
+ "description": "List of id and base 64 encoded password.For each onboarding VNF - unique userid and password should be assigned and communicated to VNF owner. Password value should be base64 encoded in config here",
+ "policy_editable": false,
+ "sourced_at_deployment": true,
+ "designer_editable": true
+ },
+ {
+ "name": "collector.schema.checkflag",
+ "value": 1,
+ "description": "Schema check validation flag. When enabled, collector will validate input VES events against VES Schema defined on collector.schema.file ",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "collector.schema.file",
+ "value": "{\"v1\":\"./etc/CommonEventFormat_27.2.json\",\"v2\":\"./etc/CommonEventFormat_27.2.json\",\"v3\":\"./etc/CommonEventFormat_27.2.json\",\"v4\":\"./etc/CommonEventFormat_27.2.json\",\"v5\":\"./etc/CommonEventFormat_28.4.1.json\",\"v7\":\"./etc/CommonEventFormat_30.json\"}",
+ "description": "VES schema file name per version used for validation",
+ "designer_editable": true,
+ "sourced_at_deployment": false,
+ "policy_editable": false
+ },
+ {
+ "name": "event.transform.flag",
+ "value": 1,
+ "description": "flag to enable tranformation rules defined under eventTransform.json; this is applicable when event tranformation rules preset should be activated for transforming <VES5.4 events to 5.4",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ },
+ {
+ "name": "testParam1",
+ "value": "test-param-1",
+ "description": "testParam1",
+ "sourced_at_deployment": true,
+ "policy_editable": true,
+ "policy_group": "Test_Parameters",
+ "required": true,
+ "designer_editable": true,
+ "policy_schema": [
+ {
+ "name": "PolicySchemaTest",
+ "description": "List of objects for vnf type monitorng",
+ "type": "String",
+ "entry_schema": [
+ {
+ "name": "TestEntrySchema",
+ "description": "entry",
+ "type": "string",
+ "value": "None"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "tomcat.maxthreads",
+ "value": "200",
+ "description": "Tomcat control for concurrent request",
+ "sourced_at_deployment": false,
+ "policy_editable": false,
+ "designer_editable": false
+ }
+ ],
+ "auxilary": {
+ "healthcheck": {
+ "type": "http",
+ "interval": "15s",
+ "timeout": "1s",
+ "endpoint": "/healthcheck"
+ },
+ "livehealthcheck": {
+ "type": "http",
+ "interval": "15s",
+ "timeout": "1s",
+ "endpoint": "/livehealthcheck"
+ },
+ "databases": {
+ "dti": "postgres"
+ },
+ "reconfigs": {
+ "app_reconfig": "abc"
+ },
+ "policy": {
+ "trigger_type": "docker",
+ "script_path": "/opt/app/manager/bin/reconfigure.sh"
+ },
+ "volumes": [
+ {
+ "container": {
+ "bind": "/opt/app/dcae-certificate"
+ },
+ "host": {
+ "path": "/opt/app/dcae-certificate"
+ }
+ },
+ {
+ "container": {
+ "bind": "/opt/app/VESCollector/logs"
+ },
+ "host": {
+ "path": "/opt/logs/DCAE/VESCollector/logs"
+ }
+ },
+ {
+ "container": {
+ "bind": "/opt/app/VESCollector/etc"
+ },
+ "host": {
+ "path": "/opt/logs/DCAE/VESCollector/etc"
+ }
+ }
+ ],
+ "ports": [
+ "8080:8080",
+ "8443:8443"
+ ],
+ "tls_info": {
+ "cert_directory": "/opt/app/dcae-certificate/",
+ "use_tls": true,
+ "use_external_tls": true
+ }
+ },
+ "artifacts": [
+ {
+ "type": "docker image",
+ "uri": "nexus.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest"
+ }
+ ]
+} \ No newline at end of file