X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fintegration%2Fcommon-functions.sh;h=9bb051d494d99a534f69a67d309aa6d287c668de;hb=940102f7fca2495d3601dfbf714730db93cdb792;hp=23edc1224e853feed3d54f491f55854de66733b9;hpb=3949064fe80e9f63e21ccc589a75f46cf4b0a992;p=releng%2Fbuilder.git diff --git a/jjb/integration/common-functions.sh b/jjb/integration/common-functions.sh index 23edc1224..9bb051d49 100644 --- a/jjb/integration/common-functions.sh +++ b/jjb/integration/common-functions.sh @@ -55,6 +55,7 @@ function set_java_vars() { 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}" @@ -116,6 +117,66 @@ function configure_karaf_log() { 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 @@ -126,8 +187,66 @@ function csv2ssv() { 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 @@ -225,7 +344,7 @@ EOF fi # if [ "${OPENSTACK_BRANCH}" = "stable/queens" ]; then } -function collect_logs() { +function collect_netvirt_logs() { set +e # We do not want to create red dot just because something went wrong while fetching logs. cat > extra_debug.sh << EOF @@ -275,7 +394,7 @@ EOF 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" @@ -307,10 +426,22 @@ EOF # 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} @@ -408,4 +539,4 @@ EOF else echo "tempest results not found in ${DEVSTACK_TEMPEST_DIR}/${TESTREPO}/0" fi -} # collect_logs() +} # collect_netvirt_logs()