X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fintegration%2Fcommon-functions.sh;h=be80f1323f720e311c0b5c38dba8cafe5d776d9d;hb=004f298cb37ae7ab0c1f66746c9032c7960ffe4f;hp=2c466d220a3f8c8052102af87620be5fc1e0396d;hpb=e43a6789f6418c93fd586d5e677a888c44a88e71;p=releng%2Fbuilder.git diff --git a/jjb/integration/common-functions.sh b/jjb/integration/common-functions.sh index 2c466d220..be80f1323 100644 --- a/jjb/integration/common-functions.sh +++ b/jjb/integration/common-functions.sh @@ -21,6 +21,7 @@ function print_common_env() { cat << EOF common-functions environment: MAVENCONF: ${MAVENCONF} +ACTUALFEATURES: ${ACTUALFEATURES} FEATURESCONF: ${FEATURESCONF} CUSTOMPROP: ${CUSTOMPROP} LOGCONF: ${LOGCONF} @@ -29,6 +30,7 @@ CONTROLLERMEM: ${CONTROLLERMEM} AKKACONF: ${AKKACONF} MODULESCONF: ${MODULESCONF} MODULESHARDSCONF: ${MODULESHARDSCONF} +SUITES: ${SUITES} EOF } @@ -77,6 +79,9 @@ function configure_karaf_log() { echo "Configuring the karaf log... karaf_version: ${karaf_version}, logapi: ${logapi}" if [ "${logapi}" == "log4j2" ]; then # FIXME: Make log size limit configurable from build parameter. + # From Neon the default karaf file size is 64 MB + sed -ie 's/log4j2.appender.rolling.policies.size.size = 64MB/log4j2.appender.rolling.policies.size.size = 1GB/g' ${LOGCONF} + # Flourine still uses 16 MB sed -ie 's/log4j2.appender.rolling.policies.size.size = 16MB/log4j2.appender.rolling.policies.size.size = 1GB/g' ${LOGCONF} orgmodule="org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver" orgmodule_="${orgmodule//./_}" @@ -90,8 +95,9 @@ function configure_karaf_log() { fi # Add custom logging levels - # CONTROLLERDEBUGMAP is expected to be a key:value map of space separated values like "module:level module2:level2" - # where module is abbreviated and does not include "org.opendaylight." + # CONTROLLERDEBUGMAP is expected to be a key:value map of space separated + # values like "module:level module2:level2" where module is abbreviated and + # does not include "org.opendaylight." unset IFS echo "controllerdebugmap: ${controllerdebugmap}" if [ -n "${controllerdebugmap}" ]; then @@ -117,6 +123,73 @@ function configure_karaf_log() { cat ${LOGCONF} } # function configure_karaf_log() +function configure_karaf_log_for_apex() { + # TODO: add the extra steps to this function to do any extra work + # in this apex environment like we do in our standard environment. + # EX: log size, rollover, etc. + + # Modify ODL Log Levels, if needed, for new distribution. This will modify + # the control nodes hiera data which will be used during the puppet deploy + # CONTROLLERDEBUGMAP is expected to be a key:value map of space separated + # values like "module:level module2:level2" where module is abbreviated and + # does not include "org.opendaylight." + + local -r controller_ip=$1 + + unset IFS + # shellcheck disable=SC2153 + echo "CONTROLLERDEBUGMAP: ${CONTROLLERDEBUGMAP}" + if [ -n "${CONTROLLERDEBUGMAP}" ]; then + logging_config='\"opendaylight::log_levels\": {' + for kv in ${CONTROLLERDEBUGMAP}; do + module="${kv%%:*}" + level="${kv#*:}" + echo "module: $module, level: $level" + # shellcheck disable=SC2157 + if [ -n "${module}" ] && [ -n "${level}" ]; then + orgmodule="org.opendaylight.${module}" + logging_config="${logging_config} \\\"${orgmodule}\\\": \\\"${level}\\\"," + fi + done + # replace the trailing comma with a closing brace followed by trailing comma + logging_config=${logging_config%,}" }," + echo $logging_config + + # fine a sane line number to inject the custom logging json + lineno=$(ssh $OPENSTACK_CONTROL_NODE_1_IP "sudo grep -Fn 'opendaylight::log_mechanism' /etc/puppet/hieradata/service_configs.json" | awk -F: '{print $1}') + ssh $controller_ip "sudo sed -i \"${lineno}i ${logging_config}\" /etc/puppet/hieradata/service_configs.json" + ssh $controller_ip "sudo cat /etc/puppet/hieradata/service_configs.json" + fi +} # function configure_karaf_log_for_apex() + +function configure_odl_features_for_apex() { + + # if the environment variable $ACTUALFEATURES is not null, then rewrite + # the puppet config file with the features given in that variable, otherwise + # this function is a noop + + local -r controller_ip=$1 + local -r config_file=/etc/puppet/hieradata/service_configs.json + +cat > /tmp/set_odl_features.sh << EOF +sudo jq '.["opendaylight::extra_features"] |= []' $config_file > tmp.json && mv tmp.json $config_file +for feature in $(echo $ACTUALFEATURES | sed "s/,/ /g"); do + sudo jq --arg jq_arg \$feature '.["opendaylight::extra_features"] |= . + [\$jq_arg]' $config_file > tmp && mv tmp $config_file; +done +echo "Modified puppet-opendaylight service_configs.json..." +cat $config_file +EOF + + echo "Feature configuration script..." + cat /tmp/set_odl_features.sh + + if [ -n "${ACTUALFEATURES}" ]; then + scp /tmp/set_odl_features.sh $controller_ip:/tmp/set_odl_features.sh + ssh $controller_ip "sudo bash /tmp/set_odl_features.sh" + fi + +} # function configure_odl_features_for_apex() + function get_os_deploy() { local -r num_systems=${1:-$NUM_OPENSTACK_SYSTEM} case ${num_systems} in