cat ${LOGCONF}
} # function configure_karaf_log()
+function get_os_deploy() {
+ local -r num_systems=${1:-$NUM_OPENSTACK_SYSTEM}
+ case ${num_systems} in
+ 1)
+ OS_DEPLOY="1cmb-0ctl-0cmp"
+ ;;
+ 2)
+ OS_DEPLOY="1cmb-0ctl-1cmp"
+ ;;
+ 3|*)
+ OS_DEPLOY="0cmb-1ctl-2cmp"
+ ;;
+ esac
+ export OS_DEPLOY
+}
+
function run_plan() {
local -r type=$1
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
# 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}