From f07e482ddbeeccebb4e64ed57e23fd40a2f8c057 Mon Sep 17 00:00:00 2001 From: hpk Date: Wed, 7 Feb 2007 20:36:41 +0100 Subject: [PATCH] [svn r38109] bailing out the optimize_localhost approach to consider it differently --HG-- branch : trunk --- py/test/rsession/hostmanage.py | 37 +++++---------------- py/test/rsession/testing/test_hostmanage.py | 13 -------- 2 files changed, 9 insertions(+), 41 deletions(-) diff --git a/py/test/rsession/hostmanage.py b/py/test/rsession/hostmanage.py index b6c00a46e..257ce6d4b 100644 --- a/py/test/rsession/hostmanage.py +++ b/py/test/rsession/hostmanage.py @@ -106,8 +106,7 @@ class HostRSync(py.execnet.RSync): return remotepath class HostManager(object): - def __init__(self, config, hosts=None, optimise_localhost=False): - self.optimise_localhost = optimise_localhost + def __init__(self, config, hosts=None): self.config = config if hosts is None: hosts = self.config.getvalue("dist_hosts") @@ -133,21 +132,14 @@ class HostManager(object): rsync = HostRSync(ignores=ignores, verbose=self.config.option.verbose) destrelpath = root.relto(self.config.topdir) - to_send = False for host in self.hosts: - if host.hostname != 'localhost' or not self.optimise_localhost: - def donecallback(host=host, root=root): - reporter(repevent.HostRSyncRootReady(host, root)) - remotepath = rsync.add_target_host( - host, reporter, destrelpath, finishedcallback= - donecallback) - reporter(repevent.HostRSyncing(host, root, remotepath)) - to_send = True - else: + def donecallback(host, root): reporter(repevent.HostRSyncRootReady(host, root)) - if to_send: - # don't send if we have no targets - rsync.send(root) + remotepath = rsync.add_target_host( + host, reporter, destrelpath, finishedcallback= + lambda host=host, root=root: donecallback(host, root)) + reporter(repevent.HostRSyncing(host, root, remotepath)) + rsync.send(root) def setup_hosts(self, reporter): self.init_rsync(reporter) @@ -161,14 +153,7 @@ class HostManager(object): def teardown_hosts(self, reporter, channels, nodes, waiter=lambda : time.sleep(.1), exitfirst=False): for channel in channels: - try: - channel.send(None) - except IOError: - print "Sending error, channel IOError" - print channel._getremoterror() - # XXX: this should go as soon as we'll have proper detection - # of hanging nodes and such - raise + channel.send(None) clean = exitfirst while not clean: @@ -181,11 +166,7 @@ class HostManager(object): def kill_channels(self, channels): for channel in channels: - try: - channel.send(42) - except IOError: - print "Sending error, channel IOError" - print channel._getremoterror() + channel.send(42) def teardown_gateways(self, reporter, channels): for channel in channels: diff --git a/py/test/rsession/testing/test_hostmanage.py b/py/test/rsession/testing/test_hostmanage.py index c48f350c3..31e6df74f 100644 --- a/py/test/rsession/testing/test_hostmanage.py +++ b/py/test/rsession/testing/test_hostmanage.py @@ -192,19 +192,6 @@ class TestHostManager(DirSetup): assert self.dest.join("dir5","file").check() assert not self.dest.join("dir6").check() - def test_hostmanager_rsync_optimise_localhost(self): - dir1 = self.source.ensure("opt_localhost1", dir=1) - config = py.test.config._reparse([self.source]) - hm = HostManager(config, - hosts=[HostInfo("localhost:" + str(self.dest))], - optimise_localhost=True) - events = [] - hm.init_rsync(reporter=events.append) - rr = [i for i in events if isinstance(i, repevent.HostRSyncRootReady)] - assert len(rr) == 1 - hr = [i for i in events if isinstance(i, repevent.HostRSyncing)] - assert len(hr) == 0 - def test_getpath_relto_home(): x = getpath_relto_home("hello") assert x == py.path.local._gethomedir().join("hello")