From 19cade1c9284316bf15456002db354c894844c96 Mon Sep 17 00:00:00 2001 From: Rashmi Pujar Date: Mon, 3 Jun 2019 17:14:45 -0400 Subject: Use io.fabric8:docker-maven-plugin to build and push docker images Addressed POLICY-1808 for drools-applications to fix the tag to be major.minor-SNAPSHOT-latest Issue-ID: POLICY-969 Signed-off-by: Rashmi Pujar Change-Id: I6c9ddec9a2e7a73ba68343eb98e0145ce811868e --- controlloop/packages/apps-controlloop/pom.xml | 32 +-- .../packages/apps-controlloop/src/assembly/zip.xml | 35 +-- controlloop/packages/docker-controlloop/pom.xml | 140 +++++++---- .../src/main/assembly/assembly.xml | 45 ++++ .../docker-controlloop/src/main/docker/Dockerfile | 44 ++-- .../src/main/docker/docker-entrypoint.sh | 273 --------------------- .../src/main/resources/docker-entrypoint.sh | 273 +++++++++++++++++++++ controlloop/packages/pom.xml | 34 ++- 8 files changed, 491 insertions(+), 385 deletions(-) create mode 100644 controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml delete mode 100644 controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh create mode 100644 controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh diff --git a/controlloop/packages/apps-controlloop/pom.xml b/controlloop/packages/apps-controlloop/pom.xml index 83c96c7ec..d288eb258 100644 --- a/controlloop/packages/apps-controlloop/pom.xml +++ b/controlloop/packages/apps-controlloop/pom.xml @@ -3,6 +3,7 @@ ONAP ================================================================================ Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. + Modifications Copyright (C) 2019 Bell Canada. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -36,21 +37,22 @@ - maven-assembly-plugin - - - - single - - package - - - src/assembly/zip.xml - - false - - - + maven-assembly-plugin + + + generate-complete-zip + package + + single + + + + src/assembly/zip.xml + + false + + + diff --git a/controlloop/packages/apps-controlloop/src/assembly/zip.xml b/controlloop/packages/apps-controlloop/src/assembly/zip.xml index f3392e130..c2d19cb63 100644 --- a/controlloop/packages/apps-controlloop/src/assembly/zip.xml +++ b/controlloop/packages/apps-controlloop/src/assembly/zip.xml @@ -3,6 +3,7 @@ PDP-D APPS Installation Package ================================================================================ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + Modifications Copyright (C) 2019 Bell Canada. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,22 +20,22 @@ --> - zipfile - - zip - - false - - - src/files - . - 755 - - - - - false - - + zipfile + + zip + + false + + + src/files + . + 755 + + + + + false + + diff --git a/controlloop/packages/docker-controlloop/pom.xml b/controlloop/packages/docker-controlloop/pom.xml index e7c4b931a..526d3fb4a 100644 --- a/controlloop/packages/docker-controlloop/pom.xml +++ b/controlloop/packages/docker-controlloop/pom.xml @@ -3,6 +3,7 @@ ONAP ================================================================================ Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + Modifications Copyright (C) 2019 Bell Canada. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,92 +23,137 @@ 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.policy.drools-applications.controlloop.packages packages 1.5.0-SNAPSHOT - docker-controlloop pom docker-controlloop ONAP Policy Control Loop PDP-D Docker Build + + UTF-8 + UTF-8 + ${project.version} + false + false + false + nexus3.onap.org:10001 + nexus3.onap.org:10003 + yyyyMMdd'T'HHmm + ${project.version} + + + ${project.artifactId}-${project.version} - org.apache.maven.plugins - maven-dependency-plugin + org.codehaus.groovy.maven + gmaven-plugin + 1.0 - copy-cl-apps-zip - prepare-package + validate - copy + execute - ${project.build.directory}/policy-pdpd-cl - false - true - - - org.onap.policy.drools-applications.controlloop.packages - apps-controlloop - ${project.version} - zip - apps-controlloop.zip - - + + println 'Project version: ' + project.properties['dist.project.version'] + if (project.properties['dist.project.version'] != null) { + def versionArray = project.properties['dist.project.version'].split('-') + def minMaxVersionArray = versionArray[0].tokenize('.') + if (project.properties['dist.project.version'].endsWith("-SNAPSHOT")) { + project.properties['project.docker.latest.minmax.tag.version'] = + minMaxVersionArray[0] + "." + minMaxVersionArray[1] + "-SNAPSHOT-latest" + } else { + project.properties['project.docker.latest.minmax.tag.version'] = + minMaxVersionArray[0] + "." + minMaxVersionArray[1] + "-STAGING-latest" + } + println 'New tag for docker: ' + properties['project.docker.latest.minmax.tag.version'] + } + - maven-resources-plugin + io.fabric8 + docker-maven-plugin + 0.30.0 + + true + 1.23 + ${docker.pull.registry} + ${docker.push.registry} + + + onap/policy-pdpd-cl + + try + Dockerfile + + ${project.version} + ${project.version}-${maven.build.timestamp} + ${project.docker.latest.minmax.tag.version} + + + ${project.basedir}/src/main/assembly/assembly.xml + policy:policy:policy + + + + + - copy-resources - prepare-package + clean-images + pre-clean - copy-resources + remove - ${project.build.directory}/policy-pdpd-cl - - - src/main/docker - - + true - - - - - org.codehaus.mojo - exec-maven-plugin - - get-target-version - prepare-package + generate-images + generate-sources - exec + build + + push-images + deploy + + build + push + + + onap/policy-pdpd-cl + + + + + org.apache.maven.plugins + maven-deploy-plugin - echo - ${project.build.directory} - - ${project.version} - - ${project.build.directory}/version + true - - + + + ${project.groupId} + apps-controlloop + ${project.version} + zip + + diff --git a/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml b/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml new file mode 100644 index 000000000..7deffeb8f --- /dev/null +++ b/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml @@ -0,0 +1,45 @@ + + + + docker-drools-apps + + + ${project.basedir}/src/main/resources + . + true + + docker-entrypoint.sh + + 755 + + + + + + org.onap.policy.drools-applications.controlloop.packages:apps-controlloop + + . + apps-controlloop.zip + + + diff --git a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile index 9f1845da3..e1bed07b2 100644 --- a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile +++ b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile @@ -1,35 +1,35 @@ -FROM onap/policy-drools:1.4.0 +FROM onap/policy-drools:1.5.0-SNAPSHOT ARG BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL} ENV BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL} -COPY apps-controlloop.zip ${POLICY_INSTALL}/ +COPY /maven/apps-controlloop.zip $POLICY_INSTALL/ RUN unzip apps-controlloop.zip && \ - mkdir -p ${POLICY_HOME}/logs ${POLICY_HOME}/config ${HOME}/.m2 && \ - tar -C ${POLICY_HOME} -xvf base-${BUILD_VERSION_DROOLS}.tar.gz --no-same-owner && \ - tar -C ${POLICY_HOME} -xvf basex-controlloop-${BUILD_VERSION_APP_CL}.tar.gz --no-same-owner && \ - unzip policy-management-${BUILD_VERSION_DROOLS}.zip -d ${POLICY_HOME} && \ - echo "source ${POLICY_HOME}/etc/profile.d/env.sh" >> "${HOME}/.bashrc" && \ - chmod 700 ${POLICY_HOME}/bin/* && \ - chmod 600 ${POLICY_HOME}/config/* && \ - chmod 700 ${POLICY_INSTALL}/*.sh && \ - rm -f ${POLICY_INSTALL}/*.conf + mkdir -p $POLICY_HOME/logs $POLICY_HOME/config $HOME/.m2 && \ + tar -C $POLICY_HOME -xvf base-${BUILD_VERSION_DROOLS}.tar.gz --no-same-owner && \ + tar -C $POLICY_HOME -xvf basex-controlloop-$BUILD_VERSION_APP_CL.tar.gz --no-same-owner && \ + unzip policy-management-${BUILD_VERSION_DROOLS}.zip -d $POLICY_HOME && \ + echo "source $POLICY_HOME/etc/profile.d/env.sh" >> "$HOME/.bashrc" && \ + chmod 700 $POLICY_HOME/bin/* && \ + chmod 600 $POLICY_HOME/config/* && \ + chmod 700 $POLICY_INSTALL/*.sh && \ + rm -f $POLICY_INSTALL/*.conf -COPY docker-entrypoint.sh ${POLICY_HOME}/bin/ +COPY /maven/docker-entrypoint.sh $POLICY_HOME/bin/ -RUN . ${POLICY_HOME}/etc/profile.d/env.sh && \ +RUN . $POLICY_HOME/etc/profile.d/env.sh && \ mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \ - --settings=${POLICY_HOME}/etc/m2/standalone-settings.xml \ + --settings=$POLICY_HOME/etc/m2/standalone-settings.xml \ -DartifactId=feature-controlloop-management \ - -DgroupId=org.onap.policy.drools-applications.controlloop.common -Dversion=${BUILD_VERSION_APP_CL} && \ - ${POLICY_HOME}/bin/features install healthcheck distributed-locking lifecycle && \ - ${POLICY_HOME}/bin/features install controlloop-utils controlloop-trans controlloop-management && \ - ${POLICY_HOME}/bin/features install controlloop-amsterdam controlloop-usecases && \ - ${POLICY_HOME}/bin/features enable healthcheck distributed-locking lifecycle && \ - ${POLICY_HOME}/bin/features enable controlloop-trans controlloop-management && \ - ${POLICY_HOME}/bin/features enable controlloop-amsterdam controlloop-usecases && \ - rm ${POLICY_INSTALL}/*.zip ${POLICY_INSTALL}/*.gz 2> /dev/null + -DgroupId=org.onap.policy.drools-applications.controlloop.common -Dversion=$BUILD_VERSION_APP_CL && \ + $POLICY_HOME/bin/features install healthcheck distributed-locking lifecycle && \ + $POLICY_HOME/bin/features install controlloop-utils controlloop-trans controlloop-management && \ + $POLICY_HOME/bin/features install controlloop-amsterdam controlloop-usecases && \ + $POLICY_HOME/bin/features enable healthcheck distributed-locking lifecycle && \ + $POLICY_HOME/bin/features enable controlloop-trans controlloop-management && \ + $POLICY_HOME/bin/features enable controlloop-amsterdam controlloop-usecases && \ + rm $POLICY_INSTALL/*.zip $POLICY_INSTALL/*.gz 2> /dev/null ENTRYPOINT ["/opt/app/policy/bin/docker-entrypoint.sh"] CMD ["boot"] diff --git a/controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh b/controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh deleted file mode 100644 index 73781619e..000000000 --- a/controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh +++ /dev/null @@ -1,273 +0,0 @@ -#!/bin/bash - -# ######################################################################## -# Copyright 2019 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. -# ######################################################################## - - -function configurations { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - local confName - - if ! ls "${POLICY_INSTALL_INIT}"/*.conf 2>&1; then - return 0 - fi - - for c in $(ls "${POLICY_INSTALL_INIT}"/*.conf 2> /dev/null); do - echo "adding configuration file: ${c}" - cp -f "${c}" "${POLICY_HOME}"/etc/profile.d/ - confName="$(basename "${c}")" - sed -i -e "s/ *= */=/" -e "s/=\([^\"\']*$\)/='\1'/" "${POLICY_HOME}/etc/profile.d/${confName}" - done - - source "${POLICY_HOME}"/etc/profile.d/env.sh -} - -function features { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - if ! ls "${POLICY_INSTALL_INIT}"/features*.zip 2>&1; then - return 0 - fi - - source "${POLICY_HOME}"/etc/profile.d/env.sh - - for f in $(ls "${POLICY_INSTALL_INIT}"/features*.zip 2> /dev/null); do - echo "installing feature: ${f}" - "${POLICY_HOME}"/bin/features install "${f}" - done -} - -function scripts { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - if ! ls "${POLICY_INSTALL_INIT}"/*.sh 2>&1; then - return 0 - fi - - source "${POLICY_HOME}"/etc/profile.d/env.sh - - for s in $(ls "${POLICY_INSTALL_INIT}"/*.sh 2> /dev/null); do - echo "executing script: ${s}" - source "${s}" - done -} - -function security { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - if [[ -f "${POLICY_INSTALL_INIT}"/policy-keystore ]]; then - if ! cmp -s "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl/policy-keystore; then - echo "overriding policy-keystore"policy-keystore - cp -f "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl - fi - fi - - if [[ -f ${POLICY_INSTALL_INIT}/policy-keystore ]]; then - if ! cmp -s "${POLICY_INSTALL_INIT}"/policy-truststore "${POLICY_HOME}"/etc/ssl/policy-truststore; then - echo "overriding policy-truststore" - cp -f "${POLICY_INSTALL_INIT}"/policy-truststore "${POLICY_HOME}"/etc/ssl - fi - fi - - if [[ -f "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile ]]; then - if ! cmp -s "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile "${POLICY_HOME}"/config/aaf-cadi.keyfile; then - echo "overriding aaf-cadi.keyfile" - cp -f "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile "${POLICY_HOME}"/config/aaf-cadi.keyfile - fi - fi -} - -function properties { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - if ! ls "${POLICY_INSTALL_INIT}"/*.properties 2>&1; then - return 0 - fi - - for p in $(ls "${POLICY_INSTALL_INIT}"/*.properties 2> /dev/null); do - echo "configuration properties: ${p}" - cp -f "${p}" "${POLICY_HOME}"/config - done -} - -function db { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - if [[ -z ${SQL_HOST} ]]; then - return 0 - fi - - echo "Wating for ${SQL_HOST} ." - timeout 120 bash -c 'until nc -vz "${SQL_HOST}" 3306; do echo -n "."; sleep 1; done'; echo $? - - "${POLICY_HOME}"/bin/db-migrator -s ALL -o upgrade -} - -function nexus { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - if [[ -z ${RELEASE_REPOSITORY_URL} ]]; then - return 0 - fi - - # amsterdam legacy - - echo - echo "checking if there are amsterdam policies already deployed .." - echo - - local amsterdamVersion=$(curl --silent --connect-timeout 20 -X GET \ - "http://nexus:8081/nexus/service/local/artifact/maven/resolve?r=releases&g=org.onap.policy-engine.drools.amsterdam&a=policy-amsterdam-rules&v=RELEASE" \ - | grep -Po "(?<=).*(?=)") - - if [[ -z ${amsterdamVersion} ]]; then - echo "no amsterdam policies have been found .." - exit 0 - fi - - echo - echo "The latest deployed amsterdam artifact in nexus has version ${amsterdamVersion}" - echo - - sed -i.INSTALL \ - -e "s/^rules.artifactId=.*/rules.artifactId=policy-amsterdam-rules/g" \ - -e "s/^rules.groupId=.*/rules.groupId=org.onap.policy-engine.drools.amsterdam/g" \ - -e "s/^rules.version=.*/rules.version=${amsterdamVersion}/g" "${POLICY_HOME}"/config/amsterdam-controller.properties - - echo - echo "amsterdam controller will be started brained with maven coordinates:" - echo - - grep "^rules" "${POLICY_HOME}"/config/amsterdam-controller.properties - echo - echo -} - -function inspect { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - echo "ENV: " - env - echo - echo - - source "${POLICY_HOME}"/etc/profile.d/env.sh - policy status - - echo - echo -} - -function reload { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - configurations - features - security - properties - scripts -} - -function start { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - source "${POLICY_HOME}"/etc/profile.d/env.sh - policy start -} - -function configure { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - reload - db -} - -function vmBoot { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - reload - db - start -} - -function dockerBoot { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - set -e - - vmBoot - - tail -f /dev/null -} - -if [[ ${DEBUG} == y ]]; then - echo "-- $0 $* --" - set -x -fi - -operation="${1}" -case "${operation}" in - inspect) inspect - ;; - boot) dockerBoot - ;; - vmboot) vmBoot - ;; - configure) configure - ;; - *) exec "$@" - ;; -esac diff --git a/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh b/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh new file mode 100644 index 000000000..73781619e --- /dev/null +++ b/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh @@ -0,0 +1,273 @@ +#!/bin/bash + +# ######################################################################## +# Copyright 2019 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. +# ######################################################################## + + +function configurations { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + local confName + + if ! ls "${POLICY_INSTALL_INIT}"/*.conf 2>&1; then + return 0 + fi + + for c in $(ls "${POLICY_INSTALL_INIT}"/*.conf 2> /dev/null); do + echo "adding configuration file: ${c}" + cp -f "${c}" "${POLICY_HOME}"/etc/profile.d/ + confName="$(basename "${c}")" + sed -i -e "s/ *= */=/" -e "s/=\([^\"\']*$\)/='\1'/" "${POLICY_HOME}/etc/profile.d/${confName}" + done + + source "${POLICY_HOME}"/etc/profile.d/env.sh +} + +function features { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + if ! ls "${POLICY_INSTALL_INIT}"/features*.zip 2>&1; then + return 0 + fi + + source "${POLICY_HOME}"/etc/profile.d/env.sh + + for f in $(ls "${POLICY_INSTALL_INIT}"/features*.zip 2> /dev/null); do + echo "installing feature: ${f}" + "${POLICY_HOME}"/bin/features install "${f}" + done +} + +function scripts { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + if ! ls "${POLICY_INSTALL_INIT}"/*.sh 2>&1; then + return 0 + fi + + source "${POLICY_HOME}"/etc/profile.d/env.sh + + for s in $(ls "${POLICY_INSTALL_INIT}"/*.sh 2> /dev/null); do + echo "executing script: ${s}" + source "${s}" + done +} + +function security { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + if [[ -f "${POLICY_INSTALL_INIT}"/policy-keystore ]]; then + if ! cmp -s "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl/policy-keystore; then + echo "overriding policy-keystore"policy-keystore + cp -f "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl + fi + fi + + if [[ -f ${POLICY_INSTALL_INIT}/policy-keystore ]]; then + if ! cmp -s "${POLICY_INSTALL_INIT}"/policy-truststore "${POLICY_HOME}"/etc/ssl/policy-truststore; then + echo "overriding policy-truststore" + cp -f "${POLICY_INSTALL_INIT}"/policy-truststore "${POLICY_HOME}"/etc/ssl + fi + fi + + if [[ -f "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile ]]; then + if ! cmp -s "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile "${POLICY_HOME}"/config/aaf-cadi.keyfile; then + echo "overriding aaf-cadi.keyfile" + cp -f "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile "${POLICY_HOME}"/config/aaf-cadi.keyfile + fi + fi +} + +function properties { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + if ! ls "${POLICY_INSTALL_INIT}"/*.properties 2>&1; then + return 0 + fi + + for p in $(ls "${POLICY_INSTALL_INIT}"/*.properties 2> /dev/null); do + echo "configuration properties: ${p}" + cp -f "${p}" "${POLICY_HOME}"/config + done +} + +function db { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + if [[ -z ${SQL_HOST} ]]; then + return 0 + fi + + echo "Wating for ${SQL_HOST} ." + timeout 120 bash -c 'until nc -vz "${SQL_HOST}" 3306; do echo -n "."; sleep 1; done'; echo $? + + "${POLICY_HOME}"/bin/db-migrator -s ALL -o upgrade +} + +function nexus { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + if [[ -z ${RELEASE_REPOSITORY_URL} ]]; then + return 0 + fi + + # amsterdam legacy + + echo + echo "checking if there are amsterdam policies already deployed .." + echo + + local amsterdamVersion=$(curl --silent --connect-timeout 20 -X GET \ + "http://nexus:8081/nexus/service/local/artifact/maven/resolve?r=releases&g=org.onap.policy-engine.drools.amsterdam&a=policy-amsterdam-rules&v=RELEASE" \ + | grep -Po "(?<=).*(?=)") + + if [[ -z ${amsterdamVersion} ]]; then + echo "no amsterdam policies have been found .." + exit 0 + fi + + echo + echo "The latest deployed amsterdam artifact in nexus has version ${amsterdamVersion}" + echo + + sed -i.INSTALL \ + -e "s/^rules.artifactId=.*/rules.artifactId=policy-amsterdam-rules/g" \ + -e "s/^rules.groupId=.*/rules.groupId=org.onap.policy-engine.drools.amsterdam/g" \ + -e "s/^rules.version=.*/rules.version=${amsterdamVersion}/g" "${POLICY_HOME}"/config/amsterdam-controller.properties + + echo + echo "amsterdam controller will be started brained with maven coordinates:" + echo + + grep "^rules" "${POLICY_HOME}"/config/amsterdam-controller.properties + echo + echo +} + +function inspect { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + echo "ENV: " + env + echo + echo + + source "${POLICY_HOME}"/etc/profile.d/env.sh + policy status + + echo + echo +} + +function reload { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + configurations + features + security + properties + scripts +} + +function start { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + source "${POLICY_HOME}"/etc/profile.d/env.sh + policy start +} + +function configure { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + reload + db +} + +function vmBoot { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + reload + db + start +} + +function dockerBoot { + if [[ ${DEBUG} == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + set -e + + vmBoot + + tail -f /dev/null +} + +if [[ ${DEBUG} == y ]]; then + echo "-- $0 $* --" + set -x +fi + +operation="${1}" +case "${operation}" in + inspect) inspect + ;; + boot) dockerBoot + ;; + vmboot) vmBoot + ;; + configure) configure + ;; + *) exec "$@" + ;; +esac diff --git a/controlloop/packages/pom.xml b/controlloop/packages/pom.xml index cda9cfe64..aa3dc9741 100644 --- a/controlloop/packages/pom.xml +++ b/controlloop/packages/pom.xml @@ -3,6 +3,7 @@ Drools PDP Application Models ================================================================================ Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. + Modifications Copyright (C) 2019 Bell Canada. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,26 +19,37 @@ ============LICENSE_END========================================================= --> - + 4.0.0 pom - org.onap.policy.drools-applications.controlloop controlloop 1.5.0-SNAPSHOT - org.onap.policy.drools-applications.controlloop.packages packages - PDP-D Application Installation Packages PDP-D Installation - - - basex-controlloop - artifacts-controlloop - apps-controlloop - docker-controlloop - + + + default + + true + + + + docker + + basex-controlloop + artifacts-controlloop + apps-controlloop + docker-controlloop + + + false + + + -- cgit 1.2.3-korg