From 4f5bf8185a185908550cad20ce829ac926f34cd1 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Mon, 1 Dec 2014 12:11:23 -0500 Subject: [PATCH] Add version checking to the python side --- buildman/component/buildcomponent.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/buildman/component/buildcomponent.py b/buildman/component/buildcomponent.py index a7bf21c54..d518d3453 100644 --- a/buildman/component/buildcomponent.py +++ b/buildman/component/buildcomponent.py @@ -20,6 +20,8 @@ HEARTBEAT_DELTA = datetime.timedelta(seconds=30) HEARTBEAT_TIMEOUT = 10 INITIAL_TIMEOUT = 25 +SUPPORTED_WORKER_VERSIONS = ['0.1-beta'] + logger = logging.getLogger(__name__) class ComponentStatus(object): @@ -281,14 +283,18 @@ class BuildComponent(BaseComponent): """ Ping pong. """ return 'pong' - def _on_ready(self, token): + def _on_ready(self, token, version): + if not version in SUPPORTED_WORKER_VERSIONS: + logger.warning('Build component (token "%s") is running an out-of-date version: %s', version) + return False + if self._component_status != 'waiting': logger.warning('Build component (token "%s") is already connected', self.expected_token) - return + return False if token != self.expected_token: logger.warning('Builder token mismatch. Expected: "%s". Found: "%s"', self.expected_token, token) - return + return False self._set_status(ComponentStatus.RUNNING)