Merge "[COMMON] Fix condition equality bashisms"
[oom.git] / kubernetes / appc / resources / config / appc / opt / onap / appc / bin / startODL.sh
index 6e53ed1..2fd6db1 100755 (executable)
@@ -1,10 +1,12 @@
 #!/bin/bash -x
+{{/*
 
 ###
 # ============LICENSE_START=======================================================
 # APPC
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 Amdocs,Bell Canada
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # This script takes care of installing the SDNC & APPC platform components
 #  if not already installed, and starts the APPC Docker Container
 #
+#set -x
+*/}}
 
-function enable_odl_cluster(){
+enable_odl_cluster () {
   if [ -z $APPC_REPLICAS ]; then
      echo "APPC_REPLICAS is not configured in Env field"
      exit
@@ -49,71 +53,70 @@ function enable_odl_cluster(){
 }
 
 ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
-ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-admin}
 SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk}
 APPC_HOME=${APPC_HOME:-/opt/onap/appc}
 SLEEP_TIME=${SLEEP_TIME:-120}
-MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
+MYSQL_PASSWD=${MYSQL_ROOT_PASSWORD}
 ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false}
-ENABLE_AAF=${ENABLE_AAF:-false}
-AAF_EXT_IP=${AAF_EXT_IP:-{{.Values.config.aafExtIP}}}
-AAF_EXT_FQDN=${AAF_EXT_FQDN:-{{.Values.config.aafExtFQDN}}}
-
-appcInstallStartTime=$(date +%s)
-
-#
-# Adding the DMAAP_TOPIC_ENV variable into APPC-ASDC-LISTENER properties
-#
-DMAAP_TOPIC_ENV=${DMAAP_TOPIC_ENV}
-
-if [ -z "$DMAAP_TOPIC_ENV" ]
-        then
-        echo "DMAAP_TOPIC_ENV shell variable is empty. Adding default value OS-ETE-DFW"
-                DMAAP_TOPIC_ENV="OS-ETE-DFW"
-        else
-                echo "DMAAP_TOPIC_ENV shell variable exists and it's $DMAAP_TOPIC_ENV"
-fi
-
-echo "Adding a value to property appc.asdc.env in appc.properties for appc-asdc-listener feature"
-echo "" >> $APPC_HOME/data/properties/appc.properties
-echo "appc.asdc.env=$DMAAP_TOPIC_ENV" >> $APPC_HOME/data/properties/appc.properties
-echo "" >> $APPC_HOME/data/properties/appc.properties
+ENABLE_AAF=${ENABLE_AAF:-true}
+DBINIT_DIR=${DBINIT_DIR:-/opt/opendaylight/current/daexim}
 
 #
 # Wait for database to init properly
 #
-echo "Waiting for mysql"
-until mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p{{.Values.config.dbRootPassword}} mysql &> /dev/null
+echo "Waiting for mariadbgalera"
+until mysql -h {{.Values.config.mariadbGaleraSVCName}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD}  mysql &> /dev/null
 do
   printf "."
   sleep 1
 done
-echo -e "\nmysql ready"
+echo -e "\nmariadbgalera ready"
 
-if [ ! -f ${SDNC_HOME}/.installed ]
+if [ ! -d ${DBINIT_DIR} ]
+then
+    mkdir -p ${DBINIT_DIR}
+fi
+
+if [ ! -f ${DBINIT_DIR}/.installed ]
 then
-        echo "Installing SDNC database"
-        ${SDNC_HOME}/bin/installSdncDb.sh
+        sdnc_db_exists=$(mysql -h {{.Values.config.mariadbGaleraSVCName}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD} mysql <<-END
+show databases like 'sdnctl';
+END
+)
+        if [ "x${sdnc_db_exists}" = "x" ]
+        then
+            echo "Installing SDNC database"
+            ${SDNC_HOME}/bin/installSdncDb.sh
+
+            appc_db_exists=$(mysql -h {{.Values.config.mariadbGaleraSVCName}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD} mysql <<-END
+show databases like 'appcctl';
+END
+)
+            if [ "x${appc_db_exists}" = "x" ]
+            then
+              echo "Installing APPC database"
+              ${APPC_HOME}/bin/installAppcDb.sh
+            fi
+        else
+            sleep 30
+        fi
+
+        echo "Installed at `date`" > ${DBINIT_DIR}/.installed
+fi
 
-        echo "Installing APPC database"
-        ${APPC_HOME}/bin/installAppcDb.sh
 
+if [ ! -f ${SDNC_HOME}/.installed ]
+then
         echo "Installing ODL Host Key"
         ${SDNC_HOME}/bin/installOdlHostKey.sh
 
-        echo "Starting OpenDaylight"
-        ${ODL_HOME}/bin/start
+#        echo "Copying a working version of the logging configuration into the opendaylight etc folder"
+#        cp ${APPC_HOME}/data/org.ops4j.pax.logging.cfg ${ODL_HOME}/etc/org.ops4j.pax.logging.cfg
+
 
         echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize"
         sleep ${SLEEP_TIME}
 
-        echo "Copying a working version of the logging configuration into the opendaylight etc folder"
-        cp ${APPC_HOME}/data/org.ops4j.pax.logging.cfg ${ODL_HOME}/etc/org.ops4j.pax.logging.cfg
-        echo "Copying a new version of aaf cadi shiro into the opendaylight deploy folder"
-        cp ${APPC_HOME}/data/aaf-shiro-aafrealm-osgi-bundle.jar ${ODL_HOME}/deploy/aaf-shiro-aafrealm-osgi-bundle.jar
-
-        echo "Installing SDNC platform features"
-        ${SDNC_HOME}/bin/installFeatures.sh
 
         if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ]
         then
@@ -121,68 +124,77 @@ then
                 ${SDNC_HOME}/svclogic/bin/install.sh
         fi
 
-        if $ENABLE_ODL_CLUSTER ; then echo "Installing Opendaylight cluster features" ; ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering ; ${ODL_HOME}/bin/client feature:install odl-jolokia ; fi
-
-        echo "Installing APPC platform features"
-        ${APPC_HOME}/bin/installFeatures.sh
-
-        if [ -x ${APPC_HOME}/svclogic/bin/install.sh ]
-        then
-                echo "Installing APPC DGs using platform-logic"
-                ${APPC_HOME}/svclogic/bin/install.sh
-        fi
-
         if [ -x ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh ]
         then
                 echo "Installing APPC JSON DGs converted to XML using dg-loader"
                 ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh
         fi
 
-        if $ENABLE_ODL_CLUSTER ; then enable_odl_cluster ; fi
-
-        echo "Adding a property system.properties for AAF cadi.properties location"
-        echo "" >> ${ODL_HOME}/etc/system.properties
-        echo "cadi_prop_files=${APPC_HOME}/data/properties/cadi.properties" >> ${ODL_HOME}/etc/system.properties
-        echo "" >> ${ODL_HOME}/etc/system.properties
+        if $ENABLE_ODL_CLUSTER
+        then
+                echo "Enabling Opendaylight cluster features"
+                enable_odl_cluster
+        fi
 
         echo "Copying the aaa shiro configuration into opendaylight"
+        mkdir -p ${ODL_HOME}/etc/opendaylight/datastore/initial/config
         if $ENABLE_AAF
         then
-             echo "${AAF_EXT_IP} ${AAF_EXT_FQDN}" >> /etc/hosts
              cp ${APPC_HOME}/data/properties/aaa-app-config.xml ${ODL_HOME}/etc/opendaylight/datastore/initial/config/aaa-app-config.xml
-        else
-             cp ${APPC_HOME}/data/aaa-app-config.xml ${ODL_HOME}/etc/opendaylight/datastore/initial/config/aaa-app-config.xml
         fi
 
-        echo "Restarting OpenDaylight"
-        ${ODL_HOME}/bin/stop
-        checkRun () {
-                running=0
-                while read a b c d e f g h
-                do
-                if [ "$h" == "/bin/sh /opt/opendaylight/bin/karaf server" ]
-                then
-                     running=1
-                fi
-                done < <(ps -eaf)
-                echo $running
-        }
-
-        while [ $( checkRun ) == 1 ]
-        do
-                echo "Karaf is still running, waiting..."
-                sleep 5s
-        done
-        echo "Karaf process has stopped"
-        sleep 10s
-        echo "Installed at `date`" > ${SDNC_HOME}/.installed
 fi
 
-        appcInstallEndTime=$(date +%s)
-        echo "Total Appc install took $(expr $appcInstallEndTime - $appcInstallStartTime) seconds"
+# Move journal and snapshots directory to persistent storage
+
+hostdir=${ODL_HOME}/daexim/$(hostname -s)
+if [ ! -d $hostdir ]
+then
+    mkdir -p $hostdir
+    if [ -d ${ODL_HOME}/journal ]
+    then
+        mv ${ODL_HOME}/journal ${hostdir}
+    else
+        mkdir ${hostdir}/journal
+    fi
+    if [ -d ${ODL_HOME}/snapshots ]
+    then
+        mv ${ODL_HOME}/snapshots ${hostdir}
+    else
+        mkdir ${hostdir}/snapshots
+    fi
+fi
+
+ln -s ${hostdir}/journal ${ODL_HOME}/journal
+ln -s ${hostdir}/snapshots ${ODL_HOME}/snapshots
 
 echo "Starting cdt-proxy-service jar, logging to ${APPC_HOME}/cdt-proxy-service/jar.log"
 java -jar ${APPC_HOME}/cdt-proxy-service/cdt-proxy-service.jar > ${APPC_HOME}/cdt-proxy-service/jar.log &
 
-exec ${ODL_HOME}/bin/karaf server
+echo "Starting dmaap-event-service jar, logging to ${APPC_HOME}/dmaap-event-service/jar.log"
+java -jar -Dorg_onap_appc_bootstrap_path=/opt/onap/appc/data/properties -Dorg_onap_appc_bootstrap_file=appc.properties ${APPC_HOME}/dmaap-event-service/dmaap-event-service.jar > ${APPC_HOME}/dmaap-event-service/jar.log &
+
+echo "Adding a property system.properties for AAF cadi.properties location"
+echo "" >> ${ODL_HOME}/etc/system.properties
+echo "cadi_prop_files=${APPC_HOME}/data/properties/cadi.properties" >> ${ODL_HOME}/etc/system.properties
+echo "" >> ${ODL_HOME}/etc/system.properties
+
+echo "Adding a value to property appc.asdc.env in appc.properties for appc-asdc-listener feature"
+echo "" >> $APPC_HOME/data/properties/appc.properties
+echo "appc.asdc.env=$DMAAP_TOPIC_ENV" >> $APPC_HOME/data/properties/appc.properties
+echo "" >> $APPC_HOME/data/properties/appc.properties
+
+echo "Copying jetty, keystore for https into opendalight"
+cp ${APPC_HOME}/data/jetty.xml ${ODL_HOME}/etc/jetty.xml
+cp ${APPC_HOME}/data/keystore ${ODL_HOME}/etc/keystore
+cp ${APPC_HOME}/data/custom.properties ${ODL_HOME}/etc/custom.properties
 
+echo "Copying a working version of the logging configuration into the opendaylight etc folder"
+cp ${APPC_HOME}/data/org.ops4j.pax.logging.cfg ${ODL_HOME}/etc/org.ops4j.pax.logging.cfg
+
+ODL_BOOT_FEATURES_EXTRA="odl-netconf-connector,odl-restconf-noauth,odl-netconf-clustered-topology,odl-mdsal-clustering"
+sed -i -e "\|featuresBoot[^a-zA-Z]|s|$|,${ODL_BOOT_FEATURES_EXTRA}|"  $ODL_HOME/etc/org.apache.karaf.features.cfg
+
+exec ${APPC_HOME}/bin/dockerInstall.sh &
+echo "Starting OpenDaylight"
+exec ${ODL_HOME}/bin/karaf server