summaryrefslogtreecommitdiffstats
path: root/rulemgt-standalone/src/main/assembly/bin/run.sh
blob: 6594eaf3f47909abdb6713110ae91f3233bd6737 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/sh

#
# Copyright 2017-2020 ZTE Corporation.
#
# 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.
#

DIRNAME=`dirname $0`
RUNHOME=`cd $DIRNAME/; pwd`
echo @RUNHOME@ $RUNHOME

echo @JAVA_HOME@ $JAVA_HOME
JAVA="$JAVA_HOME/bin/java"
echo @JAVA@ $JAVA
main_path=$RUNHOME/..
cd $main_path
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

class_path="$main_path/lib/*"
echo @class_path@ $class_path

if [ -z ${JDBC_USERNAME} ]; then
    export JDBC_USERNAME=holmes
    echo "No user name is specified for the database. Use the default value \"$JDBC_USERNAME\"."
fi

if [ -z ${JDBC_PASSWORD} ]; then
    export JDBC_PASSWORD=holmespwd
    echo "No password is specified for the database. Use the default value \"$JDBC_PASSWORD\"."
fi

if [ -z ${DB_NAME} ]; then
    export DB_NAME=holmes
    echo "No database is name is specified. Use the default value \"$DB_NAME\"."
fi

# if deployed using helm, use the helm-generated configuration file.
if [ -d /opt/hrmconfig ]; then
    cp /opt/hrmconfig/rulemgt.yml "$main_path/conf/rulemgt.yml"
else
    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"
fi

export SERVICE_IP=`hostname -i`
echo SERVICE_IP=${SERVICE_IP}

if [ ! -z ${TESTING} ] && [ ${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} ] && [ `expr index $URL_JDBC :` != 0 ]; then
    export DB_PORT="${URL_JDBC##*:}"
fi
echo DB_PORT=$DB_PORT

if [ -z ${ENABLE_ENCRYPT} ]; then
    export ENABLE_ENCRYPT=true
fi
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"
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"
fi


${RUNHOME}/initDB.sh "$JDBC_USERNAME" "$JDBC_PASSWORD" "$DB_NAME" "$DB_PORT" "${URL_JDBC%:*}"


#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 [ ${ENABLE_ENCRYPT} = true ]; 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"