
    -_gH                     <    d dl Z d dlZd dlmZmZ  G d dee      Zy)    N)PluginRedHatPluginc                   6    e Zd ZdZdZdZd Zd Zd Zd Z	d Z
y	)
XenzXen virtualizationxen)virtc                     t        j                  dt         j                        r| j                  d      }|d   dk(  ryt        j                  dt         j                        r| j                  d      }|d   dk(  ryy	y
)z Determine xen host type z/proc/acpi/dsdtzgrep -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results     8/usr/lib/python3/dist-packages/sos/report/plugins/xen.pydetermine_xen_hostzXen.determine_xen_host   sl    99&0]]#ABFh1$99-rww7]]#MNFh1$    c                 (    | j                         dk(  S )Nr   )r   r   s    r   check_enabledzXen.check_enabled#   s    &&(K77r   c                 |    | j                  d      d   }t        j                  d|      d   }|j                         S )z Check if xenstored is running zpidof xenstoredoutputz
$r   )r   resplitisdigit)r   xs_pid	xs_pidnums      r   is_running_xenstoredzXen.is_running_xenstored&   s:    01(;HHUF+A.	  ""r   c                 n    | j                  g d       | j                  d       | j                  d       y)z Collect /proc/xen )z/proc/xen/balloonr   z/proc/xen/xsd_kvaz/proc/xen/xsd_portzgrep pae /proc/cpuinfoz egrep -e 'vmx|svm' /proc/cpuinfoN)add_copy_specadd_cmd_outputr   s    r   dom_collect_proczXen.dom_collect_proc,   s5     " 	# 	45>?r   c                    | j                         }|dk(  r"| j                          | j                  d       n|dk(  rn|dk(  r{| j                  g d       | j                  g d       | j                          | j	                         r#| j                  d       | j                  d       n| j                  d	       ny | j                  d
|z          y )Nr   z/sys/hypervisorr   r   )z/var/log/xenz/etc/xenz/sys/hypervisor/versionz/sys/hypervisor/compilationz/sys/hypervisor/propertiesz/sys/hypervisor/type)zxm dmesgzxm infozxm listzxm list --longzbridge link showz/sys/hypervisor/uuidzxenstore-lsz/var/lib/xenstored/tdbzXen hostType: )r   r'   r%   r&   r#   add_custom_text)r   	host_types     r   setupz	Xen.setup8   s    ++-	!!# 01%&   ( )  !  !!#((*""#9:##M2 ""#;< -i78r   N)__name__
__module____qualname__
short_descplugin_nameprofilesr   r   r#   r'   r+    r   r   r   r      s+    %JKH8#
@&9r   r   )r   r   sos.report.pluginsr   r   r   r2   r   r   <module>r4      s     
 	 3P9&, P9r   