Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit f40189d8c139793a7b73d36e0feecbef6594bf9f
Author: Jakub Kadlčík <jkadlcik(a)redhat.com>
Date: Mon Jul 27 15:54:37 2015 +0200
[backend] re-enable logs copying from dea39b7
---------------------------------------------------------------
backend/backend/daemons/dispatcher.py | 10 ++++++----
backend/tests/deamons/test_dispatcher.py | 5 +++++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/backend/backend/daemons/dispatcher.py
b/backend/backend/daemons/dispatcher.py
index 64841df..d2bcefe 100644
--- a/backend/backend/daemons/dispatcher.py
+++ b/backend/backend/daemons/dispatcher.py
@@ -357,8 +357,7 @@ class Worker(multiprocessing.Process):
.format(job.build_id, self.vm_ip, job.timeout, job.destdir,
job.chroot, str(job.repos)))
- # FIXME! I'm supposed to happen, but I'm not working :(
- #self.copy_mock_logs(job)
+ self.copy_mock_logs(job)
job.status = status
self._announce_end(job)
@@ -375,8 +374,11 @@ class Worker(multiprocessing.Process):
for log in logs:
src = os.path.join(job.chroot_dir, log[0])
dst = os.path.join(job.results_dir, log[1])
- with open(src, "rb") as f_src, gzip.open(dst, "wb") as
f_dst:
- f_dst.writelines(f_src)
+ try:
+ with open(src, "rb") as f_src, gzip.open(dst, "wb")
as f_dst:
+ f_dst.writelines(f_src)
+ except IOError:
+ self.log.info("File {} not found".format(src))
def clean_result_directory(self, job):
"""
diff --git a/backend/tests/deamons/test_dispatcher.py
b/backend/tests/deamons/test_dispatcher.py
index ca7a178..cd9744f 100644
--- a/backend/tests/deamons/test_dispatcher.py
+++ b/backend/tests/deamons/test_dispatcher.py
@@ -318,6 +318,11 @@ class TestDispatcher(object):
self.worker.copy_mock_logs(self.job)
assert set(os.listdir(self.job.results_dir)) == set(["rsync.log.gz",
"mockchain.log.gz"])
+ def test_copy_mock_logs_missing_files(self, mc_mr_class, init_worker, reg_vm,
mc_register_build_result):
+ os.makedirs(self.job.results_dir)
+ self.worker.copy_mock_logs(self.job)
+ assert set(os.listdir(self.job.results_dir)) == set()
+
def test_clean_previous_build_results(self, mc_mr_class, init_worker, reg_vm,
mc_register_build_result):
os.makedirs(self.job.results_dir)