commit 80d3a5b11e2a1c384c2e3b27b9fb2c14c5ed4e62
parent 2134732d7eee02aaf58e6d4e232d1141a4d019e4
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date: Tue, 21 May 2019 18:27:01 +0200
Worker picking logic was conceptually wrong.
Diffstat:
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/buildbot/master.cfg b/buildbot/master.cfg
@@ -99,6 +99,23 @@ c["workers"] = [
# deployment.
worker.Worker("auditor-worker-blue", "auditor-blue-pass")]
+
+##
+# Maps usernames to workers.
+#
+def pick_map(buildername):
+
+ builder_worker_map = {"test-green": "builder-worker-green",
+ "test-blue": "builder-worker-blue"}
+ topper_worker_map = {"test-green": "topper-worker-green",
+ "test-blue": "topper-worker-blue"}
+ auditor_worker_map = {"test-green": "auditor-worker-green",
+ "test-blue": "auditor-worker-blue"}
+ meta_map = {"builder-builder": builder_worker_map,
+ "auditor-builder": auditor_worker_map,
+ "tip-reserve-topper-builder": topper_worker_map}
+
+ return meta_map.get(buildername)
# 'protocols' contains information about protocols which master
# will use for communicating with workers. You must define at
# least 'port' option that workers could connect to your master
@@ -492,9 +509,9 @@ def pick_active_color(builder, workers_list, build_request):
return None
active = f.readline().rstrip()
print("Found active color: %s" % str(active))
-
+ aw = pick_map(builder.name).get(str(active))
for worker in workers_list:
- if active == getuser():
+ if aw = worker.worker.workername:
f.close()
print("Scheduling worker: %s" % str(worker))
return worker
@@ -536,9 +553,9 @@ def pick_inactive_color(builder, workers_list, build_request):
return None
nonactive = f.readline().rstrip()
print("Found nonactive color: %s" % str(nonactive))
-
+ nw = pick_map(builder.name).get(str(nonactive))
for worker in workers_list:
- if nonactive == getuser():
+ if nw = worker.worker.workername:
f.close()
print("Scheduling worker: %s" % str(worker))
return worker