Remove diffutils dependency
[aai/traversal.git] / aai-traversal / src / main / resources / docker / docker-entrypoint.sh
1 #
2 # ============LICENSE_START=======================================================
3 # org.onap.aai
4 # ================================================================================
5 # Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 # ================================================================================
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #    http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 # ============LICENSE_END=========================================================
19 #
20 # ECOMP is a trademark and service mark of AT&T Intellectual Property.
21 #
22
23 # Set the current path to be the application home and common libs home
24 export APP_HOME=$(pwd);
25 COMMONLIBS_HOME="/opt/app/commonLibs";
26
27 export CHEF_CONFIG_REPO=${CHEF_CONFIG_REPO:-aai-config};
28 export CHEF_GIT_URL=${CHEF_GIT_URL:-http://gerrit.onap.org/r/aai};
29 export CHEF_CONFIG_GIT_URL=${CHEF_CONFIG_GIT_URL:-$CHEF_GIT_URL};
30 export CHEF_DATA_GIT_URL=${CHEF_DATA_GIT_URL:-$CHEF_GIT_URL};
31
32 export RESOURCES_HOSTNAME=${RESOURCES_HOSTNAME:-aai-resources.api.simpledemo.onap.org};
33 export RESOURCES_PORT=${RESOURCES_PORT:-8447};
34
35 USER_ID=${LOCAL_USER_ID:-9001}
36
37 if [ $(cat /etc/passwd | grep aaiadmin | wc -l) -eq 0 ]; then 
38         useradd --shell=/bin/bash -u ${USER_ID} -o -c "" -m aaiadmin || {
39                 echo "Unable to create the user id for ${USER_ID}";
40                 exit 1;
41         }
42 fi;
43
44 chown -R aaiadmin:aaiadmin /opt/app /var/chef /opt/aai/logroot
45
46 gosu aaiadmin ./init-chef.sh || {
47         echo "Unable to run init chef script, please check logs";
48         exit 1;
49 }
50
51 httpPort=8086;
52 httpsPort=8446;
53
54 AAI_CORE_JAR=$(ls ${APP_HOME}/extJars/aai-core*.jar);
55
56 # Get the basename of the aai-core-X.Y.Z-SNAPSHOT.jar
57 # Then extract the X.Y.Z-SNAPSHOT part
58 AAI_CORE_VERSION=$(basename ${AAI_CORE_JAR} | grep -o '[0-9]*\.[0-9]*\.[0-9]*[^.]*');
59
60
61 cd ${APP_HOME};
62
63 # If the variable DISABLE_UPDATE_QUERY is empty
64 # then the update query date shell script will be ran
65 # This makes it configurable to run update query or not
66
67 if [ -z ${DISABLE_UPDATE_QUERY} ]; then
68
69         while ! nc -z ${RESOURCES_HOSTNAME} ${RESOURCES_PORT} ;
70         do
71                 echo "Waiting for resources to be up";
72                 sleep 5;
73         done
74
75         UPDATE_QUERY_RAN_FILE="updateQueryRan.txt";
76
77         AAICONFIG_FILE=/opt/app/aai-traversal/bundleconfig/etc/appprops/aaiconfig.properties;
78
79         if [ ! -f ${UPDATE_QUERY_RAN_FILE} ]; then
80                 OLD_RESOURCES_URL=$(grep -o "^aai.server.url=.*" ${AAICONFIG_FILE} | cut -d"=" -f2-);
81                 TEMP_RESOURCES_URL=https://${RESOURCES_HOSTNAME}:${RESOURCES_PORT}/aai/v11/;
82                 sed -i "s%^aai.server.url=.*$%aai.server.url=${TEMP_RESOURCES_URL}%g" ${AAICONFIG_FILE};
83                 gosu aaiadmin /opt/app/aai-traversal/bin/install/updateQueryData.sh
84                 touch ${UPDATE_QUERY_RAN_FILE};
85                 sed -i "s%^aai.server.url=.*$%aai.server.url=${OLD_RESOURCES_URL}%g" ${AAICONFIG_FILE};
86         fi
87 fi
88
89 CP=${COMMONLIBS_HOME}/*;
90 CP="$CP":${APP_HOME}/etc;
91 CP="$CP":${APP_HOME}/lib/*;
92 CP="$CP":${APP_HOME}/extJars/logback-access-1.1.7.jar;
93 CP="$CP":${APP_HOME}/extJars/logback-core-1.1.7.jar;
94 CP="$CP":${AAI_CORE_JAR};
95
96 # You can add additional jvm options by adding environment variable JVM_PRE_OPTS
97 # If you need to add more jvm options at the end then you can use JVM_POST_OPTS
98 JVM_OPTS="${JVM_PRE_OPTS} ${JVM_OPTS}";
99 JVM_OPTS="${JVM_OPTS} -server -XX:NewSize=512m -XX:MaxNewSize=512m";
100 JVM_OPTS="${JVM_OPTS} -XX:SurvivorRatio=8";
101 JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC -verbose:gc -XX:+UseParNewGC";
102 JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled";
103 JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC -XX:-UseBiasedLocking";
104 JVM_OPTS="${JVM_OPTS} -XX:ParallelGCThreads=4";
105 JVM_OPTS="${JVM_OPTS} -XX:LargePageSizeInBytes=128m ";
106 JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails -XX:+PrintGCTimeStamps";
107 JVM_OPTS="${JVM_OPTS} -Xloggc:${APP_HOME}/logs/gc/graph-query_gc.log";
108 JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError";
109 JVM_OPTS="${JVM_OPTS} ${JVM_POST_OPTS}";
110
111 # You can add additional java options by adding environment variable JAVA_PRE_OPTS
112 # If you need to add more jvm options at the end then you can use JAVA_POST_OPTS
113 JAVA_OPTS="${JAVA_PRE_OPTS} ${JAVA_OPTS}";
114 JAVA_OPTS="${JAVA_OPTS} -Dsun.net.inetaddr.ttl=180";
115 JAVA_OPTS="${JAVA_OPTS} -Dhttps.protocols=TLSv1.1,TLSv1.2";
116 JAVA_OPTS="${JAVA_OPTS} -DSOACLOUD_SERVICE_VERSION=1.0.1";
117 JAVA_OPTS="${JAVA_OPTS} -DAJSC_HOME=${APP_HOME}";
118 JAVA_OPTS="${JAVA_OPTS} -DAJSC_CONF_HOME=${APP_HOME}/bundleconfig";
119 JAVA_OPTS="${JAVA_OPTS} -DAJSC_SHARED_CONFIG=${APP_HOME}/bundleconfig";
120 JAVA_OPTS="${JAVA_OPTS} -DAFT_HOME=${APP_HOME}";
121 JAVA_OPTS="${JAVA_OPTS} -DAAI_CORE_VERSION=${AAI_CORE_VERSION}";
122 JAVA_OPTS="${JAVA_OPTS} -Daai-core.version=${AAI_CORE_VERSION}";
123 JAVA_OPTS="${JAVA_OPTS} -Dlogback.configurationFile=${APP_HOME}/bundleconfig/etc/logback.xml";
124 JAVA_OPTS="${JAVA_OPTS} ${JAVA_POST_OPTS}";
125
126 JAVA_ARGS="${JAVA_PRE_ARGS} ${JAVA_ARGS}";
127 JAVA_ARGS="${JAVA_ARGS} context=/";
128 JAVA_ARGS="${JAVA_ARGS} port=$httpPort";
129 JAVA_ARGS="${JAVA_ARGS} sslport=$httpsPort";
130 JAVA_ARGS="${JAVA_ARGS} ${JAVA_POST_ARGS}";
131
132 JAVA_CMD="exec gosu aaiadmin java";
133 # Run the following command as aai-admin using gosu and make that process main
134 ${JAVA_CMD} -cp ${CLASSPATH}:${CP} ${JVM_OPTS} ${JAVA_OPTS} com.att.ajsc.runner.Runner ${JAVA_ARGS} "$@"