From bbf80836f212bf2d574351fc5216868858c03120 Mon Sep 17 00:00:00 2001 From: Jakub Kadlcik Date: Thu, 10 Aug 2017 12:38:38 +0200 Subject: [PATCH] Enable custom chroot on existing projects --- module_build_service/builder/CoprModuleBuilder.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/module_build_service/builder/CoprModuleBuilder.py b/module_build_service/builder/CoprModuleBuilder.py index b1cd935f..ed4b57d4 100644 --- a/module_build_service/builder/CoprModuleBuilder.py +++ b/module_build_service/builder/CoprModuleBuilder.py @@ -99,10 +99,13 @@ class CoprModuleBuilder(GenericBuilder): } try: - return self._get_copr(**kwargs) + copr = self._get_copr(**kwargs) except CoprRequestException: self._create_copr(**kwargs) - return self._get_copr(**kwargs) + copr = self._get_copr(**kwargs) + + self._create_chroot_safe(copr, self.chroot) + return copr def _get_copr(self, ownername, projectname): return self.client.get_project_details(projectname, username=ownername).handle @@ -110,6 +113,12 @@ class CoprModuleBuilder(GenericBuilder): def _create_copr(self, ownername, projectname): return self.client.create_project(ownername, projectname, [self.chroot]) + def _create_chroot_safe(self, copr, chroot): + detail = copr.get_project_details().data["detail"] + current_chroots = detail["yum_repos"].keys() + if chroot not in current_chroots: + self.client.modify_project(copr.projectname, copr.username, chroots=current_chroots + [chroot]) + def _create_module_safe(self): from copr.exceptions import CoprRequestException