canonical-ubuntu-qa team mailing list archive
-
canonical-ubuntu-qa team
-
Mailing list archive
-
Message #03447
[Merge] ~andersson123/autopkgtest-cloud:fix-package-page-nonexistent-package into autopkgtest-cloud:master
Tim Andersson has proposed merging ~andersson123/autopkgtest-cloud:fix-package-page-nonexistent-package into autopkgtest-cloud:master.
Requested reviews:
Canonical's Ubuntu QA (canonical-ubuntu-qa)
Related bugs:
Bug #2058059 in Auto Package Testing: "Handle non-existent packages better"
https://bugs.launchpad.net/auto-package-testing/+bug/2058059
For more details, see:
https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/462703
--
Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~andersson123/autopkgtest-cloud:fix-package-page-nonexistent-package into autopkgtest-cloud:master.
diff --git a/charms/focal/autopkgtest-web/webcontrol/browse.cgi b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
index 810163d..27d36e5 100755
--- a/charms/focal/autopkgtest-web/webcontrol/browse.cgi
+++ b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
@@ -12,7 +12,7 @@ from wsgiref.handlers import CGIHandler
import flask
from helpers.admin import select_abnormally_long_jobs
-from helpers.exceptions import RunningJSONNotFound
+from helpers.exceptions import NonExistentPackage, RunningJSONNotFound
from helpers.utils import get_all_releases, get_supported_releases
from werkzeug.middleware.proxy_fix import ProxyFix
@@ -279,6 +279,8 @@ def package_overview(package, _=None):
):
arches.add(row[3])
results.setdefault(row[2], {})[row[3]] = human_exitcode(row[1])
+ if not results:
+ raise NonExistentPackage()
running_info = dict(
(k, v) for (k, v) in get_running_jobs().items() if k == package
diff --git a/charms/focal/autopkgtest-web/webcontrol/helpers/exceptions.py b/charms/focal/autopkgtest-web/webcontrol/helpers/exceptions.py
index e94164e..9b32ae4 100644
--- a/charms/focal/autopkgtest-web/webcontrol/helpers/exceptions.py
+++ b/charms/focal/autopkgtest-web/webcontrol/helpers/exceptions.py
@@ -15,6 +15,15 @@ class RunningJSONNotFound(FileNotFoundError):
return 500
+class NonExistentPackage(Exception):
+ def __init__(self):
+ super().__init__()
+ self._code = 404
+
+ def exit_code(self):
+ return self._code
+
+
class WebControlException(Exception):
def __init__(self, message, exit_code):
super().__init__(message)