From a0dd9bd77ff1fe60d717ee2580e02dfe8d8302d3 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 25 Apr 2011 19:14:47 +0200 Subject: [PATCH] builder: Enable logging when doing a build for the server and upload the file afterwards. --- pakfire/server/base.py | 6 ++++-- pakfire/server/slave.py | 10 ++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pakfire/server/base.py b/pakfire/server/base.py index 9490dce18..626c1bb26 100644 --- a/pakfire/server/base.py +++ b/pakfire/server/base.py @@ -83,8 +83,10 @@ class MasterSlave(object): return self.conn.package_add_file(pkg_id, file_id, info) - def upload_log_file(self): - pass # XXX TO BE DONE + def upload_log_file(self, build_id, logfile): + file_id = self._chunked_upload(logfile) + + return self.conn.build_add_log(build_id, file_id) def package_add(self, source, pkg): logging.info("Adding package: %s" % pkg.friendly_name) diff --git a/pakfire/server/slave.py b/pakfire/server/slave.py index 8fde679e0..e26e5da3a 100644 --- a/pakfire/server/slave.py +++ b/pakfire/server/slave.py @@ -82,6 +82,7 @@ class Slave(MasterSlave): self.update_build_status(build_id, "finished") def build_binary_job(self, build_id, build): + arch = build["arch"] filename = build["name"] download = build["download"] hash1 = build["hash1"] @@ -89,6 +90,7 @@ class Slave(MasterSlave): # Create a temporary file and a directory for the resulting files. tmpdir = tempfile.mkdtemp() tmpfile = os.path.join(tmpdir, filename) + logfile = os.path.join(tmpdir, "build.log") # Get a package grabber and add mirror download capabilities to it. grabber = pakfire.downloader.PackageDownloader() @@ -108,14 +110,14 @@ class Slave(MasterSlave): # Run the build. pakfire.api.build(tmpfile, build_id=build_id, - resultdirs=[tmpdir,]) + resultdirs=[tmpdir,], logfile=logfile) self.update_build_status(build_id, "uploading") for dir, subdirs, files in os.walk(tmpdir): for file in files: file = os.path.join(dir, file) - if file == tmpfile: + if file in (logfile, tmpfile,): continue pkg = pakfire.packages.open(self.pakfire, None, file) @@ -127,6 +129,10 @@ class Slave(MasterSlave): self.update_build_status(build_id, "dependency_error", message) finally: + # Upload the logfile in any case and if it exists. + if os.path.exists(logfile): + self.upload_log_file(build_id, logfile) + # Cleanup the files we created. pakfire.util.rm(tmpdir) -- 2.39.5