Repair requests without testpkg-version

We're supposed to synthesise an "unknown" version for these, but a bug
in the worker meant we didn't do that in some cases and these leaked
into swift. Let's repair it client-side.
wip/linux-policy
Iain Lane 6 years ago
parent ff6ba2553a
commit 77ee66fcb3

@ -852,7 +852,19 @@ class AutopkgtestPolicy(BasePolicy):
try:
with tarfile.open(None, 'r', tar_bytes) as tar:
exitcode = int(tar.extractfile('exitcode').read().strip())
srcver = tar.extractfile('testpkg-version').read().decode().strip()
try:
srcver = tar.extractfile('testpkg-version').read().decode().strip()
except KeyError as e:
# We have some buggy results in Ubuntu's swift that break a
# full reimport. Sometimes we fake up the exit code (when
# we want to convert tmpfails to permanent fails), but an
# early bug meant we sometimes didn't include a
# testpkg-version.
if exitcode in (4, 12, 20):
# repair it
srcver = "%s unknown" % (src)
else:
raise
(ressrc, ver) = srcver.split()
testinfo = json.loads(tar.extractfile('testinfo.json').read().decode())
except (KeyError, ValueError, tarfile.TarError) as e:

Loading…
Cancel
Save