echo "Set JAVA_HOME"
export JAVA_HOME="${java_home}"
+
# shellcheck disable=SC2037
JAVA_RESOLVED=$(readlink -e "${java_home}/bin/java")
echo "Java binary pointed at by JAVA_HOME: ${JAVA_RESOLVED}"
cat ${LOGCONF}
} # function configure_karaf_log()
+function run_plan() {
+ local -r type=$1
+
+ case ${type} in
+ script)
+ plan=$SCRIPTPLAN
+ ;;
+ config|*)
+ plan=$CONFIGPLAN
+ ;;
+ esac
+
+ printf "Locating ${type} plan to use...\n"
+ plan_filepath="${WORKSPACE}/test/csit/${type}plans/$plan"
+ if [ ! -f "${plan_filepath}" ]; then
+ plan_filepath="${WORKSPACE}/test/csit/${type}plans/${STREAMTESTPLAN}"
+ if [ ! -f "${plan_filepath}" ]; then
+ plan_filepath="${WORKSPACE}/test/csit/${type}plans/${TESTPLAN}"
+ fi
+ fi
+
+ if [ -f "${plan_filepath}" ]; then
+ printf "${type} plan exists!!!\n"
+ printf "Changing the ${type} plan path...\n"
+ cat ${plan_filepath} | sed "s:integration:${WORKSPACE}:" > ${type}plan.txt
+ cat ${type}plan.txt
+ for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' ${type}plan.txt ); do
+ printf "Executing ${line}...\n"
+ # shellcheck source=${line} disable=SC1091
+ source ${line}
+ done
+ fi
+ printf "Finished running ${type} plans\n"
+} # function run_plan()
+
+# Return elapsed time. Usage:
+# - Call first time with no arguments and a new timer is returned.
+# - Next call with the first argument as the timer and the elapsed time is returned.
+function timer()
+{
+ if [ $# -eq 0 ]; then
+ # return the current time
+ printf "$(date "+%s")"
+ else
+ local start_time=$1
+ end_time=$(date "+%s")
+
+ if [ -z "$start_time" ]; then
+ start_time=$end_time;
+ fi
+
+ delta_time=$((end_time - start_time))
+ ds=$((delta_time % 60))
+ dm=$(((delta_time / 60) % 60))
+ dh=$((delta_time / 3600))
+ # return the elapsed time
+ printf "%d:%02d:%02d" $dh $dm $ds
+ fi
+}
+
# convert commas in csv strings to spaces (ssv)
function csv2ssv() {
local csv=$1
echo "${ssv}"
} # csv2ssv
+function is_openstack_feature_enabled() {
+ local feature=$1
+ for enabled_feature in $(csv2ssv ${ENABLE_OS_SERVICES}); do
+ if [ "${enabled_feature}" == "${feature}" ]; then
+ echo 1
+ return
+ fi
+ done
+ echo 0
+}
+
SSH="ssh -t -t"
+# shellcheck disable=SC2153
+function print_job_parameters() {
+ cat << EOF
+
+Job parameters:
+DISTROBRANCH: ${DISTROBRANCH}
+DISTROSTREAM: ${DISTROSTREAM}
+BUNDLE_URL: ${BUNDLE_URL}
+CONTROLLERFEATURES: ${CONTROLLERFEATURES}
+CONTROLLERDEBUGMAP: ${CONTROLLERDEBUGMAP}
+SCRIPTPLAN: ${SCRIPTPLAN}
+CONFIGPLAN: ${CONFIGPLAN}
+STREAMTESTPLAN: ${STREAMTESTPLAN}
+TESTPLAN: ${TESTPLAN}
+SUITES: ${SUITES}
+PATCHREFSPEC: ${PATCHREFSPEC}
+OPENSTACK_BRANCH: ${OPENSTACK_BRANCH}
+DEVSTACK_HASH: ${DEVSTACK_HASH}
+ODL_ML2_DRIVER_REPO: ${ODL_ML2_DRIVER_REPO}
+ODL_ML2_BRANCH: ${ODL_ML2_BRANCH}
+ODL_ML2_DRIVER_VERSION: ${ODL_ML2_DRIVER_VERSION}
+ODL_ML2_PORT_BINDING: ${ODL_ML2_PORT_BINDING}
+DEVSTACK_KUBERNETES_PLUGIN_REPO: ${DEVSTACK_KUBERNETES_PLUGIN_REPO}
+DEVSTACK_LBAAS_PLUGIN_REPO: ${DEVSTACK_LBAAS_PLUGIN_REPO}
+DEVSTACK_NETWORKING_SFC_PLUGIN_REPO: ${DEVSTACK_NETWORKING_SFC_PLUGIN_REPO}
+IPSEC_VXLAN_TUNNELS_ENABLED: ${IPSEC_VXLAN_TUNNELS_ENABLED}
+PUBLIC_BRIDGE: ${PUBLIC_BRIDGE}
+ENABLE_HAPROXY_FOR_NEUTRON: ${ENABLE_HAPROXY_FOR_NEUTRON}
+ENABLE_OS_SERVICES: ${ENABLE_OS_SERVICES}
+ENABLE_OS_COMPUTE_SERVICES: ${ENABLE_OS_COMPUTE_SERVICES}
+ENABLE_OS_NETWORK_SERVICES: ${ENABLE_OS_NETWORK_SERVICES}
+ENABLE_OS_PLUGINS: ${ENABLE_OS_PLUGINS}
+DISABLE_OS_SERVICES: ${DISABLE_OS_SERVICES}
+TENANT_NETWORK_TYPE: ${TENANT_NETWORK_TYPE}
+SECURITY_GROUP_MODE: ${SECURITY_GROUP_MODE}
+ENABLE_ITM_DIRECT_TUNNELS: ${ENABLE_ITM_DIRECT_TUNNELS}
+PUBLIC_PHYSICAL_NETWORK: ${PUBLIC_PHYSICAL_NETWORK}
+ENABLE_NETWORKING_L2GW: ${ENABLE_NETWORKING_L2GW}
+CREATE_INITIAL_NETWORKS: ${CREATE_INITIAL_NETWORKS}
+LBAAS_SERVICE_PROVIDER: ${LBAAS_SERVICE_PROVIDER}
+NUM_OPENSTACK_SITES: ${NUM_OPENSTACK_SITES}
+ODL_SFC_DRIVER: ${ODL_SFC_DRIVER}
+ODL_SNAT_MODE: ${ODL_SNAT_MODE}
+
+EOF
+}
+
# Collect the list of files on the hosts
function collect_files() {
local -r ip=$1
ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_after.log
pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_after.log | grep -v grep | tr -s ' ' | cut -f2 -d' ')
echo "karaf main: org.apache.karaf.main.Main, pid:${pid}"
- ssh ${!CONTROLLERIP} "jstack ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true
+ ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true
echo "killing karaf process..."
${SSH} "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh'
${SSH} ${!CONTROLLERIP} "sudo journalctl > /tmp/journalctl.log"
# Control Node
for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do
OSIP=OPENSTACK_CONTROL_NODE_${i}_IP
- echo "collect_logs: for openstack control node ip: ${!OSIP}"
- NODE_FOLDER="control_${i}"
+ if [ "$(is_openstack_feature_enabled n-cpu)" == "1" ]; then
+ echo "collect_logs: for openstack combo node ip: ${!OSIP}"
+ NODE_FOLDER="combo_${i}"
+ else
+ echo "collect_logs: for openstack control node ip: ${!OSIP}"
+ NODE_FOLDER="control_${i}"
+ fi
mkdir -p ${NODE_FOLDER}
scp extra_debug.sh ${!OSIP}:/tmp
+ # Capture compute logs if this is a combo node
+ if [ "$(is_openstack_feature_enabled n-cpu)" == "1" ]; then
+ scp ${!OSIP}:/etc/nova/nova.conf ${NODE_FOLDER}
+ scp ${!OSIP}:/etc/nova/nova-cpu.conf ${NODE_FOLDER}
+ scp ${!OSIP}:/etc/openstack/clouds.yaml ${NODE_FOLDER}
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/nova-agent.log ${NODE_FOLDER}
+ fi
${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log 2>&1"
scp ${!OSIP}:/etc/dnsmasq.conf ${NODE_FOLDER}
scp ${!OSIP}:/etc/keystone/keystone.conf ${NODE_FOLDER}