From aed51dfae1b01af6a128b8e2fd4c9c2f5a4abc4b Mon Sep 17 00:00:00 2001 From: Valerij Maljulin Date: Jan 10 2019 14:22:37 +0000 Subject: Adding exception handling while doing import This fixes #1068 Signed-off-by: Valerij Maljulin --- diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py index d616ea1..138e11c 100644 --- a/module_build_service/builder/KojiContentGenerator.py +++ b/module_build_service/builder/KojiContentGenerator.py @@ -871,16 +871,23 @@ class KojiContentGenerator(object): metadata = self._get_content_generator_metadata(file_dir) try: serverdir = self._upload_outputs(session, metadata, file_dir) - build_info = session.CGImport(metadata, serverdir) + try: + build_info = session.CGImport(metadata, serverdir) + except koji.GenericError as e: + if "Build already exists" not in str(e): + raise + log.warning('Failed to import content generator') + build_info = None if conf.koji_cg_tag_build: self._tag_cg_build() - log.info("Content generator import done.") - log.debug(json.dumps(build_info, sort_keys=True, indent=4)) - - # Only remove the logs if CG import was successful. If it fails, - # then we want to keep them around for debugging. - log.info("Removing %r" % file_dir) - shutil.rmtree(file_dir) + if build_info is not None: + log.info("Content generator import done.") + log.debug(json.dumps(build_info, sort_keys=True, indent=4)) + + # Only remove the logs if CG import was successful. If it fails, + # then we want to keep them around for debugging. + log.info("Removing %r", file_dir) + shutil.rmtree(file_dir) except Exception as e: log.exception("Content generator import failed: %s", e) raise e