|  | # TODO(andreaf) Make this into proper Ansible | 
|  | - name: Stage various logs and reports | 
|  | shell: | 
|  | executable: /bin/bash | 
|  | cmd: | | 
|  | sudo iptables-save > {{ stage_dir }}/iptables.txt | 
|  | df -h > {{ stage_dir }}/df.txt | 
|  |  | 
|  | for py_ver in 2 3; do | 
|  | if [[ `which python${py_ver}` ]]; then | 
|  | python${py_ver} -m pip freeze > {{ stage_dir }}/pip${py_ver}-freeze.txt | 
|  | fi | 
|  | done | 
|  |  | 
|  | if [ `command -v dpkg` ]; then | 
|  | dpkg -l> {{ stage_dir }}/dpkg-l.txt | 
|  | fi | 
|  | if [ `command -v rpm` ]; then | 
|  | rpm -qa | sort > {{ stage_dir }}/rpm-qa.txt | 
|  | fi | 
|  |  | 
|  | # NOTE(kchamart) The 'audit.log' can be useful in cases when QEMU | 
|  | # failed to start due to denials from SELinux — useful for CentOS | 
|  | # and Fedora machines.  For Ubuntu (which runs AppArmor), DevStack | 
|  | # already captures the contents of /var/log/kern.log (via | 
|  | # `journalctl -t kernel` redirected into syslog.txt.gz), which | 
|  | # contains AppArmor-related messages. | 
|  | if [ -f /var/log/audit/audit.log ] ; then | 
|  | sudo cp /var/log/audit/audit.log {{stage_dir }}/audit.log && | 
|  | chmod +r {{ stage_dir }}/audit.log; | 
|  | fi | 
|  |  | 
|  | # gzip and save any coredumps in /var/core | 
|  | if [ -d /var/core ]; then | 
|  | sudo gzip -r /var/core | 
|  | sudo cp -r /var/core {{ stage_dir }}/ | 
|  | fi | 
|  |  | 
|  | sudo ss -lntup | grep ':53' > {{ stage_dir }}/listen53.txt | 
|  |  | 
|  | # NOTE(andreaf) Service logs are already in logs/ thanks for the | 
|  | # export-devstack-journal log. Apache logs are under apache/ thans to the | 
|  | # apache-logs-conf role. | 
|  | grep -i deprecat {{ stage_dir }}/logs/*.txt {{ stage_dir }}/apache/*.log | \ | 
|  | sed -r 's/[0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\.[0-9]{1,3}/ /g' | \ | 
|  | sed -r 's/[0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}/ /g' | \ | 
|  | sed -r 's/[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}/ /g' | | 
|  | sed -r 's/\[.*\]/ /g' | \ | 
|  | sed -r 's/\s[0-9]+\s/ /g' | \ | 
|  | awk '{if ($0 in seen) {seen[$0]++} else {out[++n]=$0;seen[$0]=1}} END { for (i=1; i<=n; i++) print seen[out[i]]" :: " out[i] }' > {{ stage_dir }}/deprecations.log |