o
    O6uf:  ã                   @   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¡ |  g d¢¡ |  d¡ |  ¡  |  g d	¢¡ |  d
dddœ¡ |  d¡}|rRg d¢‰|  ‡fdd„|D ƒ¡ |  g d¢¡ |  dt› d�dt› d�dt› d�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 |› 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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 'ú'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   r   Ú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   Úuuid)Údump_volume_chains_cmdr   r   r   �   s    ÿz$vdsm-client Host getStorageDomains: )Ú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Ú
ValueErrorÚ
_log_error)ÚselfÚ	qemu_pidsÚresÚpoolsÚpoolÚerrÚsd_uuidsr   )r   r   r   Úsetup?   sz   




ý
þ


ýÿÿÿ€ÿ€ÿ
ÿýÿ€ÿ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_namer0   r   r   r   r   r   r   5   s    Yr   )
r1   r%   ÚreÚsos.report.pluginsr   r   r#   ÚsubÚstripr   r   r   r   r   Ú<module>   s   
