o
    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¡ |  g d¢¡ |  d¡ |  ¡  |  g d	¢¡ |  d
dddœ¡ |  d¡}|rRg 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 |¡¡ qƒW 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_disksÚvdsmdÚ
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/vdsmÚ	vdsm_confÚvdsm_idÚvdsm_import_log)z/etc/vdsm/vdsm.confz/etc/vdsm/vdsm.idz!/var/log/vdsm/import/import-*.logzqemu-kvm)ÚcmdlineÚstatusÚ
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   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   Úuuid)Údump_volume_chains_cmdr   r   r   ‘   s    ÿz&vdsm-client Host getStorageDomains: %s)Úadd_forbidden_pathÚadd_service_statusÚadd_copy_specÚ_add_vdsm_forbidden_pathsÚadd_file_tagsÚget_process_pidsÚadd_cmd_outputÚ
LVM_CONFIGÚcollect_cmd_outputÚjsonÚloadsÚformatÚ
ValueErrorÚ
_log_error)ÚselfÚ	qemu_pidsÚresÚpoolsÚpoolÚeÚsd_uuidsr   )r   r   r   Úsetup@   sx   




ý
þýÿþ€ÿ€ÿ
ÿýÿ€ÿ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(   Ú	file_pathr   r   r   r   ™   s
   

€þzVdsm._add_vdsm_forbidden_pathsN)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚpackagesÚplugin_namer/   r   r   r   r   r   r   6   s    Yr   )
Úsos.report.pluginsr   r   r0   r#   Úrer!   ÚsubÚstripr   r   r   r   r   Ú<module>   s   
