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.print_' : ('./builtin/builtin31.py', 'print_'),
|
||||||
'builtin._reraise' : ('./builtin/builtin31.py', '_reraise'),
|
'builtin._reraise' : ('./builtin/builtin31.py', '_reraise'),
|
||||||
'builtin.exec_' : ('./builtin/builtin31.py', 'exec_'),
|
'builtin.exec_' : ('./builtin/builtin31.py', 'exec_'),
|
||||||
|
'builtin.intern' : ('./builtin/builtin31.py', 'intern'),
|
||||||
'builtin._basestring' : ('./builtin/builtin31.py', '_basestring'),
|
'builtin._basestring' : ('./builtin/builtin31.py', '_basestring'),
|
||||||
'builtin._totext' : ('./builtin/builtin31.py', '_totext'),
|
'builtin._totext' : ('./builtin/builtin31.py', '_totext'),
|
||||||
'builtin._isbytes' : ('./builtin/builtin31.py', '_isbytes'),
|
'builtin._isbytes' : ('./builtin/builtin31.py', '_isbytes'),
|
||||||
|
|
|
@ -63,26 +63,27 @@ class GatewayManager:
|
||||||
""" perform rsync to all remote hosts.
|
""" perform rsync to all remote hosts.
|
||||||
"""
|
"""
|
||||||
rsync = HostRSync(source, verbose=verbose, ignores=ignores)
|
rsync = HostRSync(source, verbose=verbose, ignores=ignores)
|
||||||
seen = {}
|
seen = py.builtin.set()
|
||||||
|
gateways = []
|
||||||
for gateway in self.gateways:
|
for gateway in self.gateways:
|
||||||
spec = gateway.spec
|
spec = gateway.spec
|
||||||
if not spec._samefilesystem():
|
if not spec._samefilesystem():
|
||||||
if spec in seen:
|
if spec not in seen:
|
||||||
continue
|
def finished():
|
||||||
def finished():
|
if notify:
|
||||||
if notify:
|
notify("rsyncrootready", spec, source)
|
||||||
notify("rsyncrootready", spec, source)
|
rsync.add_target_host(gateway, finished=finished)
|
||||||
rsync.add_target_host(gateway, finished=finished)
|
seen.add(spec)
|
||||||
seen[spec] = gateway
|
gateways.append(gateway)
|
||||||
if seen:
|
if seen:
|
||||||
self.hook.pyexecnet_gwmanage_rsyncstart(
|
self.hook.pyexecnet_gwmanage_rsyncstart(
|
||||||
source=source,
|
source=source,
|
||||||
gateways=seen.values(),
|
gateways=gateways,
|
||||||
)
|
)
|
||||||
rsync.send()
|
rsync.send()
|
||||||
self.hook.pyexecnet_gwmanage_rsyncfinish(
|
self.hook.pyexecnet_gwmanage_rsyncfinish(
|
||||||
source=source,
|
source=source,
|
||||||
gateways=seen.values()
|
gateways=gateways,
|
||||||
)
|
)
|
||||||
|
|
||||||
def exit(self):
|
def exit(self):
|
||||||
|
|
|
@ -83,9 +83,6 @@ class RSync(object):
|
||||||
if checksum is not None and checksum == md5(data).digest():
|
if checksum is not None and checksum == md5(data).digest():
|
||||||
data = None # not really modified
|
data = None # not really modified
|
||||||
else:
|
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)
|
self._report_send_file(channel.gateway, modified_rel_path)
|
||||||
channel.send(data)
|
channel.send(data)
|
||||||
|
|
||||||
|
@ -140,7 +137,7 @@ class RSync(object):
|
||||||
""" Adds a remote target specified via a 'gateway'
|
""" Adds a remote target specified via a 'gateway'
|
||||||
and a remote destination directory.
|
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:
|
for name in options:
|
||||||
assert name in ('delete',)
|
assert name in ('delete',)
|
||||||
def itemcallback(req):
|
def itemcallback(req):
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
|
|
||||||
def f():
|
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()
|
destdir, options = channel.receive()
|
||||||
modifiedfiles = []
|
modifiedfiles = []
|
||||||
|
|
||||||
|
@ -43,7 +47,7 @@ def f():
|
||||||
pass
|
pass
|
||||||
elif msg_mtime != st.st_mtime:
|
elif msg_mtime != st.st_mtime:
|
||||||
f = open(path, 'rb')
|
f = open(path, 'rb')
|
||||||
checksum = md5.md5(f.read()).digest()
|
checksum = md5(f.read()).digest()
|
||||||
f.close()
|
f.close()
|
||||||
else:
|
else:
|
||||||
return # already fine
|
return # already fine
|
||||||
|
|
|
@ -13,7 +13,7 @@ def teardown_module(mod):
|
||||||
|
|
||||||
class DirSetup:
|
class DirSetup:
|
||||||
def setup_method(self, method):
|
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.tmpdir = t = py.test.ensuretemp(name)
|
||||||
self.source = t.join("source")
|
self.source = t.join("source")
|
||||||
self.dest1 = t.join("dest1")
|
self.dest1 = t.join("dest1")
|
||||||
|
|
Loading…
Reference in New Issue