o
    *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¡ |  g d¢¡ |  d¡ |  ¡  |  g d	¢¡ |  d
¡}|rIg d¢‰|  ‡fdd„|D ƒ¡ |  g d¢¡ |  dt dt dt g¡ |  g d¢¡ z!|  d¡}|d dkr…t 	|d ¡}|D ]
}|  d 
|¡¡ qzW n tyŸ } z|  d| ¡ W Y d }~nd }~ww z&|  d¡}|d dkrÄt 	|d ¡}d‰ |  ‡ fdd„|D ƒ¡ W d S W d S  tyà } z|  d| ¡ W Y d }~d S d }~ww )Nz/etc/pki/vdsm/keysz/etc/pki/vdsm/*/*-key.*z/etc/pki/libvirt/privatez%/var/lib/vdsm/storage/transient_disksZvdsmdZ
supervdsmd)z/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-kvm)ZcmdlineÚ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   r   Ú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>   sn   





þýÿþ€ÿ€ÿ
ÿýÿ€ÿ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   
