From cc79a6ba5bbc3a28b150b944ea57521fd3f27d03 Mon Sep 17 00:00:00 2001 From: Lauren Perry Date: Mon, 11 May 2015 15:20:31 +0000 Subject: distbuild: Fix protocol version checking for distbuild commands This fixes an issue with distbuild-status and distbuild-cancel crashing due to their appropriate Initiator classes not handling 'build-failed' messages Change-Id: Ia35c8e14a30e3a9bdea1e44f7726181db75dfbe5 --- distbuild/initiator.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/distbuild/initiator.py b/distbuild/initiator.py index d0185608..3b85826c 100644 --- a/distbuild/initiator.py +++ b/distbuild/initiator.py @@ -353,6 +353,7 @@ class InitiatorCancel(distbuild.StateMachine): handlers = { 'request-output': self._handle_request_output, + 'build-failed': self._handle_build_failed_message, } handler = handlers[event.msg['type']] @@ -363,6 +364,12 @@ class InitiatorCancel(distbuild.StateMachine): self.mainloop.queue_event(self._cm, distbuild.StopConnecting()) self._jm.close() + def _handle_build_failed_message(self, msg): + self._app.status(msg=str(msg['reason'])) + self.mainloop.queue_event(self, _Failed(msg)) + self.mainloop.queue_event(self._cm, distbuild.StopConnecting()) + self._jm.close() + def _terminate(self, event_source, event): self.mainloop.queue_event(self._cm, distbuild.StopConnecting()) self._jm.close() @@ -471,6 +478,7 @@ class InitiatorStatus(distbuild.StateMachine): handlers = { 'request-output': self._handle_request_output, + 'build-failed': self._handle_build_failed_message, } handler = handlers[event.msg['type']] @@ -481,6 +489,12 @@ class InitiatorStatus(distbuild.StateMachine): self.mainloop.queue_event(self._cm, distbuild.StopConnecting()) self._jm.close() + def _handle_build_failed_message(self, msg): + self._app.status(msg=str(msg['reason'])) + self.mainloop.queue_event(self, _Failed(msg)) + self.mainloop.queue_event(self._cm, distbuild.StopConnecting()) + self._jm.close() + def _terminate(self, event_source, event): self.mainloop.queue_event(self._cm, distbuild.StopConnecting()) self._jm.close() -- cgit v1.2.1