commit:     df8b25b39d422fd8152e6113c1443835d5aee091
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 16 14:57:34 2021 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sat Oct 16 14:57:34 2021 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=df8b25b3

Set the workers in worker_data in master.cfg

Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org>

 buildbot_gentoo_ci/config/builders.py | 21 +++++++---------
 buildbot_gentoo_ci/config/workers.py  | 45 +++++++++++++++++++++++++++++------
 2 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/buildbot_gentoo_ci/config/builders.py 
b/buildbot_gentoo_ci/config/builders.py
index c28d016..ca7fc73 100644
--- a/buildbot_gentoo_ci/config/builders.py
+++ b/buildbot_gentoo_ci/config/builders.py
@@ -5,16 +5,7 @@ from twisted.internet import defer
 
 from buildbot.plugins import util
 from buildbot_gentoo_ci.config import buildfactorys
-
-# FIXME: get LocalWorkers and BuildWorkers from db or file
-LocalWorkers = []
-LocalWorkers.append('updatedb_1')
-LocalWorkers.append('updatedb_2')
-LocalWorkers.append('updatedb_3')
-LocalWorkers.append('updatedb_4')
-
-BuildWorkers = []
-BuildWorkers.append('a89c2c1a-46e0-4ded-81dd-c51afeb7fcfd')
+from buildbot_gentoo_ci.config.workers import gentoo_ci_workers
 
 @defer.inlineCallbacks
 def CanWorkerBuildProject(builder, wfb, request):
@@ -29,10 +20,14 @@ def CanWorkerBuildProject(builder, wfb, request):
     print('no worker')
     return False
 
-def gentoo_builders(b=[]):
+def gentoo_builders(worker_data):
+    b = []
+    g_ci_w = gentoo_ci_workers(worker_data)
+    LocalWorkers = g_ci_w.getLocalWorkersUuid()
+    BuildWorkers = g_ci_w.getBuildWorkersUuid()
     b.append(util.BuilderConfig(
         name='update_db_check',
-        workername='updatedb_1',
+        workername=LocalWorkers[0],
         workerbuilddir='builds',
         collapseRequests=False,
         factory=buildfactorys.update_db_check()
@@ -40,7 +35,7 @@ def gentoo_builders(b=[]):
     )
     b.append(util.BuilderConfig(
         name='update_repo_check',
-        workername='updatedb_2',
+        workername=LocalWorkers[1],
         workerbuilddir='builds',
         collapseRequests=True,
         factory=buildfactorys.update_repo_check()

diff --git a/buildbot_gentoo_ci/config/workers.py 
b/buildbot_gentoo_ci/config/workers.py
index 6141d89..d9e7061 100644
--- a/buildbot_gentoo_ci/config/workers.py
+++ b/buildbot_gentoo_ci/config/workers.py
@@ -3,11 +3,42 @@
 
 from buildbot.plugins import worker
 
-def gentoo_workers(w=[]):
-    # FIXME: Get workers from db
-    w.append(worker.LocalWorker('updatedb_1'))
-    w.append(worker.LocalWorker('updatedb_2'))
-    w.append(worker.LocalWorker('updatedb_3'))
-    w.append(worker.LocalWorker('updatedb_4'))
-    w.append(worker.Worker('bot-test', 'test1234'))
+class gentoo_ci_workers():
+    def __init__(self, worker_data, **kwargs):
+        self.worker_data = worker_data
+
+    def getLocalWorkersUuid(self):
+        local_worker = []
+        for worker in self.worker_data:
+            if worker['type'] == 'local' and worker['enable'] is True:
+                local_worker.append(worker['uuid'])
+        print(local_worker)
+        return local_worker
+
+    def getBuildWorkersUuid(self):
+        build_worker = []
+        for worker in self.worker_data:
+            if worker['type'] != 'local' and worker['enable'] is True:
+                build_worker.append(worker['uuid'])
+        print(build_worker)
+        return build_worker
+
+    def getBuildWorkersAllData(self):
+        build_worker = []
+        for worker in self.worker_data:
+            if worker['type'] != 'local' and worker['enable'] is True:
+                build_worker.append(worker)
+        print(build_worker)
+        return build_worker
+
+def gentoo_workers(worker_data):
+    w = []
+    g_ci_w = gentoo_ci_workers(worker_data)
+    LocalWorkers = g_ci_w.getLocalWorkersUuid()
+    BuildWorkers = g_ci_w.getBuildWorkersAllData()
+    for local_worker in LocalWorkers:
+        w.append(worker.LocalWorker(local_worker))
+    for build_worker in BuildWorkers:
+        if build_worker['type'] == 'default':
+            w.append(worker.Worker(build_worker['uuid'], 
build_worker['password']))
     return w

Reply via email to