commit:     45fe4420dd0bc2057e50ff2382c070c214cfd68a
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 13 19:41:44 2022 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 19:41:44 2022 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=45fe4420

Add support log docker worker

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

 buildbot_gentoo_ci/config/builders.py | 19 ++++----
 buildbot_gentoo_ci/config/workers.py  | 89 +++++++++++++++--------------------
 master.cfg                            |  1 +
 3 files changed, 48 insertions(+), 61 deletions(-)

diff --git a/buildbot_gentoo_ci/config/builders.py 
b/buildbot_gentoo_ci/config/builders.py
index 6f3d606..e168cf5 100644
--- a/buildbot_gentoo_ci/config/builders.py
+++ b/buildbot_gentoo_ci/config/builders.py
@@ -23,12 +23,9 @@ def CanWorkerBuildProject(builder, wfb, request):
 def gentoo_builders(worker_data):
     b = []
     g_ci_w = gentoo_ci_workers(worker_data)
-    LocalWorkers = g_ci_w.getLocalWorkersUuid()
-    BuildWorkers = g_ci_w.getBuildWorkersUuid()
-    NodeWorkers = g_ci_w.getNodeWorkersUuid()
     b.append(util.BuilderConfig(
         name='update_db_check',
-        workername=LocalWorkers[0],
+        workername=g_ci_w.getWorkersUuid('local')[0],
         workerbuilddir='builds',
         collapseRequests=False,
         factory=buildfactorys.update_db_check()
@@ -36,7 +33,7 @@ def gentoo_builders(worker_data):
     )
     b.append(util.BuilderConfig(
         name='update_repo_check',
-        workername=LocalWorkers[1],
+        workername=g_ci_w.getWorkersUuid('local')[1],
         workerbuilddir='builds',
         collapseRequests=True,
         factory=buildfactorys.update_repo_check()
@@ -48,7 +45,7 @@ def gentoo_builders(worker_data):
     # first LocalWorker need to be done before we can use mulitplay workers 
(git pull)
     b.append(util.BuilderConfig(
         name='update_cpv_data',
-        workernames=LocalWorkers,
+        workernames=g_ci_w.getWorkersUuid('local'),
         workerbuilddir='builds',
         collapseRequests=False,
         factory=buildfactorys.update_db_cp()
@@ -57,7 +54,7 @@ def gentoo_builders(worker_data):
     # Use multiplay workers
     b.append(util.BuilderConfig(
         name='update_v_data',
-        workernames=LocalWorkers,
+        workernames=g_ci_w.getWorkersUuid('local'),
         workerbuilddir='builds',
         collapseRequests=False,
         factory=buildfactorys.update_db_v()
@@ -66,7 +63,7 @@ def gentoo_builders(worker_data):
     # Use multiplay workers
     b.append(util.BuilderConfig(
         name='build_request_data',
-        workernames=LocalWorkers,
+        workernames=g_ci_w.getWorkersUuid('local'),
         collapseRequests=False,
         factory=buildfactorys.build_request_check()
         )
@@ -74,7 +71,7 @@ def gentoo_builders(worker_data):
     # Use multiplay workers
     b.append(util.BuilderConfig(
         name='run_build_request',
-        workernames=BuildWorkers,
+        workernames=g_ci_w.getWorkersUuid('docker'),
         canStartBuild=CanWorkerBuildProject,
         collapseRequests=False,
         factory=buildfactorys.run_build_request()
@@ -83,7 +80,7 @@ def gentoo_builders(worker_data):
     # Use multiplay workers
     b.append(util.BuilderConfig(
         name='parse_build_log',
-        workernames=LocalWorkers,
+        workernames=g_ci_w.getWorkersUuid('log'),
         collapseRequests=False,
         factory=buildfactorys.parse_build_log()
         )
@@ -91,7 +88,7 @@ def gentoo_builders(worker_data):
     # For node workers
     b.append(util.BuilderConfig(
         name='run_build_stage4_request',
-        workernames=NodeWorkers,
+        workernames=g_ci_w.getWorkersUuid('node'),
         #FIXME: support more the one node
         #canStartBuild=CanWorkerBuildProject,
         collapseRequests=False,

diff --git a/buildbot_gentoo_ci/config/workers.py 
b/buildbot_gentoo_ci/config/workers.py
index d4c20f7..42c6631 100644
--- a/buildbot_gentoo_ci/config/workers.py
+++ b/buildbot_gentoo_ci/config/workers.py
@@ -7,50 +7,30 @@ class gentoo_ci_workers():
     def __init__(self, worker_data, **kwargs):
         self.worker_data = worker_data
 
-    def getLocalWorkersUuid(self):
-        local_worker = []
+    def getWorkersUuid(self, worker_type):
+        worker_list = []
         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
+            if worker['type'] == worker_type and worker['enable'] is True:
+                worker_list.append(worker['uuid'])
+        print(worker_list)
+        return worker_list
 
-    def getBuildWorkersUuid(self):
-        build_worker = []
+    def getWorkersAllData(self, worker_type):
+        worker_list = []
         for worker in self.worker_data:
-            if (worker['type'] != 'local' and worker['type'] != 'node') 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['type'] != 'node') and 
worker['enable'] is True:
-                build_worker.append(worker)
-        print(build_worker)
-        return build_worker
-
-    def getNodeWorkersUuid(self):
-        node_worker = []
-        for worker in self.worker_data:
-            if worker['type'] == 'node' and worker['enable'] is True:
-                node_worker.append(worker['uuid'])
-        print(node_worker)
-        return node_worker
-
-    def getNodedWorkersAllData(self):
-        node_worker = []
-        for worker in self.worker_data:
-            if worker['type'] == 'node' and worker['enable'] is True:
-                node_worker.append(worker)
-        print(node_worker)
-        return node_worker
+            if worker['type'] == worker_type and worker['enable'] is True:
+                worker_list.append(worker)
+        print(worker_list)
+        return worker_list
 
 @util.renderer
-def docker_images(props):
+def build_docker_images(props):
     return 'bb-worker-' + props.getProperty('project_uuid') + ':latest'
 
[email protected]
+def log_docker_images(props):
+    return 'bb-worker-log' + ':latest'
+
 @util.renderer
 def docker_volumes(props):
     volumes_list = []
@@ -66,9 +46,12 @@ def docker_volumes(props):
 def gentoo_workers(worker_data):
     w = []
     g_ci_w = gentoo_ci_workers(worker_data)
-    LocalWorkers = g_ci_w.getLocalWorkersUuid()
-    BuildWorkers = g_ci_w.getBuildWorkersAllData()
-    NodeWorkers = g_ci_w.getNodedWorkersAllData()
+
+    for local_worker in g_ci_w.getWorkersUuid('local'):
+        w.append(worker.LocalWorker(local_worker))
+    for node_worker in g_ci_w.getWorkersAllData('node'):
+        w.append(worker.Worker(node_worker['uuid'], node_worker['password']))
+    # docker workers
     docker_hostconfig = {}
     # For use of sandbox stuff
     # FEATURES="ipc-sandbox network-sandbox pid-sandbox"
@@ -76,24 +59,30 @@ def gentoo_workers(worker_data):
     # libseccomp overhead
     # https://github.com/seccomp/libseccomp/issues/153
     docker_hostconfig['security_opt'] = ['seccomp=unconfined']
-    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']))
+    for build_worker in g_ci_w.getWorkersAllData('docker'):
         #FIXME: set settings in master.cfg
         if build_worker['type'] == 'docker':
             w.append(worker.DockerLatentWorker(build_worker['uuid'],
                             build_worker['password'],
-                            docker_host='tcp://192.168.1.3:2375',
-                            image=docker_images,
+                            docker_host='tcp://192.168.1.12:2375',
+                            image=build_docker_images,
                             volumes=docker_volumes,
                             hostconfig=docker_hostconfig,
                             followStartupLogs=True,
                             masterFQDN='192.168.1.5',
                             build_wait_timeout=3600
                             ))
-    for node_worker in NodeWorkers:
-        if node_worker['type'] == 'node':
-            w.append(worker.Worker(node_worker['uuid'], 
node_worker['password']))
+    for log_worker in g_ci_w.getWorkersAllData('log'):
+        #FIXME: set settings in master.cfg
+        if log_worker['type'] == 'log':
+            w.append(worker.DockerLatentWorker(log_worker['uuid'],
+                            log_worker['password'],
+                            docker_host='tcp://192.168.1.12:2375',
+                            image=log_docker_images,
+                            #volumes=docker_volumes,
+                            hostconfig=docker_hostconfig,
+                            followStartupLogs=True,
+                            masterFQDN='192.168.1.5',
+                            build_wait_timeout=3600
+                            ))
     return w

diff --git a/master.cfg b/master.cfg
index f61fdc4..7d5af61 100644
--- a/master.cfg
+++ b/master.cfg
@@ -12,6 +12,7 @@ worker_data = [
     {'uuid' : 'updatedb_2', 'password' : '', 'type' : 'local', 'enable' : 
True, },
     {'uuid' : 'updatedb_3', 'password' : '', 'type' : 'local', 'enable' : 
True, },
     {'uuid' : 'updatedb_4', 'password' : '', 'type' : 'local', 'enable' : 
True, },
+    {'uuid' : 'c89c2c1a-46e0-4ded-81dd-c51afeb7fcfa', 'password' : 'test', 
'type' : 'log', 'enable' : True, },
     {'uuid' : 'a89c2c1a-46e0-4ded-81dd-c51afeb7fcfa', 'password' : 'test', 
'type' : 'docker', 'enable' : True, },
     {'uuid' : 'a89c2c1a-46e0-4ded-81dd-c51afeb7fcfb', 'password' : 'test', 
'type' : 'docker', 'enable' : True, },
     {'uuid' : 'a89c2c1a-46e0-4ded-81dd-c51afeb7fcfd', 'password' : 'test', 
'type' : 'docker', 'enable' : True, },

Reply via email to