canonical-ubuntu-qa team mailing list archive
-
canonical-ubuntu-qa team
-
Mailing list archive
-
Message #04015
[Merge] ~andersson123/autopkgtest-cloud:die-roll-mechanism-stable-vs-devel into autopkgtest-cloud:master
Tim Andersson has proposed merging ~andersson123/autopkgtest-cloud:die-roll-mechanism-stable-vs-devel into autopkgtest-cloud:master.
Requested reviews:
Canonical's Ubuntu QA (canonical-ubuntu-qa)
For more details, see:
https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/465916
--
Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~andersson123/autopkgtest-cloud:die-roll-mechanism-stable-vs-devel 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 af3b906..d01f827 100755
--- a/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
+++ b/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
@@ -697,6 +697,7 @@ def request(msg):
raise NotImplementedError(
"cannot parse queue name %s" % msg.delivery_info["routing_key"]
)
+ # Add die roll mechanism here for stable vs devel
systemd_logging_handler._extra["ADT_RELEASE"] = release
systemd_logging_handler._extra["ADT_ARCH"] = architecture
@@ -707,6 +708,28 @@ def request(msg):
)
except Exception as _:
worker_upstream_percentage = 33
+
+ try:
+ stable_release_percentage = int(
+ cfg["autopkgtest"]["stable_release_percentage"]
+ )
+ except Exception as _:
+ stable_release_percentage = 100
+
+ if release != distro_info.UbuntuDistroInfo().devel():
+ if random.randint(1, 100) > stable_release_percentage:
+ logging.info(
+ "Stable release test request and 1d100 rolled above %i, skipping for now",
+ stable_release_percentage,
+ )
+ msg.channel.basic_reject(msg.delivery_tag, requeue=True)
+ return
+ else:
+ logging.info(
+ "Stable release test request and 1d100 rolled below %i, running it now",
+ stable_release_percentage,
+ )
+
if msg.delivery_info["routing_key"].startswith("debci-upstream-"):
# crude way to not allow upstream tests to monopolise resources - only X%
# of chances to really run them
diff --git a/charms/focal/autopkgtest-cloud-worker/config.yaml b/charms/focal/autopkgtest-cloud-worker/config.yaml
index 3719fad..ddbeae5 100644
--- a/charms/focal/autopkgtest-cloud-worker/config.yaml
+++ b/charms/focal/autopkgtest-cloud-worker/config.yaml
@@ -119,3 +119,8 @@ options:
description: Percentage of workers that'll accept upstream tests.
This is useful to prioritise certain tests.
type: int
+ stable-release-percentage:
+ default: 100
+ description: Percentage of workers that'll accept test requests for
+ stable releases. This is useful to prioritise tests
+ for the development release.
diff --git a/charms/focal/autopkgtest-cloud-worker/reactive/autopkgtest_cloud_worker.py b/charms/focal/autopkgtest-cloud-worker/reactive/autopkgtest_cloud_worker.py
index c8874c3..9aa2444 100644
--- a/charms/focal/autopkgtest-cloud-worker/reactive/autopkgtest_cloud_worker.py
+++ b/charms/focal/autopkgtest-cloud-worker/reactive/autopkgtest_cloud_worker.py
@@ -506,6 +506,7 @@ def write_swift_config():
"config.changed.mirror",
"config.changed.net-name",
"config.changed.worker-upstream-percentage",
+ "config.changed.stable-release-percentage",
)
@when_any("config.set.nova-rcs", "config.set.lxd-remotes")
def write_worker_config():
@@ -533,6 +534,9 @@ def write_worker_config():
"worker_upstream_percentage": config().get(
"worker-upstream-percentage"
),
+ "stable_release_percentage": config().get(
+ "stable-release-percentage"
+ ),
},
"virt": {
"package_size_default": config().get("worker-default-flavor"),
diff --git a/mojo/service-bundle b/mojo/service-bundle
index 77703c1..1b0c64e 100644
--- a/mojo/service-bundle
+++ b/mojo/service-bundle
@@ -76,6 +76,7 @@ applications:
nova-rcs: include-base64://{{local_dir}}/novarcs.tar
worker-tmp-cleanup-config: D /tmp 1777 root root 30d
worker-upstream-percentage: 33
+ stable-release-percentage: 100
{%- if stage_name == "production" %}
net-name: net_prod-proposed-migration
worker-default-flavor: autopkgtest