[DMAAP-BC] Consolidate bus controller repos
[dmaap/buscontroller.git] / dbc-client / misc / dbc-client
index 42e7282..461a069 100644 (file)
 umask 0022
 TZ=GMT0
 COMPONENT=dbc-client
-APP_ROOT=/opt/app/$COMPONENT
-USER=root
+APP_ROOT=${APP_ROOT:-/opt/app/$COMPONENT}
 export TZ
 PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
 export PATH
 CONFIGMAP_ROOT=${CONFIGMAP_ROOT:-/opt/app/config}
 CONTAINER_CONFIG=$CONFIGMAP_ROOT/conf/dbc-client.env
-
-
-
+REQUESTID=${REQUESTID:-dbc-client}
+DBC=${DBC:-dmaap-bc}
+PROTO=${PROTO:-https}
+PORT=${PORT:-8443}
+WAIT_TO_EXIT=${WAIT_TO_EXIT:-N}
+PEMDIR=${PEMDIR:-/opt/app/osaaf/local}
+CAPEM=${CAPEM:-ca.pem}
+CLIENTPEM=${CLIENTPEM:-client.pem}
+KEYPEM=${KEYPEM:-key.pem}
+CERTPWD=${CERTPWD:-'2U[iOZzMHI:.#tdCwlBqc;}S'}
+AUTH_METHOD=${AUTH_METHOD:-basicAuth}
+BA_IDENTITY=${BA_IDENTITY:-dmaap-bc@dmaap-bc.onap.org}
+BA_PWD=${BA_PWD:-'demo123456!'}
 
 config() {
        echo "ENTER config"
@@ -43,6 +52,23 @@ config() {
                echo "Expected app root directory $APP_ROOT does not exist"
                exit 1
        fi
+       cd $PEMDIR
+       pwd
+       ls -l
+       echo "AUTH_METHOD=$AUTH_METHOD"
+       if [ "$AUTH_METHOD"  =  "basicAuth" ]
+       then
+               echo "-u ${BA_IDENTITY}:${BA_PWD}" > $PEMDIR/curl.cred
+               CURLCRED="-K $PEMDIR/curl.cred"
+       elif [ -f $CAPEM  -a -f $CLIENTPEM -a -f $KEYPEM ]
+       then
+               printf "key \"$PEMDIR/$KEYPEM\"\ncacert \"$PEMDIR/$CAPEM\"\ncert \"$PEMDIR/${CLIENTPEM}:${CERTPWD}\"" > $PEMDIR/curl.cred
+               CURLCRED="-K $PEMDIR/curl.cred"
+       else
+               echo "Warning: PEM files for authorization not found!"
+               CURLCRED=""
+       fi
+       echo "CURLCRED=$CURLCRED"
        cd $APP_ROOT
        find . -type f -exec ls -l {} \;
        find $CONFIGMAP_ROOT -type f -exec ls -l {} \;
@@ -53,7 +79,7 @@ config() {
                source $CONTAINER_CONFIG
        fi
 
-       if [ "$DMAAPBC_WAIT_TO_EXIT" != "Y" ]
+       if [ "$WAIT_TO_EXIT" != "Y" ]
        then
                echo "Creating $APP_ROOT/ok_to_exit so no waiting..."
                > $APP_ROOT/ok_to_exit
@@ -61,18 +87,12 @@ config() {
                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
-
        set +x
 }
 
 
 init() {
+       set -x
        echo "ENTER init"
        if [ ! -d $CONFIGMAP_ROOT ]
        then
@@ -81,34 +101,69 @@ init() {
        fi
 
        #loop on get /dmaap until we get a good response to indicate other provisioning can continue
-       rc=999
+       rc=${RESP:-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`
+               rc=`curl $CURLCRED -s -o /dev/null -I -w "%{http_code}" -X GET -H "X-ECOMP-RequestID: $REQUESTID" -H "Content-Type: application/json" ${PROTO}://${DBC}:${PORT}/webapi/dmaap`
                echo "get dmaap response=${rc}"
        done
+       set +x
+}
+
+dopost() {
+       set -x
+       RETRY_TIME=60
+
+       loop=true
+
+       while [ $loop = true ]
+       do
+               rc=`curl $CURLCRED -s -X POST -w "%{http_code}" -H "X-ECOMP-RequestID: $REQUESTID" -H "Content-Type: application/json" -d @${1} ${PROTO}://${DBC}:${PORT}/webapi/${2} -o /dev/null`
+               case $rc in
+               200 | 201 | 409 )
+                       echo "response=$rc"
+                       loop=false
+                       ;;
+               * )
+                       echo "`date`: http response=$rc.  Will retry after $RETRY_TIME seconds"
+                       sleep $RETRY_TIME
+                       ;;
+               esac
+       done
+       set +x
+
 }
+
 doprov() {
 
+       set -x
        cd $CONFIGMAP_ROOT
        pwd
        # order is important in this next list
-       for uri in dmaap dcaeLocations mr_clusters topics feeds mr_clients dr_pubs dr_subs
+       for uri in dmaap dcaeLocations mr_clusters topics mr_clients dr_nodes feeds dr_pubs dr_subs
        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"
+                               dopost $j $uri
                        done
                fi
        done
+       set +x
+}
+
+delay() {
+       echo "DELAY=$DELAY"
+       if [ ! -z "$DELAY" ]
+       then
+               sleep $DELAY
+       fi
 }
 
-set -x
+delay
 config
 init
 doprov