aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2020-11-16 14:58:31 -0500
committerDan Timoney <dtimoney@att.com>2020-11-17 15:26:50 -0500
commitb84d399884ed03d3144903ee558933ed8fb800f7 (patch)
tree2411620bc2743b0d18738759b4b8a13bd5bed236
parent42624f16cadb0e6bf1c4f9317c4c287a274a1c89 (diff)
Add integration test for sliboot docker
Added integration test for sliboot docker. Change-Id: I582d41ac1a041466e16bd0f38ef3b9ccfef4747a Issue-ID: CCSDK-2986 Signed-off-by: Dan Timoney <dtimoney@att.com>
-rw-r--r--ms/sliboot/pom.xml376
-rwxr-xr-xms/sliboot/src/main/dc/docker-compose.yaml1
-rw-r--r--ms/sliboot/src/main/resources/dblib.properties38
-rw-r--r--ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/SlibootIT.java31
-rw-r--r--ms/sliboot/src/test/resources/dblib.properties38
5 files changed, 351 insertions, 133 deletions
diff --git a/ms/sliboot/pom.xml b/ms/sliboot/pom.xml
index a35a28b1..2057074f 100644
--- a/ms/sliboot/pom.xml
+++ b/ms/sliboot/pom.xml
@@ -29,6 +29,7 @@
<ccsdk.sliboot.jar>${project.artifactId}-${project.version}-exec.jar</ccsdk.sliboot.jar>
<docker.push.phase>deploy</docker.push.phase>
<docker.verbose>true</docker.verbose>
+ <docker.autoCreateCustomNetworks>true</docker.autoCreateCustomNetworks>
</properties>
<dependencies>
@@ -192,6 +193,41 @@
</artifactItems>
</configuration>
</execution>
+ <execution>
+ <id>copy-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <excludeTransitive>true</excludeTransitive>
+ <outputDirectory>${project.build.directory}/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>false</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack dgs</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk</outputDirectory>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>platform-logic-installer</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>
@@ -238,6 +274,126 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <forkMode>always</forkMode>
+ <environmentVariables>
+ <SDNC_CONFIG_DIR>${basedir}/src/test/resources</SDNC_CONFIG_DIR>
+ <SVCLOGIC_PROPERTIES>${basedir}/src/test/resources/svclogic.properties</SVCLOGIC_PROPERTIES>
+ </environmentVariables>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <skipITs>true</skipITs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>copy-dockerfile</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>initialize</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/docker</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-config</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/config</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*.properties</include>
+ <include>*.props</include>
+ <include>*.sql</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*.keyfile</include>
+ <include>*.jks</include>
+ <include>*.p12</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-script</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/bin</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*.sh</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-jar</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>package</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/target</directory>
+ <includes>
+ <include>${ccsdk.sliboot.jar}</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
@@ -249,140 +405,22 @@
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.10</version>
-
+ <artifactId>maven-failsafe-plugin</artifactId>
<executions>
- <execution>
- <id>copy-dependencies</id>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <phase>prepare-package</phase>
- <configuration>
- <excludeTransitive>true</excludeTransitive>
- <outputDirectory>${project.build.directory}/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- <overWriteIfNewer>true</overWriteIfNewer>
- <useRepositoryLayout>false</useRepositoryLayout>
- <addParentPoms>false</addParentPoms>
- <copyPom>false</copyPom>
- </configuration>
- </execution>
- <execution>
- <id>unpack dgs</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk</outputDirectory>
- <artifactItems>
- <artifactItem>
- <groupId>org.onap.ccsdk.distribution</groupId>
- <artifactId>platform-logic-installer</artifactId>
- <version>${project.version}</version>
- <type>zip</type>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>copy-dockerfile</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>initialize</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/docker</directory>
- <includes>
- <include>Dockerfile</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-config</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/config</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>*.properties</include>
- <include>*.props</include>
- <include>*.sql</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>*.keyfile</include>
- <include>*.jks</include>
- <include>*.p12</include>
- </includes>
- <filtering>false</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-script</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/bin</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>*.sh</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-jar</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>package</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
- <resources>
- <resource>
- <directory>${basedir}/target</directory>
- <includes>
- <include>${ccsdk.sliboot.jar}</include>
- </includes>
- <filtering>false</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
</executions>
- </plugin>
+ <configuration>
+ <skipITs>false</skipITs>
+ <environmentVariables>
+ <SLIBOOT_PORT>${sliboot.port}</SLIBOOT_PORT>
+ </environmentVariables>
+ </configuration>
+ </plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
@@ -413,7 +451,78 @@
<goal>build</goal>
</goals>
</execution>
-
+
+ <execution>
+ <id>start-it-instance</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ <configuration>
+ <images>
+ <image>
+ <name>mariadb:10.5</name>
+ <alias>slibootdb</alias>
+ <run>
+ <env>
+ <MYSQL_ROOT_PASSWORD>itsASecret</MYSQL_ROOT_PASSWORD>
+ <MYSQL_USER>sli</MYSQL_USER>
+ <MYSQL_PASSWORD>abc123</MYSQL_PASSWORD>
+ <MYSQL_DATABASE>sdnctl</MYSQL_DATABASE>
+ </env>
+ <network>
+ <mode>custom</mode>
+ <name>onap</name>
+ <alias>dbhost</alias>
+ </network>
+ <ports>
+ <port>slibootdb.port:3306</port>
+ </ports>
+ <log>
+ <enabled>true</enabled>
+ </log>
+ </run>
+ </image>
+ <image>
+ <name>${image.name}:${project.docker.latesttagtimestamp.version}</name>
+ <alias>sliboot-container</alias>
+ <run>
+ <env>
+ <MYSQL_USER>sli</MYSQL_USER>
+ <MYSQL_PASSWORD>abc123</MYSQL_PASSWORD>
+ <MYSQL_DATABASE>sdnctl</MYSQL_DATABASE>
+ <SDNC_CONFIG_DIR>/opt/onap/ccsdk/config</SDNC_CONFIG_DIR>
+ </env>
+ <dependsOn>
+ <container>slibootdb</container>
+ </dependsOn>
+ <network>
+ <mode>custom</mode>
+ <name>onap</name>
+ <alias>sliboot</alias>
+ </network>
+ <ports>
+ <port>sliboot.port:8080</port>
+ </ports>
+ <wait>
+ <log>Started SlibootApp</log>
+ <time>120000</time>
+ </wait>
+ <log>
+ <enabled>true</enabled>
+ </log>
+ </run>
+ </image>
+ </images>
+ </configuration>
+ </execution>
+ <execution>
+ <id>stop-it-instance</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
<execution>
<id>push-images</id>
<phase>${docker.push.phase}</phase>
@@ -424,6 +533,7 @@
</execution>
</executions>
</plugin>
+
</plugins>
</build>
</profile>
diff --git a/ms/sliboot/src/main/dc/docker-compose.yaml b/ms/sliboot/src/main/dc/docker-compose.yaml
index b1f25293..31d06802 100755
--- a/ms/sliboot/src/main/dc/docker-compose.yaml
+++ b/ms/sliboot/src/main/dc/docker-compose.yaml
@@ -34,6 +34,7 @@ services:
- MYSQL_DB_USER=sli
- MYSQL_DB_PASSWD=abc123
- MYSQL_DB_DATABASE=sdnctl
+ - SDNC_CONFIG_DIR=/opt/onap/ccsdk/config
logging:
driver: "json-file"
options:
diff --git a/ms/sliboot/src/main/resources/dblib.properties b/ms/sliboot/src/main/resources/dblib.properties
new file mode 100644
index 00000000..b9d98068
--- /dev/null
+++ b/ms/sliboot/src/main/resources/dblib.properties
@@ -0,0 +1,38 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. 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=========================================================
+###
+
+# dblib.properrties
+org.onap.ccsdk.sli.dbtype=jdbc
+
+org.onap.ccsdk.sli.jdbc.hosts=dbhost
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://dbhost:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sli
+org.onap.ccsdk.sli.jdbc.password=abc123
+org.onap.ccsdk.sli.jdbc.connection.name=dbhost
+org.onap.ccsdk.sli.jdbc.connection.timeout=50
+org.onap.ccsdk.sli.jdbc.request.timeout=100
+org.onap.ccsdk.sli.jdbc.limit.init=10
+org.onap.ccsdk.sli.jdbc.limit.min=10
+org.onap.ccsdk.sli.jdbc.limit.max=20
+org.onap.dblib.connection.recovery=false
+
diff --git a/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/SlibootIT.java b/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/SlibootIT.java
new file mode 100644
index 00000000..9fce09dc
--- /dev/null
+++ b/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/SlibootIT.java
@@ -0,0 +1,31 @@
+package org.onap.ccsdk.apps.ms.sliboot;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.junit.Test;
+
+public class SlibootIT {
+ @Test
+ public void healthcheckTest() throws ClientProtocolException, IOException {
+ String slibootPort = System.getenv("SLIBOOT_PORT");
+ if ((slibootPort == null) || (slibootPort.length() == 0)) {
+ slibootPort = "8080";
+ }
+
+ String testUrl = "http://localhost:" + slibootPort + "/restconf/operations/SLI-API:healthcheck/";
+
+ CloseableHttpClient client = HttpClients.createDefault();
+ HttpPost postCmd = new HttpPost(testUrl);
+ postCmd.addHeader("Content-Type", "application/json");
+
+ CloseableHttpResponse resp = client.execute(postCmd);
+ assertEquals(200, resp.getStatusLine().getStatusCode());
+ }
+}
diff --git a/ms/sliboot/src/test/resources/dblib.properties b/ms/sliboot/src/test/resources/dblib.properties
new file mode 100644
index 00000000..b5f705a5
--- /dev/null
+++ b/ms/sliboot/src/test/resources/dblib.properties
@@ -0,0 +1,38 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. 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=========================================================
+###
+
+# dblib.properrties
+org.onap.ccsdk.sli.dbtype=jdbc
+
+org.onap.ccsdk.sli.jdbc.hosts=dbhost
+org.onap.ccsdk.sli.jdbc.url=jdbc:derby:memory:sdnctl;create=true
+org.onap.ccsdk.sli.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=test
+org.onap.ccsdk.sli.jdbc.password=test
+org.onap.ccsdk.sli.jdbc.connection.name=dbhost
+org.onap.ccsdk.sli.jdbc.connection.timeout=50
+org.onap.ccsdk.sli.jdbc.request.timeout=100
+org.onap.ccsdk.sli.jdbc.limit.init=10
+org.onap.ccsdk.sli.jdbc.limit.min=10
+org.onap.ccsdk.sli.jdbc.limit.max=20
+org.onap.dblib.connection.recovery=false
+