Blob Blame History Raw
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: