blob: f1e8ae74cd711f62bc745e6675dd787550eee81f [file] [log] [blame]
#!/bin/bash
#
# ============LICENSE_START==========================================
# org.onap.dmaap
# ===================================================================
# Copyright © 2018 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============================================
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
#
umask 0022
TZ=GMT0
COMPONENT=dmaapbc
APP_ROOT=/opt/app/$COMPONENT
USER=root
export TZ
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/java/jdk/jdk180/bin
export PATH
CLASSPATH=`echo $APP_ROOT/etc $APP_ROOT/lib/*.jar | tr ' ' ':'`
export CLASSPATH
CONFIGMAP_ROOT=${CONFIGMAP_ROOT:-/opt/app/config}
CONFIGMAP_PROPS=${CONFIGMAP_PROPS:-$CONFIGMAP_ROOT/conf/dmaapbc.properties}
CONTAINER_CONFIG=$CONFIGMAP_ROOT/conf/buscontroller.env
MAIN=org.onap.dmaap.dbcapi.server.Main
pids() {
set -x
ps -ef | grep java | grep $MAIN | sed -e 's/[^ ]* *//' -e 's/ .*//'
set +x
}
config() {
echo "ENTER config"
set -x
if [ ! -d $APP_ROOT ]
then
echo "Expected app root directory $APP_ROOT does not exist"
exit 1
fi
if [ ! -f $CONTAINER_CONFIG ]
then
echo "WARNING: Expected env file $CONTAINER_CONFIG not found. Default behaviors in effect"
find $CONTAINER_ROOT -type f
fi
cd $APP_ROOT
source $CONTAINER_CONFIG
if [ "$DMAAPBC_WAIT_TO_EXIT" != "Y" ]
then
echo "Creating $APP_ROOT/ok_to_exit so no waiting..."
> $APP_ROOT/ok_to_exit
else
echo "Not creating $APP_ROOT/ok_to_exit"
fi
if [ ! -f $APP_ROOT/misc/cert-client-init.sh ]
then
echo "Did not find $APP_ROOT/misc/cert-client-init.sh to append to truststore"
exit 1
fi
$APP_ROOT/misc/cert-client-init.sh
. misc/havecert.tmpl > etc/havecert
chmod +x etc/havecert
# These files might be better provided in kubernetes configmaps
# so if they are there, use them
if [ -f $CONFIGMAP_PROPS ]
then
PROPS=$CONFIGMAP_PROPS
else
PROPS=etc/dmaapbc.properties
. misc/dmaapbc.properties.tmpl > $PROPS
fi
if [ ! -f config/PolicyEngineApi.properties ]
then
. misc/PolicyEngineApi.properties.tmpl > config/PolicyEngineApi.properties
fi
set +x
}
start() {
echo "ENTER start"
set -x
ID=`id -n -u`
GRP=`id -n -g`
if [ "$ID" != "$USER" ]
then
echo $COMPONENT must be started as user $USER not $ID
exit 1
fi
if [ "$GRP" != "$USER" ]
then
echo $COMPONENT must be started as group $USER not $GRP
exit 1
fi
cd $APP_ROOT
pwd
if etc/havecert
then
echo >/dev/null
else
echo No certificate file available. Cannot start
exit 0
fi
PIDS=`pids`
if [ "$PIDS" != "" ]
then
echo $COMPONENT already running
exit 0
fi
rm -f $APP_ROOT/etc/SHUTDOWN
# JVM flags
#old line from Dockerfile...keep for reference only
FLAGS="-cp etc:lib/* -Dlog4j.configuration=etc/log4j.properties -DConfigFile=$PROPS -Dlogback.configurationFile=etc/logback.xml -Dhttps.protocols=TLSv1.2 -Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
#nohup java $FLAGS $MAIN </dev/null >/dev/null 2>&1 &
nohup java $FLAGS $MAIN </dev/null &
sleep 5
PIDS=`pids`
set +x
}
stop() {
echo "ENTER stop"
ID=`id -n -u`
GRP=`id -n -g`
if [ "$ID" != "$USER" ]
then
echo $COMPONENT must be stopped as user $USER not $ID
exit 1
fi
if [ "$GRP" != "$USER" ]
then
echo $COMPONENT must be stopped as group $USER not $GRP
exit 1
fi
touch $APP_ROOT/etc/SHUTDOWN
PIDS=`pids`
if [ "$PIDS" != "" ]
then
sleep 5
kill -9 $PIDS
sleep 5
echo $COMPONENT stopped
else
echo $COMPONENT not running
fi
}
status() {
echo "ENTER status"
PIDS=`pids`
if [ "$PIDS" != "" ]
then
echo $COMPONENT running
else
echo $COMPONENT not running
fi
}
init() {
echo "ENTER init"
if [ ! -d $CONFIGMAP_ROOT ]
then
echo $CONFIGMAP_ROOT does not exist
return
fi
#loop on get /dmaap until we get a good response to indicate other provisioning can continue
rc=999
while [ $rc != "200" ]
do
sleep 10
rc=`curl -s -o /dev/null -I -w "%{http_code}" -X GET -H "Content-Type: application/json" http://dmaap-bc:8080/webapi/dmaap`
echo "get dmaap response=${rc}"
done
cd $CONFIGMAP_ROOT
pwd
# order is important in this next list
for uri in dmaap dcaeLocations mr_clusters topics feeds
do
if [ -d ${uri} ]
then
for j in `ls ${uri}/*.json`
do
echo "POST $j to $uri"
rc=`curl -v -X POST -w "%{http_code}" -H "Content-Type: application/json" -d @${j} http://dmaap-bc:8080/webapi/${uri}`
echo "response=$rc"
done
fi
done
}
set -x
case "$1" in
'deploy')
config
start
#init
wait
;;
'start')
start
;;
'stop')
stop
;;
'restart')
stop
sleep 20
start
;;
'status')
status
;;
*)
echo "Usage: $0 { start | stop | restart }"
exit 1
;;
esac
ls -l $APP_ROOT/logs/ONAP
echo "------------ tail -100 error.log ---------------"
tail -100 $APP_ROOT/logs/ONAP/error.log
echo "------------ tail -100 server.log ---------------"
tail -100 $APP_ROOT/logs/ONAP/server.log
echo "------------ tail -100 application.log ---------------"
tail -100 $APP_ROOT/logs/ONAP/application.log
echo "Check $APP_ROOT/ok_to_exit"
while [ ! -f $APP_ROOT/ok_to_exit ]
do
echo "$APP_ROOT/ok_to_exit does not exist. Sticking around for debugging..."
sleep 10
done
exit 0