Add wait loop to init step
[dmaap/buscontroller.git] / misc / dmaapbc
index 19bb3f7..3dcef4a 100644 (file)
@@ -1,4 +1,25 @@
 #!/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
@@ -10,14 +31,16 @@ PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/java/jdk/
 export PATH
 CLASSPATH=`echo $APP_ROOT/etc $APP_ROOT/lib/*.jar | tr ' ' ':'` 
 export CLASSPATH
-CONTAINER_CONFIG=/opt/app/config/conf
+CONFIGMAP_ROOT=/opt/app/config
+CONTAINER_CONFIG=$CONFIGMAP_ROOT/conf
 MAIN=org.onap.dmaap.dbcapi.server.Main 
 
 
+
 pids() {
-       #set -x
+       set -x
        ps -ef | grep java | grep $MAIN | sed -e 's/[^ ]* *//' -e 's/ .*//'
-       #set +x
+       set +x
 }
 
 config() {
@@ -34,13 +57,23 @@ config() {
        fi
        cd $APP_ROOT
        source $CONTAINER_CONFIG
-       # comment out till certs are available
-       #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
+
+       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
        . misc/dmaapbc.properties.tmpl > etc/dmaapbc.properties
     . misc/PolicyEngineApi.properties.tmpl > config/PolicyEngineApi.properties
        set +x
@@ -62,14 +95,13 @@ start() {
        fi
        cd $APP_ROOT
 
-# disable until we use certs
-#      if etc/havecert
-#      then
+       if etc/havecert
+       then
                echo >/dev/null
-#      else
-#              echo No certificate file available.  Cannot start
-#              exit 0
-#      fi
+       else
+               echo No certificate file available.  Cannot start
+               exit 0
+       fi
        PIDS=`pids`
        if [ "$PIDS" != "" ]
        then
@@ -80,23 +112,11 @@ start() {
 
        # JVM flags
 #old line from Dockerfile...keep for reference only
-       FLAGS="-cp etc:lib/* -Dlog4j.configuration=etc/log4j.properties -Ddmaapbc.properties=etc/dmaapbc.properties  -Dhttps.protocols=TLSv1.2 -Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
-       nohup java $FLAGS $MAIN </dev/null >/dev/null 2>&1 &
+       FLAGS="-cp etc:lib/* -Dlog4j.configuration=etc/log4j.properties -Ddmaapbc.properties=etc/dmaapbc.properties  -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`
-       if [ "$PIDS" = "" ]
-       then
-               echo $COMPONENT startup failed
-               ls -l $APP_ROOT/logs/EELF
-               echo "------------ error.log ---------------"
-               cat $APP_ROOT/logs/EELF/error.log
-               echo "------------ server.log ---------------"
-               cat $APP_ROOT/logs/EELF/server.log
-               echo "------------ tail -100 application.log ---------------"
-               tail -100 $APP_ROOT/logs/EELF/application.log
-       else
-               echo $COMPONENT started
-       fi
        set +x
 }
 
@@ -136,11 +156,42 @@ status() {
        fi
 }
 
+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 -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
+       # 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
+                               curl -v -X POST -H "Content-Type: application/json" -d @${j} http://dmaap-bc:8080/webapi/${uri}
+                       done
+               fi
+       done
+}
+
 set -x
 case "$1" in
 'deploy')
        config
        start
+       init
        wait
        ;;
 'start')
@@ -162,4 +213,18 @@ case "$1" in
        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