3 ܓi@s&ddlmZmZGdddeeZdS))PluginIndependentPluginc@s,eZdZdZdZd Zd ZddZd d Zd S) LibvirtClientz%client for libvirt virtualization APIZvirshsystemvirtlibvirt-clientlibvirt-clientscCs|jddgd}dddddd d d d d dg }x$|D]}|j|d|ddq2W|j|dddd|j|ddd}|ddkrxZ|djD]J}|jd|}|ddkr|djd}|jd|d|dqWxd/D]}|j|d|d |d0krd!nd"dd} | ddkr| dj} y| djjd#} Wntk r`wYnXxJtd$d%| d&dD]0} | j| } |j|d|d'| ddqzWqW|j|ddd}|ddkr<|djd&d}xRtd(d%|D]@}|jd)}x,d1D]$}|j|d|d|ddqWqW|j|d-dd}|ddkrx.|djD]} |j|d.| ddqlWdS)2Nz/root/.cache/virt-manager/*.logz/root/.virt-manager/*.logzvirsh -rZdomcapabilitiesZ capabilitiesZnodeinfozfreecell --allznode-memory-tuneversionzpool-capabilitiesZ nodecpumapz maxvcpus kvmZsysinfoznodedev-list --tree T) foregroundz list --allZvirsh_list_all)Ztagsr z1 list --all --name --state-running --state-pausedZstatusroutputz pgrep -f ztaskset -ac -p Ztaskset_)Zsuggest_filenamenetnwfilterpoolz-list %sz--allNamecSs|S)N)xrr/usr/lib/python3.6/virsh.pyMsz%LibvirtClient.setup..z -dumpxml cSs|S)Nr)rrrrrWsdumpxmldominfo domblklistz nodedev-listz nodedev-dumpxml )r rr)r r)rrr) Z add_copy_specZadd_cmd_outputZexec_cmd splitlinesZcollect_cmd_outputsplitindex Exceptionfilter)selfcmdZsubcmdsZsubcmdZvmsZvmpidpkZk_listZk_linesposjnameZdomains_outputZ domains_linesZdomainoptZnodedev_outputrrrsetupsr             zLibvirtClient.setupcCs,d}ddg}x|D]}|j||dqWdS)Nz"(\s*passwd\s*=\s*\")([^\"]*)(\".*)z"/root/\.cache/virt-manager/.*\.logz/root/\.virt-manager/.*\.logz \1******\3)Zdo_path_regex_sub)r Z match_expZvirsh_path_expsZpath_exprrrpostproces  zLibvirtClient.postprocN)rr)rr) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZpackagesr)r*rrrrr s PrN)Zsos.report.pluginsrrrrrrr s