libvirt/libvirt-supportconfig
James Fehlig f6b39855bb - libxl: Improve handling of errors across migration phases
bsc#1213186
- apparmor: Support local overrides in all profiles and abstractions
  spec: Don't replace /etc/apparmor.d/<profile> on package upgrade
  spec: No longer package empty /etc/apparmor.d/local/* files
  bsc#1211472

- Update to libvirt 9.5.0
  - Many incremental improvements and bug fixes, see
    https://libvirt.org/news.html#v9-5-0-2023-07-03
  - Add upstream commit 5f7f6ceb47 to fix builds on Leap 15.x
  - Drop downstream commit adding SUSE-specific migration
    parameters

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=989
2023-07-13 23:10:14 +00:00

122 lines
3.8 KiB
Bash

#!/bin/bash
#############################################################
# Name: Supportconfig Plugin for libvirt
# Description: Gathers important troubleshooting information
# about libvirt
#############################################################
RCFILE="/usr/lib/supportconfig/resources/scplugin.rc"
# conf files for all daemons reside in /etc/libvirt/. VM conf files
# and log files reside in hypervisor-specific locations.
DAEMON_CONF_FILES="$(find -L /etc/libvirt/*.conf -type f 2>/dev/null | sort)"
PERSISTENT_VM_CONF_FILES=""
ACTIVE_VM_CONF_FILES=""
DAEMON_LOG_FILES=""
if [ -s $RCFILE ]; then
if ! source $RCFILE; then
echo "ERROR: Initializing resource file: $RCFILE" >&2
exit 1
fi
fi
rpm_installed() {
thisrpm="$1"
if rpm -q "$thisrpm" >/dev/null 2>&1; then
return 0
fi
return 1
}
rpm_verify() {
thisrpm="$1"
local ret=0
echo
echo "#==[ Validating RPM ]=================================#"
if rpm -q "$thisrpm" >/dev/null 2>&1; then
echo "# rpm -V $thisrpm"
if rpm -V "$thisrpm"; then
echo "Status: Passed"
else
echo "Status: WARNING"
fi
else
echo "package $thisrpm is not installed"
ret=1
fi
echo
return $ret
}
if rpm_installed libvirt-daemon-driver-libxl; then
test -d /etc/libvirt/libxl && PERSISTENT_VM_CONF_FILES="$PERSISTENT_VM_CONF_FILES $(find -L /etc/libvirt/libxl/ -type f | sort)"
test -d /run/libvirt/libxl && ACTIVE_VM_CONF_FILES="$ACTIVE_VM_CONF_FILES $(find -L /run/libvirt/libxl/ -type f | sort)"
test -d /var/log/libvirt/libxl && DAEMON_LOG_FILES="$DAEMON_LOG_FILES $(find -L /var/log/libvirt/libxl/ -type f | sort)"
fi
if rpm_installed libvirt-daemon-driver-qemu; then
test -d /etc/libvirt/qemu && PERSISTENT_VM_CONF_FILES="$PERSISTENT_VM_CONF_FILES $(find -L /etc/libvirt/qemu/ -type f | sort)"
test -d /run/libvirt/qemu && ACTIVE_VM_CONF_FILES="$ACTIVE_VM_CONF_FILES $(find -L /run/libvirt/qemu/ -type f | sort)"
test -d /var/log/libvirt/qemu && DAEMON_LOG_FILES="$DAEMON_LOG_FILES $(find -L /var/log/libvirt/qemu/ -type f | sort)"
fi
if rpm_installed libvirt-daemon; then
DAEMON_LOG_FILES="$DAEMON_LOG_FILES $(find -L /var/log/libvirt/*.log -type f 2>/dev/null | sort)"
fi
if rpm_installed libvirt-client && virsh capabilities > /dev/null 2>&1; then
plugin_command "virsh version"
plugin_command "virsh capabilities"
plugin_command "virsh domcapabilities"
plugin_command "virsh nodeinfo"
plugin_command "virsh nodedev-list"
# print all known domains on default URI
plugin_command "virsh list --all"
echo
# dump configuration info of active domains on default URI
for DOM in $(virsh list --name)
do
plugin_command "virsh dumpxml $DOM"
plugin_command "virsh vcpuinfo $DOM"
plugin_command "virsh dominfo $DOM"
plugin_command "virsh domjobinfo $DOM"
plugin_command "virsh dommemstat $DOM"
plugin_command "virsh snapshot-list $DOM"
echo
done
# dump configuration info of inactive domains on default URI
for DOM in $(virsh list --name --inactive)
do
plugin_command "virsh dumpxml $DOM"
plugin_command "virsh snapshot-list $DOM"
echo
done
# dump active networks, interfaces and storage pools
plugin_command "virsh net-list"
plugin_command "virsh iface-list"
plugin_command "virsh pool-list"
fi
# dump libvirtd-related conf files
pconf_files "$DAEMON_CONF_FILES"
# dump persistent VM-related conf files
pconf_files "$PERSISTENT_VM_CONF_FILES"
# dump active VM-related conf files
pconf_files "$ACTIVE_VM_CONF_FILES"
# dump hook conf files
test -d /etc/libvirt/hooks && FILES="$(find -L /etc/libvirt/hooks/ -type f | sort)"
pconf_files "$FILES"
# dump all log files
plog_files 0 "$DAEMON_LOG_FILES"
echo "Done"