Merge "Update AR version bump jobs to 4c-16g"
[releng/builder.git] / jjb / integration / common-functions.sh
1 #!/bin/bash
2
3 echo "common-functions.sh is being sourced"
4
5 BUNDLEFOLDER=$1
6
7 # Basic controller configuration settings
8 export MAVENCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.url.mvn.cfg
9 export FEATURESCONF=/tmp/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg
10 export CUSTOMPROP=/tmp/${BUNDLEFOLDER}/etc/custom.properties
11 export LOGCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.logging.cfg
12 export MEMCONF=/tmp/${BUNDLEFOLDER}/bin/setenv
13 export CONTROLLERMEM="2048m"
14
15 # Cluster specific configuration settings
16 export AKKACONF=/tmp/${BUNDLEFOLDER}/configuration/initial/akka.conf
17 export MODULESCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/modules.conf
18 export MODULESHARDSCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/module-shards.conf
19
20 function print_common_env() {
21     cat << EOF
22 common-functions environment:
23 MAVENCONF: ${MAVENCONF}
24 FEATURESCONF: ${FEATURESCONF}
25 CUSTOMPROP: ${CUSTOMPROP}
26 LOGCONF: ${LOGCONF}
27 MEMCONF: ${MEMCONF}
28 CONTROLLERMEM: ${CONTROLLERMEM}
29 AKKACONF: ${AKKACONF}
30 MODULESCONF: ${MODULESCONF}
31 MODULESHARDSCONF: ${MODULESHARDSCONF}
32
33 EOF
34 }
35 print_common_env
36
37 # Setup JAVA_HOME and MAX_MEM Value in ODL startup config file
38 function set_java_vars() {
39     local JAVA_HOME=$1
40     local CONTROLLERMEM=$2
41
42     echo "Configure java home and max memory..."
43     sed -ie 's%^# export JAVA_HOME%export JAVA_HOME=${JAVA_HOME:-'"${JAVA_HOME}"'}%g' ${MEMCONF}
44     sed -ie 's/JAVA_MAX_MEM="2048m"/JAVA_MAX_MEM='"${CONTROLLERMEM}"'/g' ${MEMCONF}
45     echo "cat ${MEMCONF}"
46     cat ${MEMCONF}
47
48     echo "Set Java version"
49     sudo /usr/sbin/alternatives --install /usr/bin/java java ${JAVA_HOME}/bin/java 1
50     sudo /usr/sbin/alternatives --set java ${JAVA_HOME}/bin/java
51     echo "JDK default version ..."
52     java -version
53
54     echo "Set JAVA_HOME"
55     export JAVA_HOME="${JAVA_HOME}"
56     # shellcheck disable=SC2037
57     JAVA_RESOLVED=$(readlink -e "${JAVA_HOME}/bin/java")
58     echo "Java binary pointed at by JAVA_HOME: ${JAVA_RESOLVED}"
59 } # set_java_vars()
60
61 # shellcheck disable=SC2034
62 # foo appears unused. Verify it or export it.
63 function configure_karaf_log() {
64     local -r karaf_version=$1
65     local -r controllerdebugmap=$2
66     local logapi=log4j
67
68     # Check what the logging.cfg file is using for the logging api: log4j or log4j2
69     grep "log4j2" ${LOGCONF}
70     if [ $? -eq 0 ]; then
71         logapi=log4j2
72     fi
73
74     echo "Configuring the karaf log... karaf_version: ${karaf_version}, logapi: ${logapi}"
75     if [ "${logapi}" == "log4j2" ]; then
76         # FIXME: Make log size limit configurable from build parameter.
77         sed -ie 's/log4j2.appender.rolling.policies.size.size = 16MB/log4j2.appender.rolling.policies.size.size = 1GB/g' ${LOGCONF}
78         orgmodule="org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver"
79         orgmodule_="${orgmodule//./_}"
80         echo "${logapi}.logger.${orgmodule_}.name = WARN" >> ${LOGCONF}
81         echo "${logapi}.logger.${orgmodule_}.level = WARN" >> ${LOGCONF}
82     else
83         sed -ie 's/log4j.appender.out.maxBackupIndex=10/log4j.appender.out.maxBackupIndex=1/g' ${LOGCONF}
84         # FIXME: Make log size limit configurable from build parameter.
85         sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=30GB/g' ${LOGCONF}
86         echo "${logapi}.logger.org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver = WARN" >> ${LOGCONF}
87     fi
88
89     # Add custom logging levels
90     # CONTROLLERDEBUGMAP is expected to be a key:value map of space separated values like "module:level module2:level2"
91     # where module is abbreviated and does not include "org.opendaylight."
92     unset IFS
93     echo "controllerdebugmap: ${controllerdebugmap}"
94     if [ -n "${controllerdebugmap}" ]; then
95         for kv in ${controllerdebugmap}; do
96             module="${kv%%:*}"
97             level="${kv#*:}"
98             echo "module: $module, level: $level"
99             # shellcheck disable=SC2157
100             if [ -n "${module}" ] && [ -n "${level}" ]; then
101                 orgmodule="org.opendaylight.${module}"
102                 if [ "${logapi}" == "log4j2" ]; then
103                     orgmodule_="${orgmodule//./_}"
104                     echo "${logapi}.logger.${orgmodule_}.name = ${orgmodule}" >> ${LOGCONF}
105                     echo "${logapi}.logger.${orgmodule_}.level = ${level}" >> ${LOGCONF}
106                 else
107                     echo "${logapi}.logger.${orgmodule} = ${level}" >> ${LOGCONF}
108                 fi
109             fi
110         done
111     fi
112
113     echo "cat ${LOGCONF}"
114     cat ${LOGCONF}
115 } # function configure_karaf_log()