Add a new script for copying logs
post_test_hook is not a good place to collect logs since it does not get executed when jobs fail. Let's try executing a script in our gate_hook to copy files over. Also use a find/exec to copy the files since some files may be gzipped We also need to copy over the log files for containers that remain when we finish testing. Change-Id: I37b50eff7b086b3a29849a292a2171744460da06
This commit is contained in:
parent
c3c7105f9a
commit
797f1fe4ec
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# This script is executed inside gate_hook.sh
|
||||
|
||||
INSTALLDIR=${INSTALLDIR:-/opt/stack}
|
||||
source $INSTALLDIR/devstack/functions-common
|
||||
LOGDIR=/opt/stack/logs
|
||||
|
||||
if is_ubuntu; then
|
||||
# Find and collect docker daemon logs
|
||||
sudo find /var/log/ -name "docker*" -print -exec sudo cp {} $LOGDIR \;
|
||||
elif is_fedora; then
|
||||
# fetch the docker logs from the journal
|
||||
sudo journalctl _SYSTEMD_UNIT=docker.service | sudo tee -a $LOGDIR/docker.service.log > /dev/null
|
||||
sudo journalctl _SYSTEMD_UNIT=docker.socket | sudo tee -a $LOGDIR/docker.socket.log > /dev/null
|
||||
fi
|
||||
|
||||
# Copy logs from the containers
|
||||
sudo mkdir -p $LOGDIR/containers/
|
||||
sudo find /var/lib/docker/containers/ -name "*.log" -print -exec sudo cp {} $LOGDIR/containers/ \;
|
|
@ -30,4 +30,16 @@ if is_ubuntu; then
|
|||
install_package --force-yes linux-image-extra-`uname -r`
|
||||
fi
|
||||
|
||||
trap exit_trap EXIT
|
||||
function exit_trap {
|
||||
local r=$?
|
||||
if [[ "$r" -eq "0" ]]; then
|
||||
echo "All tests run successfully"
|
||||
else
|
||||
echo "ERROR! some tests failed, please see detailed output"
|
||||
fi
|
||||
echo "Collecting docker-specific logs"
|
||||
bash -x $SCRIPTDIR/copy_logs_hook.sh
|
||||
}
|
||||
|
||||
$INSTALLDIR/devstack-gate/devstack-vm-gate.sh
|
||||
|
|
|
@ -13,13 +13,3 @@
|
|||
# under the License.
|
||||
|
||||
# This script is executed inside post_test_hook function in devstack gate.
|
||||
|
||||
# Collect docker daemon logs
|
||||
sudo ls -altr /var/log/docker*
|
||||
sudo ls -altr /var/log/upstart/docker*
|
||||
if [ -f /var/log/docker ]; then
|
||||
sudo cp /var/log/docker /opt/stack/logs/docker.log
|
||||
fi
|
||||
if [ -f /var/log/upstart/docker.log ]; then
|
||||
sudo cp /var/log/upstart/docker.log /opt/stack/logs
|
||||
fi
|
Loading…
Reference in New Issue