From 7c03e5855fb667a01d9375b445c4a04919bd1dbb Mon Sep 17 00:00:00 2001 From: Dmitry Puzikov Date: Tue, 9 Jul 2019 16:06:02 +0200 Subject: [PATCH] Fix dockerfile to reflect common image naming FROM section changed to reflerct new aai-common image naming scheme. Added explicit aai-common version parameter. Change-Id: Ifc1187384ce757f1a2bf852a670dd9d706a4c782 Issue-ID: INT-1141 Signed-off-by: Dmitry Puzikov --- pom.xml | 270 +++++++++++++-------- src/main/assembly/descriptor.xml | 36 +++ src/main/docker/Dockerfile | 42 +--- .../response/GraphEventResponseHandlerTest.java | 39 +-- 4 files changed, 237 insertions(+), 150 deletions(-) create mode 100644 src/main/assembly/descriptor.xml diff --git a/pom.xml b/pom.xml index e60005b..698de2c 100644 --- a/pom.xml +++ b/pom.xml @@ -19,14 +19,14 @@ limitations under the License. ============LICENSE_END========================================================= --> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.onap.oparent oparent 2.0.0 - + org.onap.aai.gizmo @@ -45,6 +45,14 @@ limitations under the License. coverage caused by new changes. Note that this figure cannot be lower than the ONAP requirement of 0.55 --> 0.60 ${project.build.directory}/code-coverage + + 0.28.0 + 1.0.0 + ${project.build.directory}/${project.artifactId}-build/ + + onap + alpine + 1.6.0 @@ -116,21 +124,21 @@ limitations under the License. - - io.swagger - swagger-jersey2-jaxrs - 1.5.8 - - - io.springfox - springfox-swagger2 - 2.9.2 - - - io.springfox - springfox-swagger-ui - 2.9.2 - + + io.swagger + swagger-jersey2-jaxrs + 1.5.8 + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.springfox + springfox-swagger-ui + 2.9.2 + @@ -145,8 +153,8 @@ limitations under the License. ${version.org.onap.aai.aai-schema-ingest} - org.powermock - * + org.powermock + * @@ -165,7 +173,7 @@ limitations under the License. org.onap.aai.event-client event-client-dmaap - ${event.client.version} + ${event.client.version} org.slf4j @@ -176,7 +184,7 @@ limitations under the License. org.onap.aai.event-client event-client-kafka - ${event.client.version} + ${event.client.version} org.slf4j @@ -186,9 +194,9 @@ limitations under the License. - org.onap.aai.event-client - event-client-rabbitmq - ${event.client.version} + org.onap.aai.event-client + event-client-rabbitmq + ${event.client.version} org.slf4j @@ -363,6 +371,103 @@ limitations under the License. + + + + docker + + + + org.codehaus.groovy.maven + gmaven-plugin + 1.0 + + + prepare-package + + execute + + + + def userAaiBaseImage = session.userProperties['aai.base.image'] + def userAaiCommonVersion = session.userProperties['aai.base.image.version'] + if (userAaiCommonVersion != null) { + project.properties['aai.base.image.version'] = userAaiCommonVersion + } + if (userAaiBaseImage != null) { + project.properties['aai.base.image'] = userAaiBaseImage + } + log.info 'Base image flavour: ' + project.properties['aai.base.image'] + log.info 'Base image version: ' + project.properties['aai.base.image.version'] + + + + + + + io.fabric8 + docker-maven-plugin + ${docker.fabric.version} + + true + 1.23 + + + ${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l + + + @ + + latest + + try + ${project.basedir}/src/main/docker + + + + + ${aai.build.directory} + /${project.artifactId} + + + + + + + + + + + clean-images + pre-clean + + remove + + + true + + + + generate-images + package + + build + + + + push-images + deploy + + push + + + + + + + + + ${project.artifactId} @@ -374,87 +479,31 @@ limitations under the License. mvn formatter:format spotless:apply process-sources --> - net.revelc.code.formatter - formatter-maven-plugin - 2.8.1 - + net.revelc.code.formatter + formatter-maven-plugin + 2.8.1 + ${project.basedir}/onap-java-formatter.xml - - - - - com.diffplug.spotless - spotless-maven-plugin - 1.18.0 - - - - com,java,javax,org - - - - - - - org.apache.maven.plugins - maven-resources-plugin - 2.7 - - - copy-docker-file - package - - copy-resources - - - target - true - - - ${basedir}/src/main/docker - true - - **/* - - - - ${basedir} - true - - bundleconfig-local/** - - - - ${basedir}/src/main/bin/ - - - - - + + - - com.spotify - docker-maven-plugin - 0.4.11 + com.diffplug.spotless + spotless-maven-plugin + 1.18.0 - true - docker-hub - ${docker.push.registry}/onap/${project.artifactId} - ${docker.location} - - latest - ${project.docker.latesttag.version} - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp} - - true + + + com,java,javax,org + + + - @@ -518,6 +567,23 @@ limitations under the License. + + maven-assembly-plugin + + + src/main/assembly/descriptor.xml + + + + + make-assembly + package + + single + + + + org.apache.maven.plugins maven-dependency-plugin @@ -536,7 +602,7 @@ limitations under the License. ${version.org.onap.aai.aai-schema} jar onap/**/ - ${project.build.directory}/bundleconfig-local/etc + ${aai.build.directory}/bundleconfig/etc @@ -571,7 +637,7 @@ limitations under the License. - + org.codehaus.mojo build-helper-maven-plugin 3.0.0 @@ -586,7 +652,7 @@ limitations under the License. - + ecomp-javadoc diff --git a/src/main/assembly/descriptor.xml b/src/main/assembly/descriptor.xml new file mode 100644 index 0000000..2a1a2e7 --- /dev/null +++ b/src/main/assembly/descriptor.xml @@ -0,0 +1,36 @@ + + build + false + + dir + + + + ${project.basedir}/bundleconfig-local + /bundleconfig + + **/* + + + + ${project.basedir}/src/main/bin + /bin + + **/* + + + + ${project.build.directory} + / + + *.jar + + + Dockerfile + *.sh + + + + diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile index 343ed4d..35297e7 100644 --- a/src/main/docker/Dockerfile +++ b/src/main/docker/Dockerfile @@ -1,45 +1,25 @@ -FROM ubuntu:14.04 +FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@ ARG MICRO_HOME=/opt/app/crud-api ARG BIN_HOME=$MICRO_HOME/bin +ARG USERS_HOME=/opt/aaihome -RUN apt-get update - -# Install and setup java8 -RUN apt-get update && apt-get install -y software-properties-common -## sudo -E is required to preserve the environment. If you remove that line, it will most like freeze at this step -RUN sudo -E add-apt-repository ppa:openjdk-r/ppa && apt-get update && apt-get install -y openjdk-8-jdk -## Setup JAVA_HOME, this is useful for docker commandline -ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 -RUN export JAVA_HOME - -# Build up the deployment folder structure -RUN mkdir -p $MICRO_HOME -RUN mkdir -p $MICRO_HOME/bundleconfig/etc -COPY gizmo.jar $MICRO_HOME/ -RUN mkdir -p $BIN_HOME -COPY *.sh $BIN_HOME -COPY bundleconfig-local $MICRO_HOME/bundleconfig -COPY bundleconfig-local/etc/logback.xml $MICRO_HOME/bundleconfig/etc -RUN chmod 755 $BIN_HOME/* - -# Changes related to:AAI-2177 -# Change aai gizmo container processes to run as non-root on the host +# AAI-2177: Change aai gizmo container processes to run as non-root on the host #Note:The group id and user id used below (492382 & 341790 respectively) are chosen arbitarily based on assumption that # these are not used elsewhere. Please see https://jira.onap.org/browse/AAI-2172 for more background on this. -RUN mkdir /opt/aaihome && \ - groupadd -g 492382 aaiadmin && \ - useradd -r -u 341790 -g 492382 -ms /bin/sh -d /opt/aaihome/aaiadmin aaiadmin && \ - chown -R aaiadmin:aaiadmin $MICRO_HOME &&\ - mkdir /logs && \ - chown -R aaiadmin:aaiadmin /logs +RUN mkdir -p $MICRO_HOME $USERS_HOME /logs \ + && groupadd -g 492382 aaiadmin \ + && useradd -r -u 341790 -g 492382 -ms /bin/sh -d $USERS_HOME/aaiadmin aaiadmin +WORKDIR $MICRO_HOME +COPY /maven/gizmo/ . +RUN chmod 755 $BIN_HOME/* \ + && ln -snf /logs $MICRO_HOME/logs \ + && chown -R aaiadmin:aaiadmin $MICRO_HOME /logs USER aaiadmin -RUN ln -s /logs $MICRO_HOME/logs - EXPOSE 9520 9520 CMD ["/opt/app/crud-api/bin/start.sh"] diff --git a/src/test/java/org/onap/crud/event/response/GraphEventResponseHandlerTest.java b/src/test/java/org/onap/crud/event/response/GraphEventResponseHandlerTest.java index b28ba3a..5cb8dc6 100644 --- a/src/test/java/org/onap/crud/event/response/GraphEventResponseHandlerTest.java +++ b/src/test/java/org/onap/crud/event/response/GraphEventResponseHandlerTest.java @@ -20,11 +20,15 @@ */ package org.onap.crud.event.response; -import static org.assertj.core.api.Assertions.assertThat; -import org.junit.BeforeClass; +import com.google.gson.Gson; +import com.google.gson.JsonParser; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.crud.OXMModelLoaderSetup; import org.onap.crud.event.GraphEvent; import org.onap.crud.event.GraphEvent.GraphEventOperation; import org.onap.crud.event.envelope.GraphEventEnvelope; @@ -32,29 +36,30 @@ import org.onap.crud.exception.CrudException; import org.onap.crud.util.TestUtil; import org.onap.schema.EdgeRulesLoader; import org.onap.schema.OxmModelLoader; -import com.google.gson.Gson; -import com.google.gson.JsonParser; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; -import org.onap.crud.OXMModelLoaderSetup; +import static org.assertj.core.api.Assertions.assertThat; @RunWith(MockitoJUnitRunner.Silent.class) public class GraphEventResponseHandlerTest extends OXMModelLoaderSetup { + private static boolean setUpIsNotDone = true; + + @Before + public void setUpOnce() throws CrudException { + if (setUpIsNotDone) { + System.setProperty("CONFIG_HOME", "src/test/resources"); + System.setProperty("AJSC_HOME", "."); + System.setProperty("BUNDLECONFIG_DIR", "src/test/resources/bundleconfig-local"); + + OxmModelLoader.loadModels(); + EdgeRulesLoader.loadModels(); + + setUpIsNotDone = false; + } + } @Rule public ExpectedException expectedException = ExpectedException.none(); - @BeforeClass - public static void setUpBeforeClass() throws Exception { - System.setProperty("CONFIG_HOME", "src/test/resources"); - System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "src/test/resources/bundleconfig-local"); - - OxmModelLoader.loadModels(); - EdgeRulesLoader.loadModels(); - } - @Test public void testPolicyViolationsNotDetected() throws Exception { String expectedEnvelope = TestUtil.getFileAsString("event/event-envelope-sentinel-no-violations.json"); -- 2.16.6