canonical-ubuntu-qa team mailing list archive
-
canonical-ubuntu-qa team
-
Mailing list archive
-
Message #01701
[Merge] ~andersson123/autopkgtest-cloud:preserve-all-proposed into autopkgtest-cloud:master
Tim Andersson has proposed merging ~andersson123/autopkgtest-cloud:preserve-all-proposed into autopkgtest-cloud:master.
Requested reviews:
Canonical's Ubuntu QA (canonical-ubuntu-qa)
Related bugs:
Bug #1999163 in Auto Package Testing: "Retry "button" drops all-proposed flag"
https://bugs.launchpad.net/auto-package-testing/+bug/1999163
For more details, see:
https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/453426
--
Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~andersson123/autopkgtest-cloud:preserve-all-proposed into autopkgtest-cloud:master.
diff --git a/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker b/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
index 980d63b..d15aa10 100755
--- a/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
+++ b/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
@@ -313,7 +313,7 @@ def request_matches_per_package(package, arch, release, s):
)
-def process_output_dir(dir, pkgname, code, triggers):
+def process_output_dir(dir, pkgname, code, triggers, all_proposed):
"""Post-process output directory"""
files = set(os.listdir(dir))
@@ -342,6 +342,15 @@ def process_output_dir(dir, pkgname, code, triggers):
d = {"custom_environment": ["ADT_TEST_TRIGGERS=%s" % triggers]}
json.dump(d, testinfo, indent=True)
files.add("testinfo.json")
+ # We need to add more info to testinfo.json for the purpose of
+ # users re-queueing tests
+ if all_proposed:
+ d = {}
+ with open(os.path.join(dir, "testinfo.json"), "r") as testinfo:
+ d = json.load(testinfo)
+ d["all-proposed"] = 1
+ with open(os.path.join(dir, "testinfo.json"), "w") as testinfo:
+ json.dump(d, testinfo, indent=True)
with open(os.path.join(dir, "testpkg-version"), "r") as tpv:
testpkg_version = tpv.read().split()[1]
@@ -1238,7 +1247,11 @@ def request(msg):
f.write("%s\n" % params["readable-by"])
(testpkg_version, duration, requester) = process_output_dir(
- out_dir, pkgname, code, params.get("triggers", [])
+ out_dir,
+ pkgname,
+ code,
+ params.get("triggers", []),
+ "all-proposed" in params.keys(),
)
# If two tests for the same package with different triggers finish at the
@@ -1361,6 +1374,7 @@ def request(msg):
"requester": requester,
"swift_dir": swift_dir,
"triggers": triggers,
+ "all-proposed": 1 if "all-proposed" in params else 0,
}
)
complete_amqp.basic_publish(
diff --git a/charms/focal/autopkgtest-web/webcontrol/browse.cgi b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
index d7bc343..91630b0 100755
--- a/charms/focal/autopkgtest-web/webcontrol/browse.cgi
+++ b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
@@ -290,16 +290,20 @@ def package_release_arch(package, release, arch, _=None):
seen = set()
results = []
for row in db_con.execute(
- "SELECT run_id, version, triggers, duration, exitcode, requester FROM result "
+ "SELECT run_id, version, triggers, duration, exitcode, requester, all_proposed FROM result "
"WHERE test_id=? "
"ORDER BY run_id DESC",
(test_id,),
):
requester = row[5] if row[5] else "-"
code = human_exitcode(row[4])
+ version = row[1]
+ triggers = row[2]
+ all_proposed = row[6] if row[6] else False
+
identifier = (
- row[1],
- row[2],
+ version,
+ triggers,
) # Version + triggers uniquely identifies this result
show_retry = code != "pass" and identifier not in seen
seen.add(identifier)
@@ -313,14 +317,15 @@ def package_release_arch(package, release, arch, _=None):
)
results.append(
(
- row[1],
- row[2],
+ version,
+ triggers,
human_date(row[0]),
human_sec(row[3]),
requester,
code,
url,
show_retry,
+ "&all-proposed=1" if all_proposed == 1 else "",
)
)
diff --git a/charms/focal/autopkgtest-web/webcontrol/download-all-results b/charms/focal/autopkgtest-web/webcontrol/download-all-results
index 53a3983..744508e 100755
--- a/charms/focal/autopkgtest-web/webcontrol/download-all-results
+++ b/charms/focal/autopkgtest-web/webcontrol/download-all-results
@@ -161,6 +161,10 @@ def fetch_one_result(url):
else:
LOGGER.error("%s result has no ADT_TEST_TRIGGERS, ignoring", url)
return
+ # add a check to see if all-proposed in testinfo
+ # Change this to add data to separate column
+ # if "all-proposed" in testinfo.keys():
+ # test_triggers += " all-proposed=1"
LOGGER.debug(
"Fetched test result for %s/%s/%s/%s %s (triggers: %s): exit code %i",
@@ -176,7 +180,7 @@ def fetch_one_result(url):
try:
c = db_con.cursor()
c.execute(
- "INSERT INTO result VALUES (?, ?, ?, ?, ?, ?, ?)",
+ "INSERT INTO result VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
(
test_id,
run_id,
@@ -185,6 +189,7 @@ def fetch_one_result(url):
duration,
exitcode,
requester,
+ 1 if "all-proposed" in testinfo.keys() else 0,
),
)
db_con.commit()
diff --git a/charms/focal/autopkgtest-web/webcontrol/download-results b/charms/focal/autopkgtest-web/webcontrol/download-results
index d97b98a..ce2d0c8 100755
--- a/charms/focal/autopkgtest-web/webcontrol/download-results
+++ b/charms/focal/autopkgtest-web/webcontrol/download-results
@@ -79,12 +79,15 @@ def process_message(msg, db_con):
msg.channel.basic_ack(msg.delivery_tag)
return
+ # if info["all-proposed"] == 1:
+ # triggers += " all-proposed=1"
+
test_id = get_test_id(db_con, release, arch, package)
try:
c = db_con.cursor()
c.execute(
- "INSERT INTO result VALUES (?, ?, ?, ?, ?, ?, ?)",
+ "INSERT INTO result VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
(
test_id,
run_id,
@@ -93,6 +96,7 @@ def process_message(msg, db_con):
duration,
exitcode,
requester,
+ 1 if info["all-proposed"] == 1 else 0,
),
)
db_con.commit()
diff --git a/charms/focal/autopkgtest-web/webcontrol/templates/browse-results.html b/charms/focal/autopkgtest-web/webcontrol/templates/browse-results.html
index 7fc194a..3ec6adc 100644
--- a/charms/focal/autopkgtest-web/webcontrol/templates/browse-results.html
+++ b/charms/focal/autopkgtest-web/webcontrol/templates/browse-results.html
@@ -26,7 +26,8 @@
<a href="{{row[6]}}/artifacts.tar.gz">artifacts</a>  
{% if row[7] %}
{% set ts = row[1].split()|map('urlencode')|join("&trigger=")|safe %}
- <a href="{{base_url}}request.cgi?release={{release}}&arch={{arch}}&package={{package|urlencode}}&trigger={{ts}}">♻</a>
+ {% set ap = row[8] %}
+ <a href="{{base_url}}request.cgi?release={{release}}&arch={{arch}}&package={{package|urlencode}}&trigger={{ts}}{{ap}}">♻</a>
{% endif %}
</td>
</tr>
Follow ups