--- a/mercurial/sshpeer.py Wed Aug 09 23:35:20 2017 -0700
+++ b/mercurial/sshpeer.py Thu Aug 10 20:55:28 2017 -0700
@@ -118,7 +118,7 @@
def __init__(self, ui, path, create=False):
self._url = path
self.ui = ui
- self.pipeo = self.pipei = self.pipee = None
+ self._pipeo = self._pipei = self._pipee = None
u = util.url(path, parsequery=False, parsefragment=False)
if u.scheme != 'ssh' or not u.host or u.path is None:
@@ -126,22 +126,23 @@
util.checksafessh(path)
- self.user = u.user
if u.passwd is not None:
self._abort(error.RepoError(_("password in URL not supported")))
- self.host = u.host
- self.port = u.port
- self.path = u.path or "."
+
+ self._user = u.user
+ self._host = u.host
+ self._port = u.port
+ self._path = u.path or '.'
sshcmd = self.ui.config("ui", "ssh")
remotecmd = self.ui.config("ui", "remotecmd")
- args = util.sshargs(sshcmd, self.host, self.user, self.port)
+ args = util.sshargs(sshcmd, self._host, self._user, self._port)
if create:
cmd = '%s %s %s' % (sshcmd, args,
util.shellquote("%s init %s" %
- (_serverquote(remotecmd), _serverquote(self.path))))
+ (_serverquote(remotecmd), _serverquote(self._path))))
ui.debug('running %s\n' % cmd)
res = ui.system(cmd, blockedtag='sshpeer')
if res != 0:
@@ -154,26 +155,26 @@
def _validaterepo(self, sshcmd, args, remotecmd):
# cleanup up previous run
- self.cleanup()
+ self._cleanup()
cmd = '%s %s %s' % (sshcmd, args,
util.shellquote("%s -R %s serve --stdio" %
- (_serverquote(remotecmd), _serverquote(self.path))))
+ (_serverquote(remotecmd), _serverquote(self._path))))
self.ui.debug('running %s\n' % cmd)
cmd = util.quotecommand(cmd)
- # while self.subprocess isn't used, having it allows the subprocess to
+ # while self._subprocess isn't used, having it allows the subprocess to
# to clean up correctly later
#
# no buffer allow the use of 'select'
# feel free to remove buffering and select usage when we ultimately
# move to threading.
sub = util.popen4(cmd, bufsize=0)
- self.pipeo, self.pipei, self.pipee, self.subprocess = sub
+ self._pipeo, self._pipei, self._pipee, self._subprocess = sub
- self.pipei = util.bufferedinputpipe(self.pipei)
- self.pipei = doublepipe(self.ui, self.pipei, self.pipee)
- self.pipeo = doublepipe(self.ui, self.pipeo, self.pipee)
+ self._pipei = util.bufferedinputpipe(self._pipei)
+ self._pipei = doublepipe(self.ui, self._pipei, self._pipee)
+ self._pipeo = doublepipe(self.ui, self._pipeo, self._pipee)
# skip any noise generated by remote shell
self._callstream("hello")
@@ -182,7 +183,7 @@
max_noise = 500
while lines[-1] and max_noise:
l = r.readline()
- self.readerr()
+ self._readerr()
if lines[-1] == "1\n" and l == "\n":
break
if l:
@@ -202,27 +203,27 @@
def _capabilities(self):
return self._caps
- def readerr(self):
- _forwardoutput(self.ui, self.pipee)
+ def _readerr(self):
+ _forwardoutput(self.ui, self._pipee)
def _abort(self, exception):
- self.cleanup()
+ self._cleanup()
raise exception
- def cleanup(self):
- if self.pipeo is None:
+ def _cleanup(self):
+ if self._pipeo is None:
return
- self.pipeo.close()
- self.pipei.close()
+ self._pipeo.close()
+ self._pipei.close()
try:
# read the error descriptor until EOF
- for l in self.pipee:
+ for l in self._pipee:
self.ui.status(_("remote: "), l)
except (IOError, ValueError):
pass
- self.pipee.close()
+ self._pipee.close()
- __del__ = cleanup
+ __del__ = _cleanup
def _submitbatch(self, req):
rsp = self._callstream("batch", cmds=wireproto.encodebatchcmds(req))
@@ -246,7 +247,7 @@
def _callstream(self, cmd, **args):
args = pycompat.byteskwargs(args)
self.ui.debug("sending %s command\n" % cmd)
- self.pipeo.write("%s\n" % cmd)
+ self._pipeo.write("%s\n" % cmd)
_func, names = wireproto.commands[cmd]
keys = names.split()
wireargs = {}
@@ -258,16 +259,16 @@
wireargs[k] = args[k]
del args[k]
for k, v in sorted(wireargs.iteritems()):
- self.pipeo.write("%s %d\n" % (k, len(v)))
+ self._pipeo.write("%s %d\n" % (k, len(v)))
if isinstance(v, dict):
for dk, dv in v.iteritems():
- self.pipeo.write("%s %d\n" % (dk, len(dv)))
- self.pipeo.write(dv)
+ self._pipeo.write("%s %d\n" % (dk, len(dv)))
+ self._pipeo.write(dv)
else:
- self.pipeo.write(v)
- self.pipeo.flush()
+ self._pipeo.write(v)
+ self._pipeo.flush()
- return self.pipei
+ return self._pipei
def _callcompressable(self, cmd, **args):
return self._callstream(cmd, **args)
@@ -296,29 +297,29 @@
for d in iter(lambda: fp.read(4096), ''):
self._send(d)
self._send("", flush=True)
- return self.pipei
+ return self._pipei
def _getamount(self):
- l = self.pipei.readline()
+ l = self._pipei.readline()
if l == '\n':
- self.readerr()
+ self._readerr()
msg = _('check previous remote output')
self._abort(error.OutOfBandError(hint=msg))
- self.readerr()
+ self._readerr()
try:
return int(l)
except ValueError:
self._abort(error.ResponseError(_("unexpected response:"), l))
def _recv(self):
- return self.pipei.read(self._getamount())
+ return self._pipei.read(self._getamount())
def _send(self, data, flush=False):
- self.pipeo.write("%d\n" % len(data))
+ self._pipeo.write("%d\n" % len(data))
if data:
- self.pipeo.write(data)
+ self._pipeo.write(data)
if flush:
- self.pipeo.flush()
- self.readerr()
+ self._pipeo.flush()
+ self._readerr()
instance = sshpeer