From 121f0c6d87142c83b8159c57c3bc551e8cc21ef0 Mon Sep 17 00:00:00 2001 From: Lars Erik Wik Date: Fri, 16 Oct 2026 11:40:41 +0200 Subject: [PATCH 1/2] Fixed packages_mapping crash on missing Response.ok Introduced in #119, which replaced requests with a Response class that has no ok attribute. Check status_code instead. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Lars Erik Wik --- tom/packages.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tom/packages.py b/tom/packages.py index 1d9b181..c36e056 100644 --- a/tom/packages.py +++ b/tom/packages.py @@ -126,7 +126,7 @@ def run(self, inputs): "https://cfengine.com/release-data/%s/releases.json" % product ) releases_request = network.get(releases_url) - if not releases_request.ok: + if releases_request.status_code != 200: raise URLDownloadFailureException( "failed to download %s, return code %d" % (releases_url, releases_request.status_code) @@ -234,7 +234,7 @@ def run(self, inputs): def collect_packages(self, url): """Given a release URL, returns a dict where keys are platform names, and values are {'url': 'http...'}""" release_request = network.get(url) - if not release_request.ok: + if release_request.status_code != 200: raise URLDownloadFailureException( "failed to download %s, return code %d" % (url, release_request.status_code) From 5d76c4e3826e6490b677a55b1b8b0dcd0efe462b Mon Sep 17 00:00:00 2001 From: Lars Erik Wik Date: Fri, 16 Oct 2026 11:43:11 +0200 Subject: [PATCH 2/2] Fixed error response body being dropped on HTTP errors Introduced in #119. Callers expecting the error JSON crashed on an empty body. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Lars Erik Wik --- tom/network.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tom/network.py b/tom/network.py index f71909a..8c5a219 100644 --- a/tom/network.py +++ b/tom/network.py @@ -60,6 +60,8 @@ def _handle_request( result.headers = r.headers except HTTPError as e: result.status_code = e.code + result.text = e.read().decode("utf-8") + result.headers = e.headers return result