canonical-ubuntu-qa team mailing list archive
-
canonical-ubuntu-qa team
-
Mailing list archive
-
Message #04812
[Merge] ~uralt/autopkgtest-cloud:get-by-uuid into autopkgtest-cloud:master
Ural Tunaboyu has proposed merging ~uralt/autopkgtest-cloud:get-by-uuid into autopkgtest-cloud:master.
Requested reviews:
Canonical's Ubuntu QA (canonical-ubuntu-qa)
For more details, see:
https://code.launchpad.net/~uralt/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/469607
Added a new endpoint for getting a test result directly by UUID at /<uuid>.
--
Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~uralt/autopkgtest-cloud:get-by-uuid into autopkgtest-cloud:master.
diff --git a/charms/focal/autopkgtest-web/webcontrol/browse-test.py b/charms/focal/autopkgtest-web/webcontrol/browse-test.py
index a01d944..95c1cc6 100755
--- a/charms/focal/autopkgtest-web/webcontrol/browse-test.py
+++ b/charms/focal/autopkgtest-web/webcontrol/browse-test.py
@@ -2,7 +2,7 @@
"""Run browse app in local debug mode for testing."""
import argparse
-import importlib
+from importlib import util, machinery
from pathlib import Path
try:
@@ -16,9 +16,9 @@ from helpers import tests, utils
# import browse.cgi
browse_path = str(Path(__file__).parent / "browse.cgi")
-loader = importlib.machinery.SourceFileLoader("browse", browse_path)
-spec = importlib.util.spec_from_loader("browse", loader)
-browse = importlib.util.module_from_spec(spec)
+loader = machinery.SourceFileLoader("browse", browse_path)
+spec = util.spec_from_loader("browse", loader)
+browse = util.module_from_spec(spec)
loader.exec_module(browse)
diff --git a/charms/focal/autopkgtest-web/webcontrol/browse.cgi b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
index 3029f4f..4007995 100755
--- a/charms/focal/autopkgtest-web/webcontrol/browse.cgi
+++ b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
@@ -755,6 +755,65 @@ def package_release_arch(package, release, arch, _=None):
title_suffix="- %s/%s/%s" % (package, release, arch),
)
+@app.route("/<uuid>")
+def get_by_uuid(uuid):
+ results = []
+ package = ""
+ release = ""
+ arch = ""
+ for row in db_con.execute("SELECT run_id, version, triggers, duration, exitcode, requester, env, uuid, package, release, arch FROM result "
+ "LEFT JOIN test ON result.test_id = test.id "
+ "WHERE uuid = ?",
+ (uuid,)):
+ requester = row[5] if row[5] else "-"
+ code = human_exitcode(row[4])
+ version = row[1]
+ triggers = row[2]
+ additional_params = row[
+ 6
+ ] # string of comma separated env variables e.g. all-proposed=1,test-name=mytest
+ package = row[8]
+ release = row[9]
+ arch = row[10]
+
+ show_retry = code != "pass"
+ url = os.path.join(
+ swift_container_url % release,
+ release,
+ arch,
+ srchash(package),
+ package,
+ row[0],
+ )
+ all_proposed = (
+ additional_params is not None
+ and "all-proposed=1" in additional_params
+ )
+ results.append(
+ (
+ version,
+ triggers,
+ additional_params,
+ human_date(row[0]),
+ human_sec(int(row[3])),
+ requester,
+ code,
+ url,
+ show_retry,
+ all_proposed,
+ row[7],
+ )
+ )
+ return render(
+ "browse-results.html",
+ package=package,
+ release=release,
+ arch=arch,
+ package_results=results,
+ title_suffix="- %s/%s/%s" % (package, release, arch),
+ )
+
+
@app.route("/releases/<release>")
@app.route("/releases/<release>/<arch>")
Follow ups