fix remaining execnet 3k issues until all tests pass

--HG--
branch : trunk
This commit is contained in:
holger krekel 2009-09-04 16:51:29 +02:00
parent 45b98d4915
commit 5851471009
5 changed files with 20 additions and 17 deletions

View File

@ -147,6 +147,7 @@ initpkg(__name__,
'builtin.print_' : ('./builtin/builtin31.py', 'print_'),
'builtin._reraise' : ('./builtin/builtin31.py', '_reraise'),
'builtin.exec_' : ('./builtin/builtin31.py', 'exec_'),
'builtin.intern' : ('./builtin/builtin31.py', 'intern'),
'builtin._basestring' : ('./builtin/builtin31.py', '_basestring'),
'builtin._totext' : ('./builtin/builtin31.py', '_totext'),
'builtin._isbytes' : ('./builtin/builtin31.py', '_isbytes'),

View File

@ -63,26 +63,27 @@ class GatewayManager:
""" perform rsync to all remote hosts.
"""
rsync = HostRSync(source, verbose=verbose, ignores=ignores)
seen = {}
seen = py.builtin.set()
gateways = []
for gateway in self.gateways:
spec = gateway.spec
if not spec._samefilesystem():
if spec in seen:
continue
def finished():
if notify:
notify("rsyncrootready", spec, source)
rsync.add_target_host(gateway, finished=finished)
seen[spec] = gateway
if spec not in seen:
def finished():
if notify:
notify("rsyncrootready", spec, source)
rsync.add_target_host(gateway, finished=finished)
seen.add(spec)
gateways.append(gateway)
if seen:
self.hook.pyexecnet_gwmanage_rsyncstart(
source=source,
gateways=seen.values(),
gateways=gateways,
)
rsync.send()
self.hook.pyexecnet_gwmanage_rsyncfinish(
source=source,
gateways=seen.values()
gateways=gateways,
)
def exit(self):

View File

@ -83,9 +83,6 @@ class RSync(object):
if checksum is not None and checksum == md5(data).digest():
data = None # not really modified
else:
# ! there is a reason for the interning:
# sharing multiple copies of the file's data
data = intern(data)
self._report_send_file(channel.gateway, modified_rel_path)
channel.send(data)
@ -140,7 +137,7 @@ class RSync(object):
""" Adds a remote target specified via a 'gateway'
and a remote destination directory.
"""
assert finishedcallback is None or callable(finishedcallback)
assert finishedcallback is None or py.builtin.callable(finishedcallback)
for name in options:
assert name in ('delete',)
def itemcallback(req):

View File

@ -1,6 +1,10 @@
def f():
import os, stat, shutil, md5
import os, stat, shutil
try:
from hashlib import md5
except ImportError:
from md5 import md5
destdir, options = channel.receive()
modifiedfiles = []
@ -43,7 +47,7 @@ def f():
pass
elif msg_mtime != st.st_mtime:
f = open(path, 'rb')
checksum = md5.md5(f.read()).digest()
checksum = md5(f.read()).digest()
f.close()
else:
return # already fine

View File

@ -13,7 +13,7 @@ def teardown_module(mod):
class DirSetup:
def setup_method(self, method):
name = "%s.%s" %(self.__class__.__name__, method.func_name)
name = "%s.%s" %(self.__class__.__name__, method.__name__)
self.tmpdir = t = py.test.ensuretemp(name)
self.source = t.join("source")
self.dest1 = t.join("dest1")