From 4f51c34c31c7733b2d614cddf57a5a001ef4ff9e Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Aug 04 2017 08:07:30 +0000 Subject: upload content generator logs to Koji --- diff --git a/mbs-cg-upload.patch b/mbs-cg-upload.patch new file mode 100644 index 0000000..f1a4bba --- /dev/null +++ b/mbs-cg-upload.patch @@ -0,0 +1,47 @@ +diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py +index 078cc1f..95d83f1 100644 +--- a/module_build_service/builder/KojiContentGenerator.py ++++ b/module_build_service/builder/KojiContentGenerator.py +@@ -328,6 +328,32 @@ class KojiContentGenerator(object): + return prepdir + + ++ def _upload_outputs(self, session, metadata, file_dir): ++ """ ++ Uploads output files to Koji hub. ++ """ ++ to_upload = [] ++ for info in metadata['output']: ++ if info.get('metadata_only', False): ++ continue ++ localpath = os.path.join(file_dir, info['filename']) ++ if not os.path.exists(localpath): ++ err = "Cannot upload %s to Koji. No such file." % localpath ++ log.error(err) ++ raise RuntimeError(err) ++ ++ to_upload.append([localpath, info]) ++ ++ # Create unique server directory. ++ serverdir = 'mbs/%r.%d' % (time.time(), self.module.id) ++ ++ for localpath, info in to_upload: ++ log.info("Uploading %s to Koji" % localpath) ++ session.uploadWrapper(localpath, serverdir, callback=None) ++ log.info("Upload of %s to Koji done" % localpath) ++ ++ return serverdir ++ + def koji_import(self): + """This method imports given module into the configured koji instance as + a content generator based build +@@ -338,7 +364,8 @@ class KojiContentGenerator(object): + file_dir = self._prepare_file_directory() + metadata = self._get_content_generator_metadata(file_dir) + try: +- build_info = session.CGImport(metadata, file_dir) ++ serverdir = self._upload_outputs(session, metadata, file_dir) ++ build_info = session.CGImport(metadata, serverdir) + log.debug("Content generator import done: %s", + json.dumps(build_info, sort_keys=True, indent=4)) + except Exception, e: diff --git a/module-build-service.spec b/module-build-service.spec index 483d1ee..77a9f21 100644 --- a/module-build-service.spec +++ b/module-build-service.spec @@ -1,6 +1,6 @@ Name: module-build-service Version: 1.3.25 -Release: 4%{?dist} +Release: 5%{?dist} Summary: The Module Build Service for Modularity @@ -12,6 +12,7 @@ Source0: https://files.pythonhosted.org/packages/source/m/%{name}/%{name}-%{vers Patch0: mbs-no-mbsbuild.patch %endif Patch1: mbs-empty-server-name.patch +Patch2: mbs-cg-upload.patch %if 0%{?rhel} && 0%{?rhel} <= 7 # In EL7 we need flask which needs python-itsdangerous which comes from @@ -172,6 +173,7 @@ for a number of tasks: %endif %patch1 -p1 +%patch2 -p1 # Simply remove an old .pyc file that was included in one release. rm -f module_build_service/scheduler/consumer.pyc @@ -222,6 +224,9 @@ done %changelog +* Fri Aug 04 2017 Jan Kaluza - 1.3.25-5 +- upload content generator logs to Koji + * Tue Jul 18 2017 Jan Kaluza - 1.3.25-4 - fix bug during build caused by not set SERVER_NAME in configuration file