summaryrefslogtreecommitdiff
path: root/morphlib/plugins/distbuild_plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/plugins/distbuild_plugin.py')
-rw-r--r--morphlib/plugins/distbuild_plugin.py18
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',