From 4b96f79fa19191344ddeeafd40df8b6d18ef7cc9 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Mon, 7 Feb 2011 01:32:55 +0000 Subject: syncdaemon: version the rpc Signed-off-by: Csaba Henk Signed-off-by: Anand V. Avati BUG: 2381 (RePCe versioning) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2381 --- xlators/features/marker/utils/syncdaemon/resource.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'xlators/features/marker/utils/syncdaemon/resource.py') diff --git a/xlators/features/marker/utils/syncdaemon/resource.py b/xlators/features/marker/utils/syncdaemon/resource.py index 93199f518..6529155a0 100644 --- a/xlators/features/marker/utils/syncdaemon/resource.py +++ b/xlators/features/marker/utils/syncdaemon/resource.py @@ -166,6 +166,10 @@ class Server(object): cls.lastping += 1 return cls.lastping + @staticmethod + def version(): + return 1.0 + class SlaveLocal(object): @@ -208,6 +212,10 @@ class SlaveRemote(object): def start_fd_client(self, i, o, **opts): self.server = RepceClient(i, o) + rv = self.server.__version__() + exrv = {'proto': repce.repce_version, 'object': Server.version()} + if rv != exrv: + raise RuntimeError("RePCe version mismatch: local %s, remote %s" % (exrv, rv)) if gconf.timeout and int(gconf.timeout) > 0: def pinger(): while True: @@ -350,7 +358,7 @@ class SSH(AbstractUrl, SlaveRemote): deferred = go_daemon == 'postconn' ret = sup(self, gconf.ssh_command.split() + gconf.ssh_ctl_args + [self.remote_addr], slave=self.inner_rsc.url, deferred=deferred) if deferred: - # send a ping to peer so that we can wait for + # send a message to peer so that we can wait for # the answer from which we know connection is # established and we can proceed with daemonization # (doing that too early robs the ssh passwd prompt...) @@ -359,7 +367,7 @@ class SSH(AbstractUrl, SlaveRemote): # in daemon), we just do a an ad-hoc linear put/get. i, o = ret inf = os.fdopen(i) - repce.send(o, None, 'ping') + repce.send(o, None, '__version__') select.select((inf,), (), ()) repce.recv(inf) # hack hack hack: store a global reference to the file -- cgit