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: