3 echo "common-functions.sh is being sourced"
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"
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
20 function print_common_env() {
22 common-functions environment:
23 MAVENCONF: ${MAVENCONF}
24 FEATURESCONF: ${FEATURESCONF}
25 CUSTOMPROP: ${CUSTOMPROP}
28 CONTROLLERMEM: ${CONTROLLERMEM}
30 MODULESCONF: ${MODULESCONF}
31 MODULESHARDSCONF: ${MODULESHARDSCONF}
37 # Setup JAVA_HOME and MAX_MEM Value in ODL startup config file
38 function set_java_vars() {
40 local -r controllermem=$2
43 echo "Configure\n java home: ${java_home}\n max memory: ${controllermem}\n memconf: ${memconf}"
45 sed -ie 's%^# export JAVA_HOME%export JAVA_HOME=${JAVA_HOME:-'"${java_home}"'}%g' ${memconf}
46 sed -ie 's/JAVA_MAX_MEM="2048m"/JAVA_MAX_MEM='"${controllermem}"'/g' ${memconf}
50 echo "Set Java version"
51 sudo /usr/sbin/alternatives --install /usr/bin/java java ${java_home}/bin/java 1
52 sudo /usr/sbin/alternatives --set java ${java_home}/bin/java
53 echo "JDK default version ..."
57 export JAVA_HOME="${java_home}"
58 # shellcheck disable=SC2037
59 JAVA_RESOLVED=$(readlink -e "${java_home}/bin/java")
60 echo "Java binary pointed at by JAVA_HOME: ${JAVA_RESOLVED}"
63 # shellcheck disable=SC2034
64 # foo appears unused. Verify it or export it.
65 function configure_karaf_log() {
66 local -r karaf_version=$1
67 local -r controllerdebugmap=$2
70 # Check what the logging.cfg file is using for the logging api: log4j or log4j2
71 grep "log4j2" ${LOGCONF}
76 echo "Configuring the karaf log... karaf_version: ${karaf_version}, logapi: ${logapi}"
77 if [ "${logapi}" == "log4j2" ]; then
78 # FIXME: Make log size limit configurable from build parameter.
79 sed -ie 's/log4j2.appender.rolling.policies.size.size = 16MB/log4j2.appender.rolling.policies.size.size = 1GB/g' ${LOGCONF}
80 orgmodule="org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver"
81 orgmodule_="${orgmodule//./_}"
82 echo "${logapi}.logger.${orgmodule_}.name = WARN" >> ${LOGCONF}
83 echo "${logapi}.logger.${orgmodule_}.level = WARN" >> ${LOGCONF}
85 sed -ie 's/log4j.appender.out.maxBackupIndex=10/log4j.appender.out.maxBackupIndex=1/g' ${LOGCONF}
86 # FIXME: Make log size limit configurable from build parameter.
87 sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=30GB/g' ${LOGCONF}
88 echo "${logapi}.logger.org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver = WARN" >> ${LOGCONF}
91 # Add custom logging levels
92 # CONTROLLERDEBUGMAP is expected to be a key:value map of space separated values like "module:level module2:level2"
93 # where module is abbreviated and does not include "org.opendaylight."
95 echo "controllerdebugmap: ${controllerdebugmap}"
96 if [ -n "${controllerdebugmap}" ]; then
97 for kv in ${controllerdebugmap}; do
100 echo "module: $module, level: $level"
101 # shellcheck disable=SC2157
102 if [ -n "${module}" ] && [ -n "${level}" ]; then
103 orgmodule="org.opendaylight.${module}"
104 if [ "${logapi}" == "log4j2" ]; then
105 orgmodule_="${orgmodule//./_}"
106 echo "${logapi}.logger.${orgmodule_}.name = ${orgmodule}" >> ${LOGCONF}
107 echo "${logapi}.logger.${orgmodule_}.level = ${level}" >> ${LOGCONF}
109 echo "${logapi}.logger.${orgmodule} = ${level}" >> ${LOGCONF}
115 echo "cat ${LOGCONF}"
117 } # function configure_karaf_log()
119 # convert commas in csv strings to spaces (ssv)
122 if [ -n "${csv}" ]; then
123 ssv=$(echo ${csv} | sed 's/,/ /g' | sed 's/\ \ */\ /g')