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)