a Ö>ïhH ã@s6ddlZddlZddlmZmZGdd„deeƒZdS)éN)ÚPluginÚ RedHatPluginc@s@eZdZdZdZdZdd„Zdd„Zdd „Zd d „Z d d „Z dS)ÚXenzXen virtualizationZxen)ZvirtcCsXt dtj¡r(| d¡}|ddkr(dSt dtj¡rT| d¡}|ddkrPdSd Sd S) z Determine xen host type z/proc/acpi/dsdtzgrep -qi xen /proc/acpi/dsdtÚstatusrÚhvmú/proc/xen/capabilitiesz(grep -q control_d /proc/xen/capabilitiesÚdom0ÚdomUÚ baremetal)ÚosÚaccessÚR_OKÚexec_cmd)ÚselfÚresult©rú:/usr/lib/python3.9/site-packages/sos/report/plugins/xen.pyÚdetermine_xen_hosts    zXen.determine_xen_hostcCs | ¡dkS)Nr )r©rrrrÚ check_enabled#szXen.check_enabledcCs&| d¡d}t d|¡d}| ¡S)z Check if xenstored is running zpidof xenstoredÚoutputz $r)rÚreÚsplitÚisdigit)rZxs_pidZ xs_pidnumrrrÚis_running_xenstored&szXen.is_running_xenstoredcCs&| gd¢¡| d¡| d¡dS)z Collect /proc/xen )z/proc/xen/balloonrz/proc/xen/xsd_kvaz/proc/xen/xsd_portzgrep pae /proc/cpuinfoz egrep -e 'vmx|svm' /proc/cpuinfoN)Ú add_copy_specÚadd_cmd_outputrrrrÚdom_collect_proc,s zXen.dom_collect_proccCsš| ¡}|dkr$| ¡| d¡nd|dkr.nZ|dkr„| gd¢¡| gd¢¡| ¡| ¡rx| d¡| d¡qˆ| d ¡ndS| d |¡dS) Nr z/sys/hypervisorrr)z /var/log/xenz/etc/xenz/sys/hypervisor/versionz/sys/hypervisor/compilationz/sys/hypervisor/propertiesz/sys/hypervisor/type)zxm dmesgzxm infozxm listzxm list --longzbridge link showz/sys/hypervisor/uuidz xenstore-lsz/var/lib/xenstored/tdbzXen hostType: )rrrrrZadd_custom_text)rZ host_typerrrÚsetup8s     z Xen.setupN) Ú__name__Ú __module__Ú __qualname__Z short_descZ plugin_nameZprofilesrrrrrrrrrrs r)r rZsos.report.pluginsrrrrrrrÚ s