Merge "tosca compliant op policy support + vcpe test"
diff --git a/controlloop/packages/docker-controlloop/pom.xml b/controlloop/packages/docker-controlloop/pom.xml
index 3c50013..c4776f2 100644
--- a/controlloop/packages/docker-controlloop/pom.xml
+++ b/controlloop/packages/docker-controlloop/pom.xml
@@ -2,7 +2,7 @@
   ============LICENSE_START=======================================================
   ONAP
   ================================================================================
-  Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+  Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
   Modifications Copyright (C) 2019-2020 Bell Canada.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
@@ -159,9 +159,6 @@
                             <goal>build</goal>
                             <goal>push</goal>
                         </goals>
-                        <configuration>
-                            <image>onap/policy-pdpd-cl</image>
-                        </configuration>
                     </execution>
                 </executions>
             </plugin>
diff --git a/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml b/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml
index 7deffeb..f35050b 100644
--- a/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml
+++ b/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml
@@ -3,6 +3,7 @@
   PDP-D APPS Installation Package
   ================================================================================
   Copyright (C) 2019 Bell Canada. All rights reserved.
+  Modifications Copyright (C) 2020 AT&T. 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.
@@ -28,7 +29,7 @@
             <outputDirectory>.</outputDirectory>
             <filtered>true</filtered>
             <includes>
-                <include>docker-entrypoint.sh</include>
+                <include>pdpd-cl-entrypoint.sh</include>
             </includes>
             <fileMode>755</fileMode>
         </fileSet>
diff --git a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
index 98bf35a..4647203 100644
--- a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
+++ b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
@@ -3,23 +3,14 @@
 ARG BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL}
 ENV BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL}
 
-COPY /maven/apps-controlloop.zip $POLICY_INSTALL/
+COPY --chown=policy:policy /maven/apps-controlloop.zip $POLICY_INSTALL/
+COPY --chown=policy:policy /maven/pdpd-cl-entrypoint.sh $POLICY_HOME/bin/
 
 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
-
-COPY /maven/docker-entrypoint.sh $POLICY_HOME/bin/
-
-RUN . $POLICY_HOME/etc/profile.d/env.sh && \
-    $POLICY_HOME/bin/features install healthcheck distributed-locking lifecycle && \
+    . $POLICY_HOME/etc/profile.d/env.sh && \
     $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 && \
@@ -31,7 +22,7 @@
         -a $POLICY_HOME/features/controlloop-usecases/artifacts/controller-usecases-$BUILD_VERSION_APP_CL.jar && \
     find $HOME/.m2/ -name _maven.repositories -exec rm -v {} \; && \
     find $HOME/.m2/ -name _remote.repositories -exec rm -v {} \; && \
-    rm $POLICY_INSTALL/*.zip $POLICY_INSTALL/*.gz 2> /dev/null
+    rm $POLICY_INSTALL/apps-controlloop.zip $POLICY_INSTALL/basex-controlloop-$BUILD_VERSION_APP_CL.tar.gz 2> /dev/null
 
-ENTRYPOINT ["/opt/app/policy/bin/docker-entrypoint.sh"]
+ENTRYPOINT ["/opt/app/policy/bin/pdpd-cl-entrypoint.sh"]
 CMD ["boot"]
diff --git a/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh b/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh
deleted file mode 100644
index a1d689a..0000000
--- a/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh
+++ /dev/null
@@ -1,304 +0,0 @@
-#!/bin/bash
-
-# ########################################################################
-# Copyright 2019-2020 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 maven {
-    if [[ ${DEBUG} == y ]]; then
-        echo "-- ${FUNCNAME[0]} --"
-        set -x
-    fi
-
-    if [[ -f "${POLICY_INSTALL_INIT}"/settings.xml ]]; then
-        if ! cmp -s "${POLICY_INSTALL_INIT}"/settings.xml "${POLICY_HOME}"/etc/m2/settings.xml; then
-            echo "overriding settings.xml"
-            cp -f "${POLICY_INSTALL_INIT}"/settings.xml "${POLICY_HOME}"/etc/m2
-        fi
-    fi
-
-    if [[ -f "${POLICY_INSTALL_INIT}"/standalone-settings.xml ]]; then
-        if ! cmp -s "${POLICY_INSTALL_INIT}"/standalone-settings.xml "${POLICY_HOME}"/etc/m2/standalone-settings.xml; then
-            echo "overriding standalone-settings.xml"
-            cp -f "${POLICY_INSTALL_INIT}"/standalone-settings.xml "${POLICY_HOME}"/etc/m2
-        fi
-    fi
-}
-
-function systemConfs {
-    if [[ ${DEBUG} == y ]]; then
-        echo "-- ${FUNCNAME[0]} --"
-        set -x
-    fi
-
-    local confName
-
-    if ! ls "${POLICY_INSTALL_INIT}"/*.conf > /dev/null 2>&1; then
-        return 0
-    fi
-
-    for c in $(ls "${POLICY_INSTALL_INIT}"/*.conf 2> /dev/null); do
-        echo "adding system conf 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 > /dev/null 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
-
-    local scriptExtSuffix=${1:-"sh"}
-
-    if ! ls "${POLICY_INSTALL_INIT}"/*."${scriptExtSuffix}" > /dev/null 2>&1; then
-        return 0
-    fi
-
-    source "${POLICY_HOME}"/etc/profile.d/env.sh
-
-    for s in $(ls "${POLICY_INSTALL_INIT}"/*."${scriptExtSuffix}" 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"
-            cp -f "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl
-        fi
-    fi
-
-    if [[ -f ${POLICY_INSTALL_INIT}/policy-truststore ]]; 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 serverConfig {
-    if [[ ${DEBUG} == y ]]; then
-        echo "-- ${FUNCNAME[0]} --"
-        set -x
-    fi
-
-    local configExtSuffix=${1:-"properties"}
-
-    if ! ls "${POLICY_INSTALL_INIT}"/*."${configExtSuffix}" > /dev/null 2>&1; then
-        return 0
-    fi
-
-    for p in $(ls "${POLICY_INSTALL_INIT}"/*."${configExtSuffix}" 2> /dev/null); do
-        echo "configuration ${configExtSuffix}: ${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 "(?<=<version>).*(?=</version>)")
-
-    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
-
-    systemConfs
-    maven
-    features
-    security
-    serverConfig "properties"
-    serverConfig "xml"
-    serverConfig "json"
-    scripts "pre.sh"
-}
-
-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
-    scripts "post.sh"
-}
-
-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
-                ;;
-    nexus)      nexus
-                ;;
-    *)          exec "$@"
-                ;;
-esac
diff --git a/controlloop/packages/docker-controlloop/src/main/resources/pdpd-cl-entrypoint.sh b/controlloop/packages/docker-controlloop/src/main/resources/pdpd-cl-entrypoint.sh
new file mode 100644
index 0000000..9b92187
--- /dev/null
+++ b/controlloop/packages/docker-controlloop/src/main/resources/pdpd-cl-entrypoint.sh
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# ########################################################################
+# Copyright 2019-2020 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 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 "(?<=<version>).*(?=</version>)")
+
+    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
+}
+
+if [[ ${DEBUG} == y ]]; then
+    echo "-- $0 $* --"
+    set -x
+fi
+
+operation="${1}"
+case "${operation}" in
+    nexus)      nexus
+                ;;
+    *)          ${POLICY_HOME}/bin/pdpd-entrypoint.sh "$@"
+                ;;
+esac