Merge "Collect logs at the end of gate"
This commit is contained in:
commit
95bb052fe7
@ -1,4 +1,81 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
set -o xtrace
|
||||
|
||||
function collect_logs {
|
||||
set +o errexit
|
||||
mkdir -p logs
|
||||
|
||||
# copy system log
|
||||
|
||||
sudo cp -r /var/log logs/system_log
|
||||
|
||||
if which journalctl ; then
|
||||
# the journal gives us syslog() and kernel output, so is like
|
||||
# a concatenation of the above.
|
||||
sudo journalctl --no-pager | sudo tee logs/syslog.txt > /dev/null
|
||||
sudo journalctl --no-pager -u docker.service | sudo tee logs/docker.log > /dev/null
|
||||
else
|
||||
# assume rsyslog
|
||||
sudo cp /var/log/syslog logs/syslog.txt
|
||||
sudo cp /var/log/kern.log logs/kern_log.txt
|
||||
sudo cp /var/log/upstart/docker.log logs/docker.log
|
||||
fi
|
||||
|
||||
if [[ -d /var/lib/docker/volumes/kolla_logs/_data ]]; then
|
||||
sudo cp -r /var/lib/docker/volumes/kolla_logs/_data logs/kolla_logs
|
||||
fi
|
||||
|
||||
# sudo config
|
||||
sudo cp -r /etc/sudoers.d logs/
|
||||
sudo cp /etc/sudoers logs/sudoers.txt
|
||||
|
||||
df -h > logs/df.txt
|
||||
free > logs/free.txt
|
||||
sudo parted -l | sudo tee logs/parted-l.txt > /dev/null
|
||||
mount > logs/mount.txt
|
||||
env > logs/env.txt
|
||||
|
||||
if [ `command -v dpkg` ]; then
|
||||
dpkg -l | sudo tee logs/dpkg-l.txt > /dev/null
|
||||
fi
|
||||
if [ `command -v rpm` ]; then
|
||||
rpm -qa | sudo tee logs/rpm-qa.txt > /dev/null
|
||||
fi
|
||||
|
||||
# final memory usage and process list
|
||||
ps -eo user,pid,ppid,lwp,%cpu,%mem,size,rss,cmd > logs/ps.txt
|
||||
|
||||
# docker related information
|
||||
(docker info && docker images && docker ps -a) > logs/docker-info.txt
|
||||
|
||||
sudo cp -r /etc/kolla logs/kolla_configs
|
||||
|
||||
# fix the permissions for logs folder
|
||||
sudo chmod -R 777 logs
|
||||
|
||||
# rename files to .txt; this is so that when displayed via
|
||||
# logs.openstack.org clicking results in the browser shows the
|
||||
# files, rather than trying to send it to another app or make you
|
||||
# download it, etc.
|
||||
|
||||
# firstly, rename all .log files to .txt files
|
||||
for f in $(find logs -name "*.log"); do
|
||||
sudo mv $f ${f/.log/.txt}
|
||||
done
|
||||
|
||||
# append .txt to all kolla config file
|
||||
find logs/kolla_configs -type -f -exec mv '{}' '{}'.txt \;
|
||||
|
||||
# Compress all text logs
|
||||
find logs -iname '*.txt' -execdir gzip -9 {} \+
|
||||
find logs -iname '*.json' -execdir gzip -9 {} \+
|
||||
|
||||
set -o errexit
|
||||
}
|
||||
|
||||
trap collect_logs EXIT
|
||||
|
||||
tools/setup_gate.sh
|
||||
tox -e $ACTION-$BASE_DISTRO-$INSTALL_TYPE
|
||||
|
Loading…
Reference in New Issue
Block a user