U
    *b]                     @   sT   d dl mZmZ d dlZd dlZd dlZdZedde ZG dd deeZ	dS )    )PluginRedHatPluginNa  
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
    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}|rdddg| fdd|D  | dddg | dt dt dt g | dddddd d!d"g zF| d#}|d d$kr$t	|d% }|D ]}| d&
| qW n2 tk
rX } z| d'|  W 5 d }~X Y nX zF| d(}|d d$krt	|d% }d) |  fd*d|D  W n2 tk
r } z| d+|  W 5 d }~X Y nX d S ),Nz/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qemu-kvmZcmdlineZstatusZ
mountstatsc                    s"   g | ]} D ]}d ||f qqS )z/proc/%s/%s ).0pidname)filesr   9/usr/lib/python3/dist-packages/sos/report/plugins/vdsm.py
<listcomp>Y   s    zVdsm.setup.<locals>.<listcomp>zls -ldZ /etc/vdsmz1su vdsm -s /bin/sh -c 'tree -l /rhev/data-center'z0su vdsm -s /bin/sh -c 'ls -lR /rhev/data-center'z!lvm vgs -v -o +tags --config '%s'z!lvm lvs -v -o +tags --config '%s'z lvm pvs -v -o +all --config '%s'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   outputz5vdsm-client StoragePool getSpmStatus storagepoolID={}z-vdsm-client Host getConnectedStoragePools: %sz"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: %s)add_forbidden_pathZadd_service_statusZadd_copy_spec_add_vdsm_forbidden_pathsZget_process_pidsZadd_cmd_output
LVM_CONFIGZcollect_cmd_outputjsonloadsformat
ValueErrorZ
_log_error)selfZ	qemu_pidsresZpoolsZpooleZ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   4   s
   Sr   )
Zsos.report.pluginsr   r   r   r   rer   substripr   r   r   r   r   <module>   s   