U
    -_g1                     @   sT   d dl Z d dlZd dlZd dlmZmZ dZedde ZG dd deeZ	dS )    N)PluginRedHatPlugina$  
global {
    locking_type=0
    metadata_read_only=1
    use_lvmetad=0
}
devices {
    preferred_names=["^/dev/mapper/"]
    ignore_suspended_devices=1
    write_cache_state=0
    disable_after_error_count=3
    use_devicesfile=0
    filter=["a|^/dev/disk/by-id/dm-uuid-mpath-|", "r|.+|"]
}
z\s+ c                   @   s(   e Zd ZdZdZdZdd Zdd ZdS )	Vdsmz)VDSM - Virtual Desktop and Server Manager)vdsmzvdsm-clientr   c              
      s  |  d |  d |  d |  d | ddg | ddd	d
g | d |   | dddg | dddd | d}|rdddg| fdd|D  | jddgddd | jddd | dt d d!t d d"t d g | d#d$d%d&d'd(d)d*g zF| 	d+}|d d,krTt
|d- }|D ]}| d.|  q<W n4 tk
r } z| d/|  W 5 d }~X Y nX zF| 	d0}|d d,krt
|d- }d1 |  fd2d|D  W n4 tk
r } z| d3|  W 5 d }~X Y nX d S )4Nz/etc/pki/vdsm/keysz/etc/pki/vdsm/*/*-key.*z/etc/pki/libvirt/privatez%/var/lib/vdsm/storage/transient_disksZvdsmdZ
supervdsmdz/tmp/vds_installer*z/tmp/vds_bootstrap*z/etc/vdsm/*z/etc/pki/vdsm/z/var/log/vdsm/*/run/vdsm/*z/usr/libexec/vdsm/hooksz/var/lib/vdsmZ	vdsm_confZvdsm_idZvdsm_import_log)z/etc/vdsm/vdsm.confz/etc/vdsm/vdsm.idz!/var/log/vdsm/import/import-*.logzqemu-kvmZcmdlineZstatusZ
mountstatsc                    s&   g | ]} D ]}d | d| qqS )z/proc// ).0pidname)filesr	   9/usr/lib/python3/dist-packages/sos/report/plugins/vdsm.py
<listcomp>`   s    zVdsm.setup.<locals>.<listcomp>z	/etc/vdsmz/rhev/data-centerr   T)Zrunas	recursive)Ztreezlvm vgs -v -o +tags --config ''zlvm lvs -v -o +tags --config 'zlvm pvs -v -o +all --config 'z vdsm-client Host getCapabilitieszvdsm-client Host getStatszvdsm-client Host getAllVmStatszvdsm-client Host getVMFullListzvdsm-client Host getDeviceListz"vdsm-client Host hostdevListByCapsz vdsm-client Host getAllTasksInfoz$vdsm-client Host getAllTasksStatusesz)vdsm-client Host getConnectedStoragePoolsr   outputz3vdsm-client StoragePool getSpmStatus storagepoolID=z+vdsm-client Host getConnectedStoragePools: z"vdsm-client Host getStorageDomainszvdsm-tool dump-volume-chains %sc                    s   g | ]} | qS r	   r	   )r
   Zuuid)dump_volume_chains_cmdr	   r   r      s    z$vdsm-client Host getStorageDomains: )add_forbidden_pathZadd_service_statusZadd_copy_spec_add_vdsm_forbidden_pathsZadd_file_tagsZget_process_pidsZadd_dir_listingZadd_cmd_output
LVM_CONFIGZcollect_cmd_outputjsonloads
ValueErrorZ
_log_error)selfZ	qemu_pidsresZpoolsZpoolerrZsd_uuidsr	   )r   r   r   setup?   s    






 



z
Vdsm.setupc                 C   s(   t  dD ]}|dr
| | q
dS )zJAdd confidential sysprep vfds under /run/vdsm to
         forbidden paths r   )z.vfdz/isoUploaderz/storageN)globendswithr   )r   Z	file_pathr	   r	   r   r      s    
zVdsm._add_vdsm_forbidden_pathsN)__name__
__module____qualname__Z
short_descZpackagesZplugin_namer   r   r	   r	   r	   r   r   5   s
   \r   )
r   r   reZsos.report.pluginsr   r   r   substripr   r	   r	   r	   r   <module>   s   