From b98cfd4e0673cee64e61abee714f12dd220c8a2e Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Thu, 2 Oct 2014 13:02:11 +0000 Subject: Allow distbuilds to choose where to put logs --- distbuild/initiator.py | 8 +++++++- morphlib/plugins/distbuild_plugin.py | 5 +++++ yarns/implementations.yarn | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/distbuild/initiator.py b/distbuild/initiator.py index a803c781..697f48a0 100644 --- a/distbuild/initiator.py +++ b/distbuild/initiator.py @@ -19,6 +19,7 @@ import base64 import cliapp import logging +import os import random import sys @@ -49,6 +50,7 @@ class Initiator(distbuild.StateMachine): self._morphology = morphology self._steps = None self._step_outputs = {} + self._step_output_dir = app.settings['initiator-step-output-dir'] self.debug_transitions = False def setup(self): @@ -121,7 +123,11 @@ class Initiator(distbuild.StateMachine): def _open_output(self, msg): assert msg['step_name'] not in self._step_outputs - filename = 'build-step-%s.log' % msg['step_name'] + if self._step_output_dir: + filename = os.path.join(self._step_output_dir, + 'build-step-%s.log' % msg['step_name']) + else: + filename = '/dev/null' f = open(filename, 'a') self._step_outputs[msg['step_name']] = f diff --git a/morphlib/plugins/distbuild_plugin.py b/morphlib/plugins/distbuild_plugin.py index 1858a9ba..653eeae8 100644 --- a/morphlib/plugins/distbuild_plugin.py +++ b/morphlib/plugins/distbuild_plugin.py @@ -168,6 +168,11 @@ class ControllerDaemon(cliapp.Plugin): 'write the port to listen for initiator connections to FILE', default='', group=group_distbuild) + self.app.settings.string( + ['initiator-step-output-dir'], + 'write build output to files in DIR', + default='.', + group=group_distbuild) self.app.settings.string( ['controller-helper-address'], diff --git a/yarns/implementations.yarn b/yarns/implementations.yarn index 6748e3d3..c6d245d0 100644 --- a/yarns/implementations.yarn +++ b/yarns/implementations.yarn @@ -1110,6 +1110,8 @@ Distbuild >>"$DATADIR/morph.conf" echo "controller-initiator-address = localhost" \ >>"$DATADIR/morph.conf" + echo "initiator-step-output-dir = $DATADIR" \ + >>"$DATADIR/morph.conf" IMPLEMENTS FINALLY the distbuild controller is terminated stop_daemon "$DATADIR/controller-helper-pid" -- cgit v1.2.1