mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-17 23:13:00 +00:00
allow default (empty) server name with named servers
remove generated names behavior because it doesn't work
This commit is contained in:
@@ -114,7 +114,7 @@ class APIHandler(BaseHandler):
|
|||||||
if spawner.pending:
|
if spawner.pending:
|
||||||
s['pending'] = spawner.pending
|
s['pending'] = spawner.pending
|
||||||
if spawner.server:
|
if spawner.server:
|
||||||
s['url'] = user.url + name + '/'
|
s['url'] = url_path_join(user.url, name, '/')
|
||||||
return model
|
return model
|
||||||
|
|
||||||
def group_model(self, group):
|
def group_model(self, group):
|
||||||
|
@@ -185,8 +185,6 @@ class UserServerAPIHandler(APIHandler):
|
|||||||
user = self.find_user(name)
|
user = self.find_user(name)
|
||||||
if server_name and not self.allow_named_servers:
|
if server_name and not self.allow_named_servers:
|
||||||
raise web.HTTPError(400, "Named servers are not enabled.")
|
raise web.HTTPError(400, "Named servers are not enabled.")
|
||||||
if self.allow_named_servers and not server_name:
|
|
||||||
server_name = user.default_server_name()
|
|
||||||
spawner = user.spawners[server_name]
|
spawner = user.spawners[server_name]
|
||||||
pending = spawner.pending
|
pending = spawner.pending
|
||||||
if pending == 'spawn':
|
if pending == 'spawn':
|
||||||
|
@@ -20,7 +20,7 @@ from .. import __version__
|
|||||||
from .. import orm
|
from .. import orm
|
||||||
from ..objects import Server
|
from ..objects import Server
|
||||||
from ..spawner import LocalProcessSpawner
|
from ..spawner import LocalProcessSpawner
|
||||||
from ..utils import default_server_name, url_path_join
|
from ..utils import url_path_join
|
||||||
|
|
||||||
# pattern for the authentication token header
|
# pattern for the authentication token header
|
||||||
auth_header_pat = re.compile(r'^(?:token|bearer)\s+([^\s]+)$', flags=re.IGNORECASE)
|
auth_header_pat = re.compile(r'^(?:token|bearer)\s+([^\s]+)$', flags=re.IGNORECASE)
|
||||||
@@ -380,8 +380,6 @@ class BaseHandler(RequestHandler):
|
|||||||
self.extra_error_html = self.spawn_home_error
|
self.extra_error_html = self.spawn_home_error
|
||||||
|
|
||||||
user_server_name = user.name
|
user_server_name = user.name
|
||||||
if self.allow_named_servers and not server_name:
|
|
||||||
server_name = default_server_name(user)
|
|
||||||
|
|
||||||
if server_name:
|
if server_name:
|
||||||
user_server_name = '%s:%s' % (user.name, server_name)
|
user_server_name = '%s:%s' % (user.name, server_name)
|
||||||
|
@@ -49,13 +49,13 @@ def test_create_named_server(app, named_servers):
|
|||||||
'kind': 'user',
|
'kind': 'user',
|
||||||
'admin': False,
|
'admin': False,
|
||||||
'pending': None,
|
'pending': None,
|
||||||
'server': None,
|
'server': user.url,
|
||||||
'servers': {
|
'servers': {
|
||||||
name: {
|
name: {
|
||||||
'name': name,
|
'name': name,
|
||||||
'url': url_path_join(user.url, name, '/'),
|
'url': url_path_join(user.url, name, '/'),
|
||||||
}
|
}
|
||||||
for name in ['1', servername]
|
for name in ['', servername]
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,13 +86,13 @@ def test_delete_named_server(app, named_servers):
|
|||||||
'kind': 'user',
|
'kind': 'user',
|
||||||
'admin': False,
|
'admin': False,
|
||||||
'pending': None,
|
'pending': None,
|
||||||
'server': None,
|
'server': user.url,
|
||||||
'servers': {
|
'servers': {
|
||||||
name: {
|
name: {
|
||||||
'name': name,
|
'name': name,
|
||||||
'url': url_path_join(user.url, name, '/'),
|
'url': url_path_join(user.url, name, '/'),
|
||||||
}
|
}
|
||||||
for name in ['1']
|
for name in ['']
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ from tornado import gen
|
|||||||
from tornado.log import app_log
|
from tornado.log import app_log
|
||||||
from traitlets import HasTraits, Any, Dict, default
|
from traitlets import HasTraits, Any, Dict, default
|
||||||
|
|
||||||
from .utils import url_path_join, default_server_name
|
from .utils import url_path_join
|
||||||
|
|
||||||
from . import orm
|
from . import orm
|
||||||
from ._version import _check_version, __version__
|
from ._version import _check_version, __version__
|
||||||
|
@@ -298,17 +298,3 @@ def url_path_join(*pieces):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def default_server_name(user):
|
|
||||||
"""Return the default name for a new server for a given user.
|
|
||||||
|
|
||||||
Will be the first available integer string, e.g. '1' or '2'.
|
|
||||||
"""
|
|
||||||
existing_names = set(user.spawners)
|
|
||||||
# if there are 5 servers, count from 1 to 6
|
|
||||||
for n in range(1, len(existing_names) + 2):
|
|
||||||
name = str(n)
|
|
||||||
if name not in existing_names:
|
|
||||||
return name
|
|
||||||
raise RuntimeError("It should be impossible to get here")
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user