3 Ü““iH ã@s6ddlZddlZddlmZmZGdd„deeƒZdS)éN)ÚPluginÚ RedHatPluginc@s@eZdZdZdZdZdd„Zdd„Zdd „Zd d „Z d d „Z dS)ÚXenzXen virtualizationZxenÚvirtcCsXtjdtjƒr(|jdƒ}|ddkr(dStjdtjƒrT|jdƒ}|ddkrPdSd Sd S) z Determine xen host type z/proc/acpi/dsdtzgrep -qi xen /proc/acpi/dsdtZstatusrÚhvmz/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.6/xen.pyÚdetermine_xen_hosts    zXen.determine_xen_hostcCs |jƒdkS)Nr )r)rrrrÚ check_enabled#szXen.check_enabledcCs&|jdƒd}tjd|ƒd}|jƒ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*|jddddgƒ|jdƒ|jdƒdS)z Collect /proc/xen z/proc/xen/balloonz/proc/xen/capabilitiesz/proc/xen/xsd_kvaz/proc/xen/xsd_portzgrep pae /proc/cpuinfoz egrep -e 'vmx|svm' /proc/cpuinfoN)Ú add_copy_specÚadd_cmd_output)rrrrÚdom_collect_proc,s zXen.dom_collect_proccCs¨|jƒ}|dkr$|jƒ|jdƒnr|dkr.nh|dkr’|jddddd d gƒ|jd d d ddgƒ|jƒ|jƒr†|jdƒ|jdƒq–|jdƒndS|jd|ƒdS)Nrz/sys/hypervisorrrz /var/log/xenz/etc/xenz/sys/hypervisor/versionz/sys/hypervisor/compilationz/sys/hypervisor/propertiesz/sys/hypervisor/typezxm dmesgzxm infozxm listzxm list --longzbridge link showz/sys/hypervisor/uuidz xenstore-lsz/var/lib/xenstored/tdbzXen hostType: )rrrrrZadd_custom_text)rZ host_typerrrÚsetup8s6    z Xen.setupN)r) Ú__name__Ú __module__Ú __qualname__Z short_descZ plugin_nameZprofilesrrrrrrrrrrs r)r rZsos.report.pluginsrrrrrrrÚ s