EOF
}
+function tcpdump_start() {
+ local -r prefix=$1
+ local -r ip=$2
+ local -r filter=$3
+ filter_=${filter// /_}
+
+ printf "node ${ip}, ${prefix}_${ip}__${filter}: starting tcpdump\n"
+ ssh ${ip} "nohup sudo /usr/sbin/tcpdump -vvv -ni eth0 ${filter} -w /tmp/tcpdump_${prefix}_${ip}__${filter_}.pcap > /tmp/tcpdump_start.log 2>&1 &"
+ ${SSH} ${ip} "ps -ef | grep tcpdump"
+}
+
+function tcpdump_stop() {
+ local -r ip=$1
+
+ printf "node $ip: stopping tcpdump\n"
+ ${SSH} ${ip} "ps -ef | grep tcpdump.sh"
+ ${SSH} ${ip} "sudo pkill -f tcpdump"
+ ${SSH} ${ip} "sudo xz -9ekvvf /tmp/*.pcap"
+ ${SSH} ${ip} "sudo ls -al /tmp/*.pcap"
+ # copy_logs will copy any *.xz files
+}
+
# Collect the list of files on the hosts
function collect_files() {
local -r ip=$1
NODE_FOLDER="control_${i}"
fi
mkdir -p ${NODE_FOLDER}
+ tcpdump_stop "${!OSIP}"
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}:/tmp/get_devstack.sh.txt ${NODE_FOLDER}
scp ${!OSIP}:/tmp/journalctl.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/ovsdb-tool.log ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/tcpdump_start.log ${NODE_FOLDER}
collect_files "${!OSIP}" "${NODE_FOLDER}"
${SSH} ${!OSIP} "sudo tar -cf - -C /var/log rabbitmq | xz -T 0 > /tmp/rabbitmq.tar.xz "
scp ${!OSIP}:/tmp/rabbitmq.tar.xz ${NODE_FOLDER}
echo "collect_logs: for openstack compute node ip: ${!OSIP}"
NODE_FOLDER="compute_${i}"
mkdir -p ${NODE_FOLDER}
+ tcpdump_stop "${!OSIP}"
scp extra_debug.sh ${!OSIP}:/tmp
${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log 2>&1"
scp ${!OSIP}:/etc/nova/nova.conf ${NODE_FOLDER}
scp ${!OSIP}:/tmp/get_devstack.sh.txt ${NODE_FOLDER}
scp ${!OSIP}:/tmp/journalctl.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/ovsdb-tool.log ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/tcpdump_start.log ${NODE_FOLDER}
collect_files "${!OSIP}" "${NODE_FOLDER}"
${SSH} ${!OSIP} "sudo tar -cf - -C /var/log libvirt | xz -T 0 > /tmp/libvirt.tar.xz "
scp ${!OSIP}:/tmp/libvirt.tar.xz ${NODE_FOLDER}
fi
done
+os_ip_list=()
+for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do
+ cip=OPENSTACK_CONTROL_NODE_${i}_IP
+ ip=${!cip}
+ os_ip_list+=("${ip}")
+done
+
+for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do
+ cip=OPENSTACK_COMPUTE_NODE_${i}_IP
+ ip=${!cip}
+ os_ip_list+=("${ip}")
+done
+
+for i in "${!os_ip_list[@]}"; do
+ ip=${os_ip_list[i]}
+ tcpdump_start "${i}" "${ip}" "port 6653"
+done
+
# Begin stacking the nodes, starting with the controller(s) and then the compute(s)
for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do