diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-10-12 04:00:49 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-10-12 04:00:49 +0000 |
| commit | c22f60e6e55f1bf300dd76d2222a93911f3b2bb2 (patch) | |
| tree | ef665e7018377f53612ac2751dcaea35a1c587b6 /xen-supportconfig | |
| parent | 39a4763249cd6289e5019acfe0c98dbb169f5f2e (diff) | |
automatic import of xenopeneuler22.03_LTS
Diffstat (limited to 'xen-supportconfig')
| -rw-r--r-- | xen-supportconfig | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/xen-supportconfig b/xen-supportconfig new file mode 100644 index 0000000..4d8c4ec --- /dev/null +++ b/xen-supportconfig @@ -0,0 +1,106 @@ +#!/bin/bash +############################################################# +# Name: Supportconfig Plugin for Xen +# Description: Gathers important troubleshooting information +# about Xen and its tools +# Author: Jim Fehlig <jfehlig@suse.com> +############################################################# + +# TODO: +# - Anything needed for UEFI? +# + +RCFILE="/usr/lib/supportconfig/resources/scplugin.rc" + +GRUB2_CONF_FILES="/etc/default/grub" +XEN_CONF_FILES="/etc/xen/xl.conf /etc/sysconfig/xencommons /etc/sysconfig/xendomains" +XEN_SERVICES="xencommons xendomains xen-watchdog" +VM_CONF_FILES="" +XEN_LOG_FILES="" + +if [ -s $RCFILE ]; then + if ! source $RCFILE; then + echo "ERROR: Initializing resource file: $RCFILE" >&2 + exit 1 + fi +fi + +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 no xen package we are done +if ! rpm_verify xen; then + echo "Skipped" + exit 0 +fi + +# if not a xen host (dom0) we are done +echo "#==[ Checking if booted Xen ]=================================#" +if [ ! -d /proc/xen ] || [ ! -e /proc/xen/capabilities ] || [ `cat /proc/xen/capabilities` != "control_d" ]; then + echo "No" + echo "Skipped" + exit 0 +else + echo "Yes" + echo +fi + +# basic system information: +plugin_command "uname -r" +for service in $XEN_SERVICES; do + plugin_command "systemctl status $service" + plugin_command "systemctl is-enabled $service" +done +plugin_command "lscpu" +plugin_command "xl info --numa" +plugin_command "xl list" +plugin_command "xl pci-assignable-list" +plugin_command "xenstore-ls" +plugin_command "ps -ef | grep xen" +# dump grub2-related conf files +pconf_files "$GRUB2_CONF_FILES" +# dump Xen-related conf files +pconf_files "$XEN_CONF_FILES" + +# detailed system info: +plugin_command "xl list --long" +plugin_command "xl dmesg" +# network-related info often useful for debugging +if [ systemctl is-enabled NetworkManager.service 2>&1 > /dev/null ]; then + echo "NOTE: NetworkManager should not be enabled on a Xen host" +fi +plugin_command "route -n" +plugin_command "arp -v" +plugin_command "ip link show type bridge" +plugin_command "bridge link show" +# list contents of common config and image directories +plugin_command "ls -alR /etc/xen/vm/" +plugin_command "ls -alR /etc/xen/auto/" +plugin_command "ls -alR /var/lib/xen/images/" +# dump VM-related conf files +test -d /etc/xen/vm && VM_CONF_FILES=$(find -L /etc/xen/vm/ -type f | sort) +pconf_files "$VM_CONF_FILES" +# dump log files +test -d /var/log/xen && XEN_LOG_FILES="$(find -L /var/log/xen/ -type f | grep 'log$' | sort)" +plog_files 0 "$XEN_LOG_FILES" + +echo "Done" |
