mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-18 07:23:00 +00:00
add a dict to save spawner's instances, fix user.server with server
This commit is contained in:
@@ -350,11 +350,25 @@ class Spawner(LoggingConfigurable):
|
||||
"""
|
||||
).tag(config=True)
|
||||
|
||||
_instances = {}
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(Spawner, self).__init__(**kwargs)
|
||||
if self.user.state:
|
||||
self.load_state(self.user.state)
|
||||
|
||||
def save_spawner(self, server_name):
|
||||
Spawner._instances[server_name] = self
|
||||
self.server_name = server_name
|
||||
|
||||
@classmethod
|
||||
def get_spawners(cls):
|
||||
return cls._instances
|
||||
|
||||
@classmethod
|
||||
def get_spawner(cls, server_name):
|
||||
return cls._instances[server_name]
|
||||
|
||||
def load_state(self, state):
|
||||
"""Restore state of spawner from database.
|
||||
|
||||
@@ -469,8 +483,8 @@ class Spawner(LoggingConfigurable):
|
||||
ns (dict): namespace for string formatting.
|
||||
"""
|
||||
d = {'username': self.user.name}
|
||||
if self.user.server:
|
||||
d['base_url'] = self.server_base_url
|
||||
if self.server:
|
||||
d['base_url'] = self.server.base_url
|
||||
return d
|
||||
|
||||
def format_string(self, s):
|
||||
@@ -495,7 +509,7 @@ class Spawner(LoggingConfigurable):
|
||||
"""
|
||||
args = [
|
||||
'--user="%s"' % self.user.name,
|
||||
'--base-url="%s"' % self.server_base_url,
|
||||
'--base-url="%s"' % self.server.base_url,
|
||||
'--hub-host="%s"' % self.hub.host,
|
||||
'--hub-prefix="%s"' % self.hub.server.base_url,
|
||||
'--hub-api-url="%s"' % self.hub.api_url,
|
||||
@@ -505,9 +519,9 @@ class Spawner(LoggingConfigurable):
|
||||
|
||||
if self.port:
|
||||
args.append('--port=%i' % self.port)
|
||||
elif self.user.server.port:
|
||||
elif self.server.port:
|
||||
self.log.warning("Setting port from user.server is deprecated as of JupyterHub 0.7.")
|
||||
args.append('--port=%i' % self.user.server.port)
|
||||
args.append('--port=%i' % self.server.port)
|
||||
|
||||
if self.notebook_dir:
|
||||
notebook_dir = self.format_string(self.notebook_dir)
|
||||
@@ -861,8 +875,8 @@ class LocalProcessSpawner(Spawner):
|
||||
# A deprecation warning will be shown if the subclass
|
||||
# does not return ip, port.
|
||||
if self.ip:
|
||||
self.user.server.ip = self.ip
|
||||
self.user.server.port = self.port
|
||||
self.server.ip = self.ip
|
||||
self.server.port = self.port
|
||||
return (self.ip or '127.0.0.1', self.port)
|
||||
|
||||
@gen.coroutine
|
||||
|
@@ -166,9 +166,9 @@ class User(HasTraits):
|
||||
@property
|
||||
def proxy_path(self):
|
||||
if self.settings.get('subdomain_host'):
|
||||
return url_path_join('/' + self.domain, self.server_base_url)
|
||||
return url_path_join('/' + self.domain, self.base_url)
|
||||
else:
|
||||
return self.server_base_url
|
||||
return self.base_url
|
||||
|
||||
@property
|
||||
def domain(self):
|
||||
@@ -235,12 +235,11 @@ class User(HasTraits):
|
||||
api_token = self.new_api_token()
|
||||
db.commit()
|
||||
|
||||
self.server_base_url = base_url
|
||||
|
||||
# here you create the instance
|
||||
spawner = self.spawner
|
||||
# Passing server_name and base_url to the spawner
|
||||
spawner.server_base_url = base_url
|
||||
spawner.server_name = server_name
|
||||
spawner.save_spawner(server_name)
|
||||
spawner.server = server
|
||||
spawner.user_options = options or {}
|
||||
# we are starting a new server, make sure it doesn't restore state
|
||||
spawner.clear_state()
|
||||
|
Reference in New Issue
Block a user