summaryrefslogtreecommitdiff
path: root/distbuild/initiator.py
diff options
context:
space:
mode:
Diffstat (limited to 'distbuild/initiator.py')
-rw-r--r--distbuild/initiator.py32
1 files changed, 18 insertions, 14 deletions
diff --git a/distbuild/initiator.py b/distbuild/initiator.py
index 548ba496..8f9e0c38 100644
--- a/distbuild/initiator.py
+++ b/distbuild/initiator.py
@@ -151,16 +151,17 @@ class Initiator(distbuild.StateMachine):
def _get_output(self, msg):
return self._step_outputs[msg['step_name']]
+ def _write_status_to_build_log(self, f, status):
+ f.write(time.strftime('%Y-%m-%d %H:%M:%S ') + status + '\n')
+ f.flush()
+
def _handle_step_already_started_message(self, msg):
status = '%s is already building on %s' % (
msg['step_name'], msg['worker_name'])
self._app.status(msg=status)
self._open_output(msg)
-
- f = self._get_output(msg)
- f.write(time.strftime('%Y-%m-%d %H:%M:%S ') + status + '\n')
- f.flush()
+ self._write_status_to_build_log(self._get_output(msg), status)
def _handle_step_started_message(self, msg):
status = 'Started building %s on %s' % (
@@ -168,10 +169,7 @@ class Initiator(distbuild.StateMachine):
self._app.status(msg=status)
self._open_output(msg)
-
- f = self._get_output(msg)
- f.write(time.strftime('%Y-%m-%d %H:%M:%S ') + status + '\n')
- f.flush()
+ self._write_status_to_build_log(self._get_output(msg), status)
def _handle_step_output_message(self, msg):
step_name = msg['step_name']
@@ -190,9 +188,7 @@ class Initiator(distbuild.StateMachine):
status = 'Finished building %s' % step_name
self._app.status(msg=status)
- f = self._get_output(msg)
- f.write(time.strftime('%Y-%m-%d %H:%M:%S ') + status + '\n')
-
+ self._write_status_to_build_log(self._get_output(msg), status)
self._close_output(msg)
else:
logging.warning(
@@ -204,9 +200,7 @@ class Initiator(distbuild.StateMachine):
status = 'Build of %s failed.' % step_name
self._app.status(msg=status)
- f = self._get_output(msg)
- f.write(time.strftime('%Y-%m-%d %H:%M:%S ') + status + '\n')
-
+ self._write_status_to_build_log(self._get_output(msg), status)
self._close_output(msg)
else:
logging.warning(
@@ -237,3 +231,13 @@ class Initiator(distbuild.StateMachine):
self.mainloop.queue_event(self._cm, distbuild.StopConnecting())
self._jm.close()
+ def handle_cancel(self):
+ # Note in each build-step.log file that the initiator cancelled: this
+ # makes it easier to tell whether a build was aborted due to a bug or
+ # dropped connection, or if the user cancelled with CTRL+C / SIGINT.
+
+ for f in self._step_outputs.itervalues():
+ self._write_status_to_build_log(f, 'Initiator cancelled')
+ f.close()
+
+ self._step_outputs = {}