
    -_ge                     4    d dl mZmZmZmZ  G d dee      Zy)    )PluginIndependentPluginSoSPredicate	PluginOptc                   l    e Zd ZdZdZdZ eddd       eddd	       ed
dd      gZddZd Z	d Z
y)Lvm2zLogical Volume Manager 2lvm2)storagelvmdumpFzcollect an lvmdump tarball)defaultdesc
lvmdump-amzAattempt to collect lvmdump with advanced options and raw metadatametadataz0attempt to collect headers and metadata via pvckc                     | j                  dd      }d}d}|rd}|||fz  }| j                  || j                                y)	z|Collects an lvmdump in standard format with optional metadata
           archives for each physical volume present.
        r   F)namemakezlvmdump %s -d '%s' z-a -m)chrootN)get_cmd_output_pathadd_cmd_outputtmp_in_sysroot)selfr   lvmdump_pathlvmdump_cmdlvmdump_optscmds         9/usr/lib/python3/dist-packages/sos/report/plugins/lvm2.py
do_lvmdumpzLvm2.do_lvmdump   sV     //YU/K*"L\<88C(;(;(=>    c                     | j                  d      }|d   dk(  r@|d   j                         D ])  }d| d| d| dd	| dg}| j                  |d
       + yy)zj Collects the output of the command pvck for each block device
            present in the system.
        zpvs -o pv_name --no-headingsstatusr   outputzpvck --dump headers zpvck --dump metadata zpvck --dump metadata_all z -vzpvck --dump metadata_search r   )subdirN)exec_cmd
splitlinesr   )r   
block_listlinecmdss       r   get_pvck_outputzLvm2.get_pvck_output,   s    
 ]]*

 h1$"8,779 =*4&1+D62/vS924&<	 ##D#<= %r   c                    ddd}t        t        | |            rd}nd}|dz   }| j                  d| d	d	
       d}|dz   dz   }d}|dz   dz   }d}| j                  d| d| d       | j                  d| d| d       | j                  d| d| d       | j                  d| d| g       | j                  d       | j                  d       | j	                  d      r| j                          n#| j	                  d      r| j                  d        | j	                  d!      r| j                          y y )"Nzvgdisplay -hz--nolocking)r   r"   )cmd_outputsz3--config="global{metadata_read_only=1}" --nolockingz6--config="global{locking_type=0 metadata_read_only=1}"z
 --foreignzvgdisplay -vv 	vgdisplay)root_symlinktagsz6pv_mda_free,pv_mda_size,pv_mda_count,pv_mda_used_count,pe_startz6vg_mda_count,vg_mda_free,vg_mda_size,vg_mda_used_countzvg_tags,systemid,lock_typezElv_tags,devices,lv_kernel_read_ahead,lv_read_ahead,stripes,stripesizezlvs -a -o + lvs_headings)r.   zpvs -a -v -o +pvs_headingszvgs -v -o +vgs_headingsz
pvscan -v zvgscan -vvv z/etc/lvmz/run/lvmr   r   T)r   r   )boolr   r   add_copy_spec
get_optionr   r)   )r   nolocklvm_optslvm_opts_foreignpvs_colsvgs_colslvs_colss          r   setupz
Lvm2.setup>   s    (=ATv67LHOH#l2-./$; 	 	

 Lc>J.Kc>$@@)k(15E4FG!/ 	 	1XJa(8'9: 	 	! 	k(15E4FG!/ 	 	1
#8*%
 	
 	:&:&??9%OO__\*OOTO*??:&  " 'r   N)F)__name__
__module____qualname__
short_descplugin_nameprofilesr   option_listr   r)   r>    r   r   r   r      sY    +JKH 	)U1MN,'	) 	*eI	KK?=$6#r   r   N)sos.report.pluginsr   r   r   r   r   rF   r   r   <module>rH      s    + +g#6$ g#r   