def _open_ssh(host, port): global _ssh_master key = '%s:%s' % (host, port) if key in _ssh_cache: return True if not _ssh_master \ or 'GIT_SSH' in os.environ \ or sys.platform in ('win32', 'cygwin'): # failed earlier, or cygwin ssh can't do this # return False command = [ 'ssh', '-o', 'ControlPath %s' % _ssh_sock(), '-p', str(port), '-M', '-N', host ] try: Trace(': %s', ' '.join(command)) p = subprocess.Popen(command) except Exception, e: _ssh_master = False print >>sys.stderr, \ '\nwarn: cannot enable ssh control master for %s:%s\n%s' \ % (host,port, str(e)) return False
def _open_ssh(host, port): global _ssh_master key = '%s:%s' % (host, port) if key in _ssh_cache: return True if not _ssh_master \ or 'GIT_SSH' in os.environ \ or sys.platform in ('win32', 'cygwin'): # failed earlier, or cygwin ssh can't do this # return False command = ['ssh', '-o','ControlPath %s' % _ssh_sock(), '-p',str(port), '-M', '-N', host] try: Trace(': %s', ' '.join(command)) p = subprocess.Popen(command) except Exception, e: _ssh_master = False print >>sys.stderr, \ '\nwarn: cannot enable ssh control master for %s:%s\n%s' \ % (host,port, str(e)) return False
def close_ssh(): for key, p in _ssh_cache.iteritems(): os.kill(p.pid, SIGTERM) p.wait() _ssh_cache.clear() d = _ssh_sock(create=False) if d: try: os.rmdir(os.path.dirname(d)) except OSError: pass
def close_ssh(): for key,p in _ssh_cache.iteritems(): try: os.kill(p.pid, SIGTERM) p.wait() except OSError: pass _ssh_cache.clear() d = _ssh_sock(create=False) if d: try: os.rmdir(os.path.dirname(d)) except OSError: pass