1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

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.
This commit is contained in:
Martin Kopta 2017-05-05 23:01:30 +02:00 committed by Adrian Likins
parent 0438236263
commit c4ad0f86c7

View file

@ -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')