bugfix - nginx fails to start up
[holmes/rule-management.git] / rulemgt-standalone / src / main / assembly / bin / run.sh
index fbc7e21..873951f 100644 (file)
@@ -1,7 +1,7 @@
-#!/bin/sh
+#!/usr/bin/env bash
 
 #
-# Copyright 2017-2020 ZTE Corporation.
+# Copyright 2017-2022 ZTE Corporation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@ JAVA="$JAVA_HOME/bin/java"
 echo @JAVA@ $JAVA
 main_path=$RUNHOME/..
 cd $main_path
-JAVA_OPTS="-Xms50m -Xmx128m"
+JAVA_OPTS="-Xms256m -Xmx1g"
 port=9201
 #JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=*:$port,server=y,suspend=n"
 echo @JAVA_OPTS@ $JAVA_OPTS
@@ -48,28 +48,30 @@ if [ -z ${DB_NAME} ]; then
     echo "No database is name is specified. Use the default value \"$DB_NAME\"."
 fi
 
-sed -i "s|user:.*|user: $JDBC_USERNAME|" "$main_path/conf/rulemgt.yml"
-sed -i "s|password:.*|password: $JDBC_PASSWORD|" "$main_path/conf/rulemgt.yml"
-sed -i "s|url:.*|url: jdbc:postgresql://$URL_JDBC/$DB_NAME|" "$main_path/conf/rulemgt.yml"
-sed -i "s|msbServerAddr:.*|msbServerAddr: http://$MSB_ADDR|" "$main_path/conf/rulemgt.yml"
-
-export SERVICE_IP=`hostname -i`
-echo SERVICE_IP=${SERVICE_IP}
-
-if [ ! -z ${TESTING} -a ${TESTING} = 1 ]; then
-    if [ ! -z ${HOST_IP} ]; then
-        export HOSTNAME=${HOST_IP}:9101
-    else
-        export HOSTNAME=${SERVICE_IP}:9101
-    fi
-fi
-
 export DB_PORT=5432
-if [ ! -z ${URL_JDBC}  -a `expr index $URL_JDBC :` != 0 ]; then
+if [ ! -z ${URL_JDBC} ] && [ `expr index $URL_JDBC :` != 0 ]; then
     export DB_PORT="${URL_JDBC##*:}"
 fi
 echo DB_PORT=$DB_PORT
 
+# if deployed using helm, use the helm-generated configuration file.
+if [ -d /opt/hrmconfig ]; then
+    cp /opt/hrmconfig/application.yaml "$main_path/conf/application.yaml"
+else
+    sed -i "s|username:.*|username: $JDBC_USERNAME|" "$main_path/conf/application.yaml"
+    sed -i "s|password:.*|password: $JDBC_PASSWORD|" "$main_path/conf/application.yaml"
+    sed -i "s|url:.*|url: jdbc:postgresql://$URL_JDBC:$DB_PORT/$DB_NAME|" "$main_path/conf/application.yaml"
+fi
+
+export SERVICE_IP=`hostname -i | awk '{print $1}'`
+echo SERVICE_IP=${SERVICE_IP}
+
+if [ ! -z ${HOST_IP} ]; then
+    export HOSTNAME=${HOST_IP}:9101
+else
+    export HOSTNAME=${SERVICE_IP}:9101
+fi
+
 if [ -z ${ENABLE_ENCRYPT} ]; then
     export ENABLE_ENCRYPT=true
 fi
@@ -77,40 +79,53 @@ echo ENABLE_ENCRYPT=${ENABLE_ENCRYPT}
 
 KEY_PATH="$main_path/conf/holmes.keystore"
 KEY_PASSWORD="holmes"
+
+if [ -f "/opt/app/osaaf/local/org.onap.holmes-rule-mgmt.p12" ]; then
+    KEY_PATH="/opt/app/osaaf/local/org.onap.holmes-rule-mgmt.p12"
+    KEY_PASSWORD=`head -n1 "/opt/app/osaaf/local/mycreds.prop" | cut -d= -f2`
+fi
+
+echo "KEY_PATH=$KEY_PATH"
+echo "KEY_PASS=$KEY_PASSWORD"
+
 #HTTPS Configurations
-sed -i "s|keyStorePath:.*|keyStorePath: $KEY_PATH|" "$main_path/conf/rulemgt.yml"
-sed -i "s|keyStorePassword:.*|keyStorePassword: $KEY_PASSWORD|" "$main_path/conf/rulemgt.yml"
-
-if [ ${ENABLE_ENCRYPT} = true ]; then
-    sed -i "s|type:\s*https\?$|type: https|" "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?keyStorePath|keyStorePath|" "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?keyStorePassword|keyStorePassword|" "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?validateCerts|validateCerts|" "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?validatePeers|validatePeers|" "$main_path/conf/rulemgt.yml"
+sed -i "s|key-store:.*|key-store: $KEY_PATH|" "$main_path/conf/application.yaml"
+sed -i "s|key-store-password:.*|key-store-password: $KEY_PASSWORD|" "$main_path/conf/application.yaml"
+
+if [ "${ENABLE_ENCRYPT}"x = "true"x ]; then
+    sed -i "s|#\?ssl:|ssl:|" "$main_path/conf/application.yaml"
+    sed -i "s|#\?key-store|key-store|" "$main_path/conf/application.yaml"
+    sed -i "s|#\?key-store-password|key-store-password|" "$main_path/conf/application.yaml"
+    sed -i "s|#\?key-store-type|key-store-type|" "$main_path/conf/application.yaml"
 else
-    sed -i 's|type:\s*https\?$|type: http|' "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?keyStorePath|#keyStorePath|" "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?keyStorePassword|#keyStorePassword|" "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?validateCerts|#validateCerts|" "$main_path/conf/rulemgt.yml"
-    sed -i "s|#\?validatePeers|#validatePeers|" "$main_path/conf/rulemgt.yml"
+    sed -i 's|#\?ssl:|#ssl:|' "$main_path/conf/application.yaml"
+    sed -i "s|#\?key-store|#key-store|" "$main_path/conf/application.yaml"
+    sed -i "s|#\?key-store-password|#key-store-password|" "$main_path/conf/application.yaml"
+    sed -i "s|#\?key-store-type|#key-store-type|" "$main_path/conf/application.yaml"
 fi
 
+${RUNHOME}/initDB.sh "$JDBC_USERNAME" "$JDBC_PASSWORD" "$DB_NAME" "$DB_PORT" "${URL_JDBC%:*}"
 
-./bin/initDB.sh $JDBC_USERNAME $JDBC_PASSWORD $DB_NAME $DB_PORT "${URL_JDBC%:*}"
 
+if [ -f "/opt/app/osaaf/local/org.onap.holmes-rule-mgmt.crt" ]; then
+    sed -i "s|/etc/ssl/certs/holmes-frontend-selfsigned.crt|/opt/app/osaaf/local/org.onap.holmes-rule-mgmt.crt|" "/etc/nginx/conf.d/nginx-https.conf"
+    sed -i "s|/etc/ssl/private/holmes-frontend.key|/opt/app/osaaf/local/org.onap.holmes-rule-mgmt.key|" "/etc/nginx/conf.d/nginx-https.conf"
+fi
 
-#Register the fronten to MSB
-#body='{"serviceName":"holmes","version":"v1","url":"/iui/holmes","nodes":[{"ip":"host_ip","port":"9104","lb_server_params":"","checkType":"","checkUrl":"","checkInterval":"","checkTimeOut":"","ttl":"","ha_role":""}],"protocol":"UI","visualRange":"0|1","lb_policy":"","publish_port":"","namespace":"","network_plane_type":"","host":"","path":"","labels":[],"metadata":[]}'
-#msg_body=${body/host_ip/"${HOSTNAME%:*}"}
-#curl -X POST -H "Content-Type: application/json" -d ${msg_body} http://${MSB_ADDR}/api/msdiscover/v1/services?is_manual=true
-#echo Registered UI to MSB.
-
+if [ "$MSB_IAG_SERVICE_PORT"x = "443"x ]; then
+    sed -i "s|http://msb-iag.onap|https://$MSB_IAG_SERVICE_HOST:$MSB_IAG_SERVICE_PORT|g" /etc/nginx/conf.d/nginx-http*.conf
+else
+    sed -i "s|http://msb-iag.onap|http://$MSB_IAG_SERVICE_HOST:$MSB_IAG_SERVICE_PORT|g" /etc/nginx/conf.d/nginx-http*.conf
+fi
 
-if [ ${ENABLE_ENCRYPT} = true ]; then
+if [ "${ENABLE_ENCRYPT}"x = "true"x ]; then
     nginx -c /etc/nginx/conf.d/nginx-https.conf
 else
     nginx -c /etc/nginx/conf.d/nginx-http.conf
 fi
 echo nginx started.
 
-"$JAVA" $JAVA_OPTS -classpath "$class_path" org.onap.holmes.rulemgt.RuleActiveApp server "$main_path/conf/rulemgt.yml"
+cat "$main_path/conf/application.yaml"
+
+JAR=`ls -lt $main_path/lib | grep -e "holmes-rulemgt-.*jar$" | awk '{print $9}'`
+"$JAVA" $JAVA_OPTS -jar "$main_path/lib/$JAR" -classpath "$class_path" --spring.config.location="$main_path/conf/application.yaml"