commit: adea4206026bfb0ef1cc9a5f2995a90e58fd9fa5
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 28 10:09:12 2022 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Jan 28 10:09:12 2022 +0000
URL:
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=adea4206
Change use of repository_basedir and use pathlib for symlink
Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org>
buildbot_gentoo_ci/steps/portage.py | 31 ++++++++++++++++++-------------
buildbot_gentoo_ci/steps/repos.py | 21 ++++++++++++++-------
buildbot_gentoo_ci/steps/version.py | 5 ++---
3 files changed, 34 insertions(+), 23 deletions(-)
diff --git a/buildbot_gentoo_ci/steps/portage.py
b/buildbot_gentoo_ci/steps/portage.py
index e5d0a25..2332626 100644
--- a/buildbot_gentoo_ci/steps/portage.py
+++ b/buildbot_gentoo_ci/steps/portage.py
@@ -3,6 +3,7 @@
import os
import io
+from pathlib import Path
from portage import config as portage_config
from portage import auxdbkeys
@@ -403,24 +404,29 @@ class CheckPathLocal(BuildStep):
@defer.inlineCallbacks
def run(self):
self.gentooci =
self.master.namedServices['services'].namedServices['gentooci']
- self.repository_linkname =
self.gentooci.config.project['repository_basedir']
- self.repository_basedir2 = '/home/repos2/'
self.portage_path = yield os.path.join('etc', 'portage')
self.profile_path = yield os.path.join(self.portage_path,
'make.profile')
self.repos_path = yield os.path.join(self.portage_path, 'repos.conf')
- print(os.getcwd())
+ self.repository_basedir_db = yield os.path.join(self.master.basedir,
'repositorys')
+ self.build_repository_basedir_db = yield
os.path.join(self.getProperty("builddir"), 'repositorys')
+ #print(self.repository_basedir_db)
+ log = yield self.addLog('CheckPathLocal')
+ #print(os.getcwd())
print(self.getProperty("builddir"))
- yield os.chdir(self.getProperty("builddir"))
- print(os.getcwd())
+ #yield os.chdir(self.getProperty("builddir"))
+ #print(os.getcwd())
for x in [
self.portage_path,
self.profile_path,
self.repos_path,
]:
- if not os.path.isdir(x):
- os.makedirs(x)
- if not os.path.islink(self.repository_linkname):
- os.symlink(self.repository_basedir2, self.repository_linkname)
+ check_dir = yield os.path.join(self.getProperty("builddir"), x)
+ if not Path(check_dir).is_dir():
+ yield Path(check_dir).mkdir(parents=True)
+ yield log.addStdout(' '.join(['Makeing missing dir', x]))
+ if not Path(self.build_repository_basedir_db).is_dir():
+ yield
Path(self.build_repository_basedir_db).symlink_to(self.repository_basedir_db)
+ yield log.addStdout(' '.join(['Makeing missing link',
'repositorys', 'to', self.repository_basedir_db]))
return SUCCESS
class SetMakeProfileLocal(BuildStep):
@@ -442,7 +448,7 @@ class SetMakeProfileLocal(BuildStep):
return SKIPPED
self.gentooci =
self.master.namedServices['services'].namedServices['gentooci']
self.profile_repository_data = yield
self.gentooci.db.repositorys.getRepositoryByUuid(self.getProperty('project_data')['profile_repository_uuid'])
- self.repository_basedir =
self.gentooci.config.project['repository_basedir']
+ self.repository_basedir = 'repositorys'
makeprofiles_paths = []
makeprofiles_data = yield
self.gentooci.db.projects.getAllProjectPortageByUuidAndDirectory(self.getProperty('project_data')['uuid'],
'make.profile')
for makeprofile in makeprofiles_data:
@@ -468,8 +474,7 @@ class SetReposConfLocal(BuildStep):
repos_conf_path = yield os.path.join('etc', 'portage', 'repos.conf')
repos_conf_default_path = yield os.path.join(repos_conf_path,
'default.conf')
self.gentooci =
self.master.namedServices['services'].namedServices['gentooci']
- # the path should be set in the confg
- self.repository_basedir2 = '/home/repos2/'
+ self.repository_basedir_db = yield os.path.join(self.master.basedir,
'repositorys')
if not os.path.isfile(repos_conf_default_path):
# setup the default.conf
repos_conf_data = yield
self.gentooci.db.projects.getProjectPortageByUuidAndDirectory(self.getProperty('project_data')['uuid'],
'repos.conf')
@@ -483,7 +488,7 @@ class SetReposConfLocal(BuildStep):
yield WriteTextToFile(repos_conf_default_path, default_conf)
repos_conf_repository_path = yield os.path.join(repos_conf_path,
self.getProperty("repository_data")['name'] + '.conf')
if not os.path.isfile(repos_conf_repository_path):
- repository_path = yield os.path.join(self.repository_basedir2,
self.getProperty("repository_data")['name'])
+ repository_path = yield os.path.join(self.repository_basedir_db,
self.getProperty("repository_data")['name'])
repository_conf = []
repository_conf.append('[' +
self.getProperty("repository_data")['name'] + ']')
repository_conf.append('location = ' + repository_path)
diff --git a/buildbot_gentoo_ci/steps/repos.py
b/buildbot_gentoo_ci/steps/repos.py
index f5c12d2..ae63c78 100644
--- a/buildbot_gentoo_ci/steps/repos.py
+++ b/buildbot_gentoo_ci/steps/repos.py
@@ -3,6 +3,7 @@
import os
import git
+from pathlib import Path
from twisted.internet import defer
@@ -25,14 +26,20 @@ class CheckPathRepositoryLocal(BuildStep):
def __init__(self, **kwargs):
super().__init__(**kwargs)
+ @defer.inlineCallbacks
def run(self):
self.gentooci =
self.master.namedServices['services'].namedServices['gentooci']
- # self.repository_basedir =
self.gentooci.config.project['mirror_repository_basedir']
- repository_basedir = '/home/repos2/'
- self.setProperty("repository_basedir", repository_basedir,
'repository_basedir')
- if os.path.isdir(repository_basedir):
- return SUCCESS
- return FAILURE
+ self.repository_basedir_db = yield os.path.join(self.master.basedir,
'repositorys')
+ print(self.repository_basedir_db)
+ print(self.gentooci.config.project['repository_basedir'])
+ p = Path(self.repository_basedir_db)
+ self.setProperty("repository_basedir_db", self.repository_basedir_db,
'repository_basedir_db')
+ log = yield self.addLog('CheckPathRepositoryLocal')
+ if not Path(self.repository_basedir_db).is_dir():
+ yield log.addStdout(' '.join(['Missing link',
self.repository_basedir_db]))
+ p.symlink_to(self.gentooci.config.project['repository_basedir'])
+ yield log.addStdout(' '.join(['Makeing missing link',
'repositorys', 'to', self.gentooci.config.project['repository_basedir']]))
+ return SUCCESS
class CheckRepository(BuildStep):
@@ -105,7 +112,7 @@ class CheckRepository(BuildStep):
@defer.inlineCallbacks
def checkRepos(self, repository_data):
success = False
- repository_path = yield
os.path.join(self.getProperty("repository_basedir"), repository_data['name'])
+ repository_path = yield
os.path.join(self.getProperty("repository_basedir_db"), repository_data['name'])
try:
repo = git.Repo(repository_path)
except:
diff --git a/buildbot_gentoo_ci/steps/version.py
b/buildbot_gentoo_ci/steps/version.py
index 2b0c1e1..86d5963 100644
--- a/buildbot_gentoo_ci/steps/version.py
+++ b/buildbot_gentoo_ci/steps/version.py
@@ -230,9 +230,8 @@ class CheckPathHash(BuildStep):
@defer.inlineCallbacks
def run(self):
self.gentooci =
self.master.namedServices['services'].namedServices['gentooci']
- self.repository_basedir =
self.gentooci.config.project['repository_basedir']
- self.repository_path = yield os.path.join('/home', 'repos2',
self.getProperty("repository_data")['name'])
- #self.repository_path = yield os.path.join(self.repository_basedir,
self.getProperty("repository_data")['name'])
+ self.repository_basedir_db = yield os.path.join(self.master.basedir,
'repositorys')
+ self.repository_path = yield os.path.join(self.repository_basedir_db,
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'
self.ebuild_file = yield os.path.join(self.repository_path,
self.cp_path, self.file_name)