commit:     8e0586a1bd9bf20f83ff21eff6349d263b621cd3
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 12 03:14:12 2022 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Oct 12 03:14:12 2022 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=8e0586a1

Add config option for worker basedir

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

 buildbot_gentoo_ci/config/config.py  |  3 +++
 buildbot_gentoo_ci/db/builds.py      |  2 +-
 buildbot_gentoo_ci/steps/builders.py |  4 ++--
 buildbot_gentoo_ci/steps/logs.py     |  2 +-
 buildbot_gentoo_ci/steps/package.py  | 11 +++++++++--
 buildbot_gentoo_ci/steps/repos.py    |  2 +-
 buildbot_gentoo_ci/steps/version.py  | 11 ++++++++---
 gentooci.cfg                         |  9 ++++++++-
 8 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/buildbot_gentoo_ci/config/config.py 
b/buildbot_gentoo_ci/config/config.py
index faf2058..e2f33be 100644
--- a/buildbot_gentoo_ci/config/config.py
+++ b/buildbot_gentoo_ci/config/config.py
@@ -92,6 +92,7 @@ class GentooCiConfig(util.ComparableMixin):
     _known_config_keys = set([
         "db_url",
         "project",
+        "worker_config",
         "repository_basedir"
     ])
 
@@ -149,3 +150,5 @@ class GentooCiConfig(util.ComparableMixin):
             self.project['repository_basedir'] = 
config_dict['repository_basedir']
         else:
             self.project['repository_basedir'] = DEFAULT_REPOSITORY_BASEDIR
+        if 'worker_config' in config_dict:
+            self.project['worker_config'] = config_dict['worker_config']

diff --git a/buildbot_gentoo_ci/db/builds.py b/buildbot_gentoo_ci/db/builds.py
index 57302ef..1cf2439 100644
--- a/buildbot_gentoo_ci/db/builds.py
+++ b/buildbot_gentoo_ci/db/builds.py
@@ -54,7 +54,7 @@ class BuildsConnectorComponent(base.DBConnectorComponent):
         return self.db.pool.do(thd)
 
     @defer.inlineCallbacks
-    def setStausBuilds(self, id, status):
+    def setStatusBuilds(self, id, status):
         updated_at = int(self.master.reactor.seconds())
         def thd(conn, no_recurse=False):
         

diff --git a/buildbot_gentoo_ci/steps/builders.py 
b/buildbot_gentoo_ci/steps/builders.py
index aed9edb..1746122 100644
--- a/buildbot_gentoo_ci/steps/builders.py
+++ b/buildbot_gentoo_ci/steps/builders.py
@@ -316,7 +316,7 @@ class SetupPropertys(BuildStep):
     def run(self):
         self.gentooci = 
self.master.namedServices['services'].namedServices['gentooci']
         print('build this %s' % self.getProperty("cpv"))
-        self.setProperty('portage_repos_path', 
self.gentooci.config.project['project']['worker_portage_repos_path'], 
'portage_repos_path')
+        self.setProperty('portage_repos_path', 
self.gentooci.config.project['worker_config']['portage_repos_path'], 
'portage_repos_path')
         self.setProperty('rootworkdir', False, 'rootworkdir')
         projectrepository_data = self.getProperty('projectrepository_data')
         print(projectrepository_data)
@@ -333,7 +333,7 @@ class SetupPropertys(BuildStep):
         project_build_data = self.getProperty('project_build_data')
         project_build_data['status'] = 'in-progress'
         project_build_data['buildbot_build_id'] = 
self.getProperty("buildnumber")
-        yield self.gentooci.db.builds.setStausBuilds(
+        yield self.gentooci.db.builds.setStatusBuilds(
                                                     project_build_data['id'],
                                                     
project_build_data['status'])
         yield self.gentooci.db.builds.setBuildbotBuildIdBuilds(

diff --git a/buildbot_gentoo_ci/steps/logs.py b/buildbot_gentoo_ci/steps/logs.py
index becf7d1..67845e7 100644
--- a/buildbot_gentoo_ci/steps/logs.py
+++ b/buildbot_gentoo_ci/steps/logs.py
@@ -596,7 +596,7 @@ class setBuildStatus(BuildStep):
     def run(self):
         self.gentooci = 
self.master.namedServices['services'].namedServices['gentooci']
         project_build_data = self.getProperty('project_build_data')
-        yield self.gentooci.db.builds.setStausBuilds(
+        yield self.gentooci.db.builds.setStatusBuilds(
                                                     project_build_data['id'],
                                                     self.getProperty('status')
                                                     )

diff --git a/buildbot_gentoo_ci/steps/package.py 
b/buildbot_gentoo_ci/steps/package.py
index 81b400d..9fc59e8 100644
--- a/buildbot_gentoo_ci/steps/package.py
+++ b/buildbot_gentoo_ci/steps/package.py
@@ -29,8 +29,15 @@ class SetupPropertys(BuildStep):
 
     #@defer.inlineCallbacks
     def run(self):
-        self.setProperty('portage_repos_path', '/repositorys', 
'portage_repos_path')
-        self.setProperty('rootworkdir', '/var/lib/buildbot_worker', 
'rootworkdir')
+        self.gentooci = 
self.master.namedServices['services'].namedServices['gentooci']
+        if self.gentooci.config.project['worker_config']['basedir'] is None:
+            worker_basedir = self.getProperty('builddir').split('/builds')[0]
+        else:
+            worker_basedir = 
self.gentooci.config.project['worker_config']['basedir']
+        self.setProperty('worker_basedir', worker_basedir, 'worker_basedir')
+        self.setProperty('rootworkdir', False, 'rootworkdir')
+        portage_repos_path = os.path.join(worker_basedir, 
self.gentooci.config.project['worker_config']['repository_basedir'])
+        self.setProperty('portage_repos_path', portage_repos_path, 
'portage_repos_path')
         return SUCCESS
 
 class AddPackage(BuildStep):

diff --git a/buildbot_gentoo_ci/steps/repos.py 
b/buildbot_gentoo_ci/steps/repos.py
index 5b4b623..04b25d7 100644
--- a/buildbot_gentoo_ci/steps/repos.py
+++ b/buildbot_gentoo_ci/steps/repos.py
@@ -193,7 +193,7 @@ class UpdateRepos(BuildStep):
             print(repository_data)
             if repository_data['auto'] and repository_data['enabled']:
                 if self.getProperty('rootworkdir'):
-                    repository_path = 
os.path.join(self.getProperty('rootworkdir'), portage_repos_path[1:], 
repository_data['name'])
+                    repository_path = 
os.path.join(self.getProperty('rootworkdir'), portage_repos_path, 
repository_data['name'])
                 else:
                     repository_path = os.path.join(portage_repos_path, 
repository_data['name'], '')
                 if repository_data['branch']:

diff --git a/buildbot_gentoo_ci/steps/version.py 
b/buildbot_gentoo_ci/steps/version.py
index 26cf9fc..14d1d97 100644
--- a/buildbot_gentoo_ci/steps/version.py
+++ b/buildbot_gentoo_ci/steps/version.py
@@ -317,7 +317,7 @@ class CheckPath(BuildStep):
     @defer.inlineCallbacks
     def run(self):
         self.gentooci = 
self.master.namedServices['services'].namedServices['gentooci']
-        self.repository_basedir = yield 
os.path.join(self.getProperty("rootworkdir"), 
self.getProperty('portage_repos_path')[1:])
+        self.repository_basedir = yield 
os.path.join(self.getProperty("worker_basedir"), 
self.getProperty('portage_repos_path'))
         self.repository_path = yield os.path.join(self.repository_basedir, 
self.getProperty("repository_data")['name'])
         self.cp_path = yield pkgsplit(self.getProperty("cpv"))[0]
         self.file_name = yield self.getProperty("package_data")['name'] + '-' 
+ self.getProperty("version") + '.ebuild'
@@ -392,9 +392,14 @@ class SetupPropertys(BuildStep):
 
     @defer.inlineCallbacks
     def run(self):
-        self.setProperty('portage_repos_path', '/repositorys', 
'portage_repos_path')
-        self.setProperty('rootworkdir', '/var/lib/buildbot_worker', 
'rootworkdir')
         self.gentooci = 
self.master.namedServices['services'].namedServices['gentooci']
+        if self.gentooci.config.project['worker_config']['basedir'] is None:
+            worker_basedir = self.getProperty('builddir').split('/builds')[0]
+        else:
+            worker_basedir = 
self.gentooci.config.project['worker_config']['basedir']
+        self.setProperty('worker_basedir', worker_basedir, 'worker_basedir')
+        portage_repos_path = os.path.join(worker_basedir, 
self.gentooci.config.project['worker_config']['repository_basedir'])
+        self.setProperty('portage_repos_path', portage_repos_path, 
'portage_repos_path')
         print(self.getProperty("cpv"))
         self.version = yield cpv_getversion(self.getProperty("cpv"))
         print(self.version)

diff --git a/gentooci.cfg b/gentooci.cfg
index ca3afe3..cd4bfda 100644
--- a/gentooci.cfg
+++ b/gentooci.cfg
@@ -30,9 +30,16 @@ makeconf_list.append('PORTAGE_LOG_FILTER_FILE_CMD="bash -c 
\'ansifilter --ignore
 # This specifies what project buildbot uses for Gentoo Ci as default
 c['project'] = {
     'update_db' : 'gosbsbase',
-    'worker_portage_repos_path' : '/var/db/repos/',
+    'worker_portage_repos_path' : '/var/db/repos',
     'config_makeconfig' : makeconf_list,
 }
 
 # This specifies what the repository base dir is
 c['repository_basedir'] = "repositorys"
+
+# This specifies worker configs
+c['worker_config'] = {
+    'basedir' : None,
+    'repository_basedir' : 'repositorys',
+    'portage_repos_path' : '/var/db/repos',
+}

Reply via email to