Align INFO.yaml
[sdc/dcae-d/dt-be-main.git] / docker / scripts / docker_run.sh
index bc08fa3..6ee36e3 100755 (executable)
@@ -11,10 +11,12 @@ FAILURE=1
 RELEASE=latest
 LOCAL=false
 
+DEP_ENV="AUTO"
+
 
 # Java Options:
-DCAE_BE_JAVA_OPTIONS="-XX:MaxPermSize=256m -Xmx1024m -Dconfig.home=config -Dlog.home=/var/lib/jetty/logs/ -Dlogging.config=config/dcae-be/logback-spring.xml"
-DCAE_FE_JAVA_OPTIONS="-XX:MaxPermSize=256m -Xmx1024m -Dconfig.home=config -Dlog.home=/var/lib/jetty/logs/ -Dlogging.config=config/dcae-fe/logback-spring.xml"
+JAVA_OPTIONS="-XX:MaxPermSize=256m -Xmx1024m"
+
 
 #Define this as variable, so it can be excluded in run commands on Docker for OSX, as /etc/localtime cant be mounted there.
 LOCAL_TIME_MOUNT_CMD="--volume /etc/localtime:/etc/localtime:ro"
@@ -24,14 +26,18 @@ if [[ "$OSTYPE" == "darwin"* ]]; then
     LOCAL_TIME_MOUNT_CMD=""
 fi
 
+# Docker running Mode
+DOCKER_RUN_MODE_BG="--detach"
+DOCKER_RUN_MODE_FG="-dti"
+
 
 #
 # Functions:
 #
 
 function usage {
-    echo "usage: docker_run.sh [ -r|--release <RELEASE-NAME> ]  [ -e|--environment <ENV-NAME> ] [ -p|--port <Docker-hub-port>] [ -l|--local <Run-without-pull>] [ -h|--help ]"
-    echo "example: sudo bash docker_run.sh -e AUTO -r 1.2-STAGING-latest"
+    echo "usage: dcae_docker_run.sh [ -r|--release <RELEASE-NAME> ]  [ -e|--environment <ENV-NAME> ] [ -p|--port <Docker-hub-port>] [ -l|--local <Run-without-pull>] [ -h|--help ]"
+    echo "example: sudo bash dcae_docker_run.sh -e AUTO -r 1.2-STAGING-latest"
 }
 #
 
@@ -40,16 +46,16 @@ function cleanup {
     echo "Performing old dockers cleanup"
 
     if [ "$1" == "all" ] ; then
-        docker_ids=`docker ps -a | egrep "dcae" | awk '{print $1}'`
+        docker_ids=$(docker ps -a | egrep "dcae" | awk '{print $1}')
         for X in ${docker_ids}
         do
-           docker rm -f ${X}
+           docker rm -f "${X}"
          done
     else
         echo "performing $1 docker cleanup"
-        tmp=`docker ps -a -q --filter="name=$1"`
-        if [[ ! -z "$tmp" ]]; then
-            docker rm -f ${tmp}
+        tmp=$(docker ps -a -q --filter="name=$1")
+        if [[ -n "$tmp" ]]; then
+            docker rm -f "${tmp}"
         fi
     fi
 }
@@ -57,14 +63,18 @@ function cleanup {
 
 
 function dir_perms {
-    mkdir -p ${WORKSPACE}/data/logs/DCAE-BE/DCAE
-    mkdir -p ${WORKSPACE}/data/logs/DCAE-FE/DCAE
+    mkdir -p "${WORKSPACE}/data/logs/DCAE-BE/DCAE"
+    mkdir -p "${WORKSPACE}/data/logs/DCAE-FE/DCAE"
+    mkdir -p "${WORKSPACE}/data/logs/DCAE-DT/DCAE"
+    mkdir -p "${WORKSPACE}/data/logs/DCAE-TOSCA/DCAE"
+
+    chmod -R 777 "${WORKSPACE}/data/logs"
 }
 #
 
 
 function docker_logs {
-    docker logs $1 > ${WORKSPACE}/data/logs/docker_logs/$1_docker.log
+    docker logs "$1" > "${WORKSPACE}/data/logs/docker_logs/$1_docker.log"
 }
 #
 
@@ -74,10 +84,10 @@ function docker_logs {
 #
 
 function ready_probe {
-    docker exec $1 /var/lib/ready-probe.sh > /dev/null 2>&1
+    docker exec "$1" /var/lib/ready-probe.sh > /dev/null 2>&1
     rc=$?
     if [[ ${rc} == 0 ]]; then
-        echo DOCKER $1 start finished in $2 seconds
+        echo "DOCKER $1 start finished in $2 seconds"
         return ${SUCCESS}
     fi
     return ${FAILURE}
@@ -86,22 +96,32 @@ function ready_probe {
 
 
 function probe_docker {
-    MATCH=`docker logs --tail 30 $1 | grep "DOCKER STARTED"`
-    echo MATCH is -- ${MATCH}
+    MATCH=$(docker logs --tail 30 "$1" | grep "DOCKER STARTED")
+    echo MATCH is -- "${MATCH}"
 
     if [ -n "$MATCH" ] ; then
-        echo DOCKER start finished in $2 seconds
+        echo "DOCKER start finished in $2 seconds"
         return ${SUCCESS}
     fi
     return ${FAILURE}
 }
 #
 
+function probe_dcae_tosca {
+    health_check_http_code=$(curl --noproxy "*" -k -i -o /dev/null -w '%{http_code}' "http://${IP}:8085/healthcheck")
+    if [[ "${health_check_http_code}" -eq 200 ]] ; then
+        echo "DOCKER start finished in $1 seconds"
+        return ${SUCCESS}
+    fi
+    return ${FAILURE}
+}
+#
 
+# probe script used the secure connection to do health check (https is always turn on)
 function probe_dcae_be {
-    health_check_http_code=$(curl -i -o /dev/null -w '%{http_code}' http://${IP}:8082/dcae/conf/composition)
+    health_check_http_code=$(curl --noproxy "*" -k -i -o /dev/null -w '%{http_code}' "https://${IP}:8444/dcae/conf/composition")
     if [[ "${health_check_http_code}" -eq 200 ]] ; then
-        echo DOCKER start finished in $1 seconds
+        echo "DOCKER start finished in $1 seconds"
         return ${SUCCESS}
     fi
     return ${FAILURE}
@@ -109,21 +129,30 @@ function probe_dcae_be {
 #
 
 function probe_dcae_fe {
-    health_check_http_code=$(curl -i -o /dev/null -w '%{http_code}' http://${IP}:8183/dcaed/healthCheck)
+    health_check_http_code=$(curl --noproxy "*" -k -i -o /dev/null -w '%{http_code}' "https://${IP}:9444/dcaed/healthCheck")
     if [[ "${health_check_http_code}" -eq 200 ]] ; then
-        echo DOCKER start finished in $1 seconds
+        echo "DOCKER start finished in $1 seconds"
         return ${SUCCESS}
     fi
     return ${FAILURE}
 }
 #
 
+function probe_dcae_dt {
+    health_check_http_code=$(curl --noproxy "*" -k -i -o /dev/null -w '%{http_code}' "https://${IP}:9446/dcae/healthCheckOld")
+    if [[ "${health_check_http_code}" -eq 200 ]] ; then
+        echo "DOCKER start finished in $1 seconds"
+        return ${SUCCESS}
+    fi
+    return ${FAILURE}
+}
+#
 
 # Not applicable for current release. Return Success in any case
 function probe_dcae_tools {
-   health_check_http_code=$(curl -i -o /dev/null -w '%{http_code}'  http://${IP}:8082/dcae/getResourcesByMonitoringTemplateCategory)
+   health_check_http_code=$(curl --noproxy "*" -k -i -o /dev/null -w '%{http_code}'  "https://${IP}:8444/dcae/getResourcesByMonitoringTemplateCategory")
     if [[ "${health_check_http_code}" -eq 200 ]] ; then
-        echo DOCKER start finished in $1 seconds
+        echo "DOCKER start finished in $1 seconds"
         return ${SUCCESS}
     fi
     return ${SUCCESS}
@@ -143,6 +172,10 @@ function monitor_docker {
 
         case ${DOCKER_NAME} in
 
+            dcae-tosca-app)
+                probe_dcae_tosca ${TIME} ;
+                status=$? ;
+            ;;
             dcae-be)
                 probe_dcae_be ${TIME} ;
                 status=$? ;
@@ -151,12 +184,16 @@ function monitor_docker {
                 probe_dcae_fe ${TIME} ;
                 status=$? ;
             ;;
+            dcae-dt)
+                probe_dcae_dt ${TIME} ;
+                status=$? ;
+            ;;
             dcae-tools)
                 probe_dcae_tools ;
                 status=$? ;
             ;;
             *)
-                probe_docker ${DOCKER_NAME} ${TIME};
+                probe_docker "${DOCKER_NAME}" ${TIME};
                 status=$? ;
             ;;
 
@@ -171,7 +208,7 @@ function monitor_docker {
         TIME=$(($TIME+$INTERVAL))
     done
 
-    docker_logs ${DOCKER_NAME}
+    docker_logs "${DOCKER_NAME}"
 
     if [ "$TIME" -ge "$TIME_OUT" ]; then
         echo -e "\e[1;31mTIME OUT: DOCKER was NOT fully started in $TIME_OUT seconds... Could cause problems ...\e[0m"
@@ -179,16 +216,16 @@ function monitor_docker {
 }
 #
 
-
+# healthCheck script used the secure connection to send request (https is always turn on)
 function healthCheck {
 
     echo "BE health-Check:"
-    curl --noproxy "*" http://${IP}:8080/sdc2/rest/healthCheck
+    curl -k --noproxy "*" "https://${IP}:8443/sdc2/rest/healthCheck"
 
     echo ""
     echo ""
     echo "FE health-Check:"
-    curl --noproxy "*" http://${IP}:8181/sdc1/rest/healthCheck
+    curl -k --noproxy "*" "https://${IP}:9443/sdc1/rest/healthCheck"
 }
 #
 
@@ -208,15 +245,29 @@ function command_exit_status {
 # Run Containers
 #
 
+# DCAE TOSCA
+function dcae-tosca {
+    DOCKER_NAME="dcae-tosca-app"
+    echo "docker run ${DOCKER_NAME}..."
+    if [ ${LOCAL} == false ]; then
+        docker pull "${PREFIX}/${DOCKER_NAME}:${RELEASE}"
+    fi
+    docker run ${DOCKER_RUN_MODE_FG} --name ${DOCKER_NAME} --env HOST_IP="${IP}" --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD}  --volume "${WORKSPACE}/data/logs/DCAE-TOSCA/:/var/logs/dcae"  --publish 8085:8085  "${PREFIX}/${DOCKER_NAME}:${RELEASE}"
+    command_exit_status $? ${DOCKER_NAME}
+    echo "please wait while ${DOCKER_NAME^^} is starting....."
+    monitor_docker ${DOCKER_NAME}
+}
+#
+
 
 # DCAE BackEnd
 function dcae-be {
     DOCKER_NAME="dcae-be"
     echo "docker run ${DOCKER_NAME}..."
-    if [ ${LOCAL} = false ]; then
-        docker pull ${PREFIX}/${DOCKER_NAME}:${RELEASE}
+    if [ ${LOCAL} == false ]; then
+        docker pull "${PREFIX}/${DOCKER_NAME}:${RELEASE}"
     fi
-    docker run --detach --name ${DOCKER_NAME} --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${DCAE_BE_JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD}  --volume ${WORKSPACE}/data/logs/DCAE-BE/:/var/lib/jetty/logs --volume ${WORKSPACE}/data/environments:/var/opt/dcae-be/chef-solo/environments --publish 8444:8444 --publish 8082:8082 ${PREFIX}/${DOCKER_NAME}:${RELEASE}
+    docker run ${DOCKER_RUN_MODE_FG} --name ${DOCKER_NAME} --env HOST_IP="${IP}" --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD}  --volume "${WORKSPACE}/data/logs/DCAE-BE/:/var/lib/jetty/logs" --volume "${WORKSPACE}/data/environments:/var/lib/jetty/chef-solo/environments" --publish 8444:8444 --publish 8082:8082 "${PREFIX}/${DOCKER_NAME}:${RELEASE}" /bin/sh
     command_exit_status $? ${DOCKER_NAME}
     echo "please wait while ${DOCKER_NAME^^} is starting....."
     monitor_docker ${DOCKER_NAME}
@@ -228,14 +279,13 @@ function dcae-be {
 function dcae-tools {
     DOCKER_NAME="dcae-tools"
     echo "docker run ${DOCKER_NAME}..."
-    if [ ${LOCAL} = false ]; then
-        docker pull ${PREFIX}/${DOCKER_NAME}:${RELEASE}
+    if [ ${LOCAL} == false ]; then
+        docker pull "${PREFIX}/${DOCKER_NAME}:${RELEASE}"
     fi
-    docker run --detach --name ${DOCKER_NAME} --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" ${LOCAL_TIME_MOUNT_CMD}  --volume ${WORKSPACE}/data/logs/BE/:/var/lib/jetty/logs --volume ${WORKSPACE}/data/environments:/var/opt/dcae-tools/chef-solo/environments  ${PREFIX}/${DOCKER_NAME}:${RELEASE}
+    docker run ${DOCKER_RUN_MODE_BG} --name ${DOCKER_NAME} --env HOST_IP="${IP}" --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${JAVA_OPTIONS}" ${LOCAL_TIME_MOUNT_CMD}  --volume "${WORKSPACE}/data/logs/BE/:/var/lib/jetty/logs" --volume "${WORKSPACE}/data/environments:/var/lib/jetty/chef-solo/environments"  "${PREFIX}/${DOCKER_NAME}:${RELEASE}"
     command_exit_status $? ${DOCKER_NAME}
     echo "please wait while ${DOCKER_NAME^^} is starting....."
     monitor_docker ${DOCKER_NAME}
-
 }
 #
 
@@ -244,17 +294,30 @@ function dcae-tools {
 function dcae-fe {
     DOCKER_NAME="dcae-fe"
     echo "docker run ${DOCKER_NAME}..."
-    if [ ${LOCAL} = false ]; then
-        docker pull ${PREFIX}/${DOCKER_NAME}:${RELEASE}
+    if [ ${LOCAL} == false ]; then
+        docker pull "${PREFIX}/${DOCKER_NAME}:${RELEASE}"
     fi
-    docker run --detach --name ${DOCKER_NAME} --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${DCAE_FE_JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD}  --volume ${WORKSPACE}/data/logs/DCAE-FE/:/var/lib/jetty/logs --volume ${WORKSPACE}/data/environments:/var/opt/dcae-fe/chef-solo/environments/ --publish 9444:9444 --publish 8183:8183 ${PREFIX}/${DOCKER_NAME}:${RELEASE}
+    docker run ${DOCKER_RUN_MODE_FG} --name ${DOCKER_NAME} --env HOST_IP="${IP}" --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD}  --volume "${WORKSPACE}/data/logs/DCAE-FE/:/var/lib/jetty/logs" --volume "${WORKSPACE}/data/environments:/var/lib/jetty/chef-solo/environments" --publish 9444:9444 --publish 8183:8183 "${PREFIX}/${DOCKER_NAME}:${RELEASE}" /bin/sh
     command_exit_status $? ${DOCKER_NAME}
     echo "please wait while ${DOCKER_NAME^^} is starting....."
     monitor_docker ${DOCKER_NAME}
-
 }
 #
 
+# DCAE DT
+function dcae-dt {
+    DOCKER_NAME="dcae-dt"
+    echo "docker run ${DOCKER_NAME}..."
+    if [ ${LOCAL} == false ]; then
+        docker pull "${PREFIX}/${DOCKER_NAME}:${RELEASE}"
+    fi
+    docker run ${DOCKER_RUN_MODE_FG} --name ${DOCKER_NAME} --env HOST_IP="${IP}" --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD}  --volume "${WORKSPACE}/data/logs/DCAE-DT/:/var/lib/jetty/logs" --volume "${WORKSPACE}/data/environments:/var/lib/jetty/chef-solo/environments/" --publish 9446:9446 --publish 8186:8186 "${PREFIX}/${DOCKER_NAME}:${RELEASE}" /bin/sh
+    command_exit_status $? ${DOCKER_NAME}
+    echo "please wait while ${DOCKER_NAME^^} is starting....."
+    monitor_docker ${DOCKER_NAME}
+
+}
+#
 
 
 #
@@ -313,11 +376,12 @@ done
 
 
 #Prefix those with WORKSPACE so it can be set to something other then /opt
-[ -f ${WORKSPACE}/opt/config/env_name.txt ] && DEP_ENV=$(cat ${WORKSPACE}/opt/config/env_name.txt) || echo ${DEP_ENV}
-[ -f ${WORKSPACE}/opt/config/nexus_username.txt ] && NEXUS_USERNAME=$(cat ${WORKSPACE}/opt/config/nexus_username.txt)    || NEXUS_USERNAME=release
-[ -f ${WORKSPACE}/opt/config/nexus_password.txt ] && NEXUS_PASSWD=$(cat ${WORKSPACE}/opt/config/nexus_password.txt)      || NEXUS_PASSWD=sfWU3DFVdBr7GVxB85mTYgAW
-[ -f ${WORKSPACE}/opt/config/nexus_docker_repo.txt ] && NEXUS_DOCKER_REPO=$(cat ${WORKSPACE}/opt/config/nexus_docker_repo.txt) || NEXUS_DOCKER_REPO=nexus3.onap.org:${PORT}
-[ -f ${WORKSPACE}/opt/config/nexus_username.txt ] && docker login -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWD} ${NEXUS_DOCKER_REPO}
+[ -f "${WORKSPACE}/opt/config/env_name.txt" ] && DEP_ENV=$(cat "${WORKSPACE}/opt/config/env_name.txt") || echo "${DEP_ENV}"
+[ -f "${WORKSPACE}/opt/config/nexus_username.txt" ] && NEXUS_USERNAME=$(cat "${WORKSPACE}/opt/config/nexus_username.txt")    || NEXUS_USERNAME="release"
+[ -f "${WORKSPACE}/opt/config/nexus_password.txt" ] && NEXUS_PASSWD=$(cat "${WORKSPACE}/opt/config/nexus_password.txt")      || NEXUS_PASSWD="sfWU3DFVdBr7GVxB85mTYgAW"
+[ -f "${WORKSPACE}/opt/config/nexus_docker_repo.txt" ] && NEXUS_DOCKER_REPO=$(cat "${WORKSPACE}/opt/config/nexus_docker_repo.txt") || NEXUS_DOCKER_REPO="nexus3.onap.org:${PORT}"
+[ -f "${WORKSPACE}/opt/config/nexus_username.txt" ] && docker login -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWD} ${NEXUS_DOCKER_REPO}
+
 
 
 export IP=`ip route get 8.8.8.8 | awk '/src/{ print $7 }'`
@@ -327,7 +391,7 @@ if [[ "$OSTYPE" == "darwin"* ]]; then
 fi
 export PREFIX=${NEXUS_DOCKER_REPO}'/onap'
 
-if [ ${LOCAL} = true ]; then
+if [ ${LOCAL} == true ]; then
     PREFIX='onap'
 fi
 
@@ -336,12 +400,14 @@ echo ""
 if [ -z "${DOCKER}" ]; then
     cleanup all
     dir_perms
+    dcae-tosca
     dcae-be
     dcae-tools
     dcae-fe
+    dcae-dt
     healthCheck
 else
-    cleanup ${DOCKER}
+    cleanup "${DOCKER}"
     dir_perms
     ${DOCKER}
     healthCheck