diff options
Diffstat (limited to 'morphlib/plugins/distbuild_plugin.py')
-rw-r--r-- | morphlib/plugins/distbuild_plugin.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/morphlib/plugins/distbuild_plugin.py b/morphlib/plugins/distbuild_plugin.py index 8aaead10..708ffee1 100644 --- a/morphlib/plugins/distbuild_plugin.py +++ b/morphlib/plugins/distbuild_plugin.py @@ -15,10 +15,13 @@ # with this program. If not, see <http://www.gnu.org/licenses/>. -import cliapp import logging import re import sys +import urllib2 +import urlparse + +import cliapp import morphlib import distbuild @@ -26,6 +29,13 @@ import distbuild group_distbuild = 'Distributed Build Options' + +class OutdatedCacheServerError(morphlib.Error): + def __init__(self): + self.msg = 'Writeable cache server is using an outdated version of ' \ + 'morph-cache-server which is incompatible with this ' \ + 'version of morph.' + class DistbuildOptionsPlugin(cliapp.Plugin): def enable(self): @@ -291,6 +301,12 @@ class ControllerDaemon(cliapp.Plugin): self.app.settings['worker-cache-server-port'] morph_instance = self.app.settings['morph-instance'] + request_url = urlparse.urljoin(writeable_cache_server, '/1.0/method') + try: + req = urllib2.urlopen(request_url) + except urllib2.URLError: + raise OutdatedCacheServerError() + listener_specs = [ # address, port, class to initiate on connection, class init args ('controller-helper-address', 'controller-helper-port', |