add extensible get_env hook on Spawner

to make it easier for subclasses to modify the env
This commit is contained in:
Min RK
2015-12-18 10:49:23 +01:00
parent 28f5f33a76
commit 2bd7192e89

View File

@@ -183,6 +183,14 @@ class Spawner(LoggingConfigurable):
"""
self.api_token = ''
def get_env(self):
"""Return the environment we should use
Default returns a copy of self.env.
Use this to access the env in Spawner.start to allow extension in subclasses.
"""
return self.env.copy()
def get_args(self):
"""Return the arguments to be passed after self.cmd"""
args = [
@@ -376,9 +384,11 @@ class LocalProcessSpawner(Spawner):
env['SHELL'] = shell
return env
def _env_default(self):
env = super()._env_default()
return self.user_env(env)
def get_env(self):
"""Add user environment variables"""
env = super().get_env()
env = self.user_env(env)
return env
@gen.coroutine
def start(self):
@@ -387,7 +397,7 @@ class LocalProcessSpawner(Spawner):
self.user.server.ip = self.ip
self.user.server.port = random_port()
cmd = []
env = self.env.copy()
env = self.get_env()
cmd.extend(self.cmd)
cmd.extend(self.get_args())