Better default remote context name.

pull/35/head
David Wilson 9 years ago
parent 081565358d
commit 27a1c9b182

@ -453,10 +453,15 @@ class LocalStream(Stream):
sys.exit(0) sys.exit(0)
def GetBootCommand(self): def GetBootCommand(self):
name = self._context.remote_name
if name is None:
name = '%s@%s:%d'
name %= (getpass.getuser(), socket.gethostname(), os.getpid())
source = inspect.getsource(self._FirstStage) source = inspect.getsource(self._FirstStage)
source = textwrap.dedent('\n'.join(source.strip().split('\n')[1:])) source = textwrap.dedent('\n'.join(source.strip().split('\n')[1:]))
source = source.replace(' ', '\t') source = source.replace(' ', '\t')
source = source.replace('CONTEXT_NAME', repr(self._context.name)) source = source.replace('CONTEXT_NAME', repr(name))
encoded = source.encode('base64').replace('\n', '') encoded = source.encode('base64').replace('\n', '')
return [self.python_path, '-c', return [self.python_path, '-c',
'exec "%s".decode("base64")' % (encoded,)] 'exec "%s".decode("base64")' % (encoded,)]
@ -504,6 +509,7 @@ class Context(object):
Represent a remote context regardless of connection method. Represent a remote context regardless of connection method.
""" """
stream = None stream = None
remote_name = None
def __init__(self, broker, name=None, hostname=None, username=None, def __init__(self, broker, name=None, hostname=None, username=None,
key=None, parent_addr=None, finalize_on_disconnect=False): key=None, parent_addr=None, finalize_on_disconnect=False):
@ -730,8 +736,7 @@ class Broker(object):
def GetRemote(self, hostname, username, name=None, python_path=None): def GetRemote(self, hostname, username, name=None, python_path=None):
"""Get the named remote context, creating it if it does not exist.""" """Get the named remote context, creating it if it does not exist."""
if name is None: if name is None:
name = '%s@%s:%d' name = hostname
name %= (getpass.getuser(), socket.gethostname(), os.getpid())
context = Context(self, name, hostname, username) context = Context(self, name, hostname, username)
context.stream = SSHStream(context) context.stream = SSHStream(context)

Loading…
Cancel
Save