Pt d dl Z d dlmZmZmZ d dlmZmZmZm Z d dl
mZ d dlm
Z
e j d Zde eeeee f fdZd ZdS )
N)CalledProcessErrorPopenPIPE)DictAnyStrOptionalList)
serialize_evr) is_ubuntuz(cloudlinux-summary.get_rpm_packages_inforeturnc
R g } d}t }|rd}nd}d}d}d} t |t t ddd 5 }| \ }} |j }d
d
d
n# 1 swxY w Y || v rt
| | S n<# t t f$ r(}
t
d||
| cY d
}
~
S d
}
~
ww xY w|dk r$t
d||||| d
| S | d }|D ]} t || \ }
}}}}n0# t $ r# t
d||d|i Y Fw xY w|dk rd
n|}| |
||||t! |||g d | 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.r Tz /bin/bash)stdoutstderrshell
executabletextNz%s exception "%sz)%s command "%s" return non-zero code "%s")r r )extra
zRThe result of call "%s" has an invalid line "%s". It should contain five elements.r None)nameepochversionreleasearchserialized_version)r r r communicate
returncode
app_loggerwarningr OSError exceptionerrorstripsplitparse_package_manager_output
ValueErrorappendr
)resultrpm_db_error_patternis_ubuntu_osrpm_cmd
error_messagerpm_db_warn_msgr procr r r! linesliner r r r r s 'py/clsummary/rpm_packages_statistics.pyget_rpm_packages_infor2 s F?;;L sPrHMLOJ
"
) !--//NFFJ ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 6))
M *
(
Q7
LLNN &&E 2NtUa2b2b/D%'44
3f
H
U
"/1 # #
MsS B A+B +A//B 2A/3"B C(CCC)E *E-,E-c |rh| d \ }}}d}d|v r| 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)r0 r* r r r r r s r1 r% r% m s ?"jj..gt'>>$]]3//NE7#MM#..''.8#((7###D.2jj.>.>+eWgt$.. )logging
subprocessr r r typingr r r r clcommon.evr_utilsr
clcommon.utilsr getLoggerr r2 r% r8 r1