fixed yum.parse_check_update regex (#24331)

Output of `yum check-update` can contain lines with long package names and long
repository label names, which will be broken into multiple lines, which need to
be sanitized. The solution to this has been fixed and refactored in 2.3 in form
of parse_check_update(), but it still contains subtle bug, which makes such
multi-lines invisible to later logic (such packages aren't included in
parse_check_update()) output. The problem is caused by using '\1' in re.sub(),
instead of proper r'\1', which literally puts unicode symbol \1 into resulting
output.
pull/24346/head
Martin Kopta 8 years ago committed by Adrian Likins
parent 0438236263
commit c4ad0f86c7

@ -885,7 +885,7 @@ def parse_check_update(check_update_output):
# ceph.x86_64 1:11.2.0-0.el7 ceph # ceph.x86_64 1:11.2.0-0.el7 ceph
# preprocess string and filter out empty lines so the regex below works # preprocess string and filter out empty lines so the regex below works
out = re.sub('\n[^\w]\W+(.*)', ' \1', out = re.sub(r'\n[^\w]\W+(.*)', r' \1',
check_update_output) check_update_output)
available_updates = out.split('\n') available_updates = out.split('\n')

Loading…
Cancel
Save