mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-15 05:53:00 +00:00
Address review in named_servers
from willingc - consistency of repr/str when logging usernames - cleanup some attribute declarations - add comments about db session weirdness
This commit is contained in:
@@ -226,7 +226,7 @@ class UserNamedServerAPIHandler(APIHandler):
|
||||
raise web.HTTPError(400, "Named servers are not enabled.")
|
||||
user = self.find_user(name)
|
||||
if user is None:
|
||||
raise web.HTTPError(404, "No such user %r" % name)
|
||||
raise web.HTTPError(404, "No such user '%s'" % name)
|
||||
|
||||
options = self.get_json_body()
|
||||
yield self.spawn_single_user(user, server_name, options=options)
|
||||
@@ -241,19 +241,19 @@ class UserNamedServerAPIHandler(APIHandler):
|
||||
raise web.HTTPError(400, "Named servers are not enabled.")
|
||||
user = self.find_user(name)
|
||||
if user is None:
|
||||
raise web.HTTPError(404, "No such user %r" % name)
|
||||
raise web.HTTPError(404, "No such user '%s'" % name)
|
||||
if server_name not in user.spawners:
|
||||
raise web.HTTPError(404, "%s has no server named %r" % (name, server_name))
|
||||
raise web.HTTPError(404, "%s has no server named '%s'" % (name, server_name))
|
||||
spawner = user.spawners[server_name]
|
||||
if spawner._stop_pending:
|
||||
self.set_status(202)
|
||||
return
|
||||
if not user.running(server_name):
|
||||
raise web.HTTPError(400, "%s's server %r is not running" % (name, server_name))
|
||||
raise web.HTTPError(400, "%s's server %s is not running" % (name, server_name))
|
||||
# include notify, so that a server that died is noticed immediately
|
||||
status = yield spawner.poll_and_notify()
|
||||
if status is not None:
|
||||
raise web.HTTPError(400, "%s's server %r is not running" % (name, server_name))
|
||||
raise web.HTTPError(400, "%s's server %s is not running" % (name, server_name))
|
||||
yield self.stop_single_user(user, server_name)
|
||||
status = 202 if spawner._stop_pending else 204
|
||||
self.set_status(status)
|
||||
|
@@ -928,9 +928,9 @@ class JupyterHub(Application):
|
||||
try:
|
||||
yield gen.maybe_future(self.authenticator.add_user(user))
|
||||
except Exception:
|
||||
self.log.exception("Error adding user %r already in db", user.name)
|
||||
self.log.exception("Error adding user %s already in db", user.name)
|
||||
if self.authenticator.delete_invalid_users:
|
||||
self.log.warning("Deleting invalid user %r from the Hub database", user.name)
|
||||
self.log.warning("Deleting invalid user %s from the Hub database", user.name)
|
||||
db.delete(user)
|
||||
else:
|
||||
self.log.warning(dedent("""
|
||||
@@ -993,7 +993,7 @@ class JupyterHub(Application):
|
||||
created = False
|
||||
if obj is None:
|
||||
created = True
|
||||
self.log.debug("Adding %s %r to database", kind, name)
|
||||
self.log.debug("Adding %s %s to database", kind, name)
|
||||
obj = Class(name=name)
|
||||
db.add(obj)
|
||||
db.commit()
|
||||
@@ -1118,7 +1118,7 @@ class JupyterHub(Application):
|
||||
parts.append('admin')
|
||||
for name, spawner in sorted(user.spawners.items(), key=itemgetter(0)):
|
||||
if spawner.server:
|
||||
parts.append('%r running at %s' % (name, spawner.server))
|
||||
parts.append('%s:%s running at %s' % (user.name, name, spawner.server))
|
||||
return ' '.join(parts)
|
||||
|
||||
@gen.coroutine
|
||||
|
@@ -51,11 +51,11 @@ class Spawner(LoggingConfigurable):
|
||||
_proxy_pending = False
|
||||
_waiting_for_response = False
|
||||
|
||||
authenticator = Any()
|
||||
hub = Any()
|
||||
orm_spawner = Any()
|
||||
user = Any()
|
||||
hub = Any()
|
||||
authenticator = Any()
|
||||
orm_spawner = Any()
|
||||
|
||||
@property
|
||||
def server(self):
|
||||
if self.orm_spawner and self.orm_spawner.server:
|
||||
|
@@ -88,6 +88,7 @@ class User(HasTraits):
|
||||
def _log_default(self):
|
||||
return app_log
|
||||
|
||||
spawners = None
|
||||
settings = Dict()
|
||||
|
||||
db = Any(allow_none=True)
|
||||
@@ -103,7 +104,10 @@ class User(HasTraits):
|
||||
# db session changed, re-get orm User
|
||||
db = change.new
|
||||
if self._user_id is not None:
|
||||
# fetch our orm.User from the new db session
|
||||
self.orm_user = db.query(orm.User).filter(orm.User.id == self._user_id).first()
|
||||
# update our spawners' ORM objects with the new session,
|
||||
# which can be found on our new orm_user.
|
||||
for name, spawner in self.spawners.items():
|
||||
spawner.orm_spawner = self.orm_user.orm_spawners[name]
|
||||
|
||||
@@ -116,8 +120,6 @@ class User(HasTraits):
|
||||
else:
|
||||
self._user_id = None
|
||||
|
||||
spawners = None
|
||||
|
||||
@property
|
||||
def authenticator(self):
|
||||
return self.settings.get('authenticator', None)
|
||||
|
Reference in New Issue
Block a user