U
    i©¹dN  ã                   @   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
    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¡}|r¬d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r6t	 
|d) ¡}|D ]}|  d* |¡¡ qW n2 tk
rj } z|  d+| ¡ W 5 d }~X Y nX zF|  d,¡}|d d(kr°t	 
|d) ¡}d-‰ |  ‡ fd.d„|D ƒ¡ W n2 tk
rä } z|  d/| ¡ W 5 d }~X Y nX d S )0Nz/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 ||f ‘qqS )z/proc/%s/%s© )Ú.0ÚpidÚname)Úfilesr   ú9/usr/lib/python3/dist-packages/sos/report/plugins/vdsm.pyÚ
<listcomp>a   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add_file_tagsZ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   6   s
   Yr   )
Zsos.report.pluginsr   r   r   r   Úrer   ÚsubÚstripr   r   r   r   r   Ú<module>   s   