fix remaining execnet 3k issues until all tests pass
--HG-- branch : trunk
This commit is contained in:
parent
45b98d4915
commit
5851471009
|
@ -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'),
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue