| #!/bin/sh |
| # |
| # ============LICENSE_START========================================== |
| # org.onap.dmaap |
| # =================================================================== |
| # Copyright © 2019 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=dbc-client |
| 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" |
| set -x |
| if [ ! -d $APP_ROOT ] |
| then |
| 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 {} \; |
| if [ ! -f $CONTAINER_CONFIG ] |
| then |
| echo "WARNING: Expected env file $CONTAINER_CONFIG not found. Default behaviors in effect" |
| else |
| source $CONTAINER_CONFIG |
| fi |
| |
| if [ "$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 |
| |
| set +x |
| } |
| |
| |
| init() { |
| set -x |
| 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=${RESP:-999} |
| while [ $rc != "200" ] |
| do |
| sleep 10 |
| 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 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" |
| dopost $j $uri |
| done |
| fi |
| done |
| set +x |
| } |
| delay() { |
| echo "DELAY=$DELAY" |
| if [ ! -z "$DELAY" ] |
| then |
| sleep $DELAY |
| fi |
| } |
| |
| delay |
| config |
| init |
| doprov |
| |
| 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 |