PtddlZddlmZmZmZddlmZmZmZm Z ddl m Z ddl m Z ejdZde eeeeeffdZd ZdS) N)CalledProcessErrorPopenPIPE)DictAnyStrOptionalList) serialize_evr) is_ubuntuz(cloudlinux-summary.get_rpm_packages_inforeturnc Rg}d}t}|rd}nd}d}d}d} t|ttddd 5}|\}} |j}d d d n #1swxYwY|| vrt ||Sn<#ttf$r(} t d || |cYd } ~ Sd } ~ wwxYw|dkr$t d ||||| d |S| d} | D]} t| |\} }}}}n0#t$r#t d|| d|iYFwxYw|dkrd n|}|| ||||t!|||gd|S)z Get full info about all of rpm packages: - name - epoch - version - release - arch - serialized_version z"Thread died in Berkeley DB libraryz9dpkg-query -f '${Package} ${Version} ${Architecture} ' -WzYrpm -qa --queryformat '%{name} %|epoch?{%{epoch}}:{None}| %{version} %{release} %{arch} 'z1Can't get information about rpm packages, becausezYServer has broken rpmdb. We can't get statistics about rpm packages and skip its getting.rTz /bin/bash)stdoutstderrshell executabletextNz%s exception "%sz)%s command "%s" return non-zero code "%s")rr)extra zRThe result of call "%s" has an invalid line "%s". It should contain five elements.rNone)nameepochversionreleasearchserialized_version)r rr communicate returncode app_loggerwarningrOSError exceptionerrorstripsplitparse_package_manager_output ValueErrorappendr )resultrpm_db_error_pattern is_ubuntu_osrpm_cmd error_messagerpm_db_warn_msgrprocrrr!lineslinerrrrrs 'py/clsummary/rpm_packages_statistics.pyget_rpm_packages_infor2sF?;;LsPrHMLOJ  "    )!--//NFFJ ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 6 ) )      M *  (       Q 7        LLNN  & &E   2NtUa2b2b /D%'44      3f     H U "/1##    MsSBA+ B+A//B2A/3"BC(C C C)E*E-,E-c|rh|d\}}}d}d|vr|d\}}|d^}}|rd|nd}n|d\}}}}}|||||fS)aR rpm -qa already returns data in needed format, e.g: lve-utils None 6.2.3 2.el7.cloudlinux.1639593336.cloudlinux.1639595623 x86_64 but, dpkg-query output needed to be parsed a bit, cause version column cannot be split by util to epoch:version:release lve-utils 6.2.2.1639220776 amd64  N:-)r$join)r0r*rrrrrs r1r%r%ms ?"jj..gt '>>$]]3//NE7#MM#..''.8#((7###D.2jj.>.>+eWgt $ ..)logging subprocessrrrtypingrrrr clcommon.evr_utilsr clcommon.utilsr getLoggerrr2r%r8r1r@s6666666666////////////,,,,,,$$$$$$ W I J J XtHT&(6:J2J-K$LMXXXXv/////r8