diff options
Diffstat (limited to 'packages/docker/src/main/docker/pdpd-entrypoint.sh')
-rw-r--r-- | packages/docker/src/main/docker/pdpd-entrypoint.sh | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/packages/docker/src/main/docker/pdpd-entrypoint.sh b/packages/docker/src/main/docker/pdpd-entrypoint.sh new file mode 100644 index 00000000..1f7b3109 --- /dev/null +++ b/packages/docker/src/main/docker/pdpd-entrypoint.sh @@ -0,0 +1,259 @@ +#!/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 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 + ;; + *) exec "$@" + ;; +esac |