mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-13 13:03:01 +00:00
checkpoint: named server state
This commit is contained in:
@@ -101,7 +101,8 @@ class APIHandler(BaseHandler):
|
|||||||
model['pending'] = 'spawn'
|
model['pending'] = 'spawn'
|
||||||
elif user.spawners['']._stop_pending:
|
elif user.spawners['']._stop_pending:
|
||||||
model['pending'] = 'stop'
|
model['pending'] = 'stop'
|
||||||
# named servers
|
return model
|
||||||
|
# TODO: named servers
|
||||||
servers = model['servers'] = {}
|
servers = model['servers'] = {}
|
||||||
for name, spawner in user.spawners.items():
|
for name, spawner in user.spawners.items():
|
||||||
if False and user.running(name):
|
if False and user.running(name):
|
||||||
|
@@ -405,7 +405,7 @@ def test_spawn(app, io_loop):
|
|||||||
data=json.dumps(options),
|
data=json.dumps(options),
|
||||||
)
|
)
|
||||||
assert r.status_code == 201
|
assert r.status_code == 201
|
||||||
assert 'pid' in user.state
|
assert 'pid' in user.state['']
|
||||||
app_user = get_app_user(app, name)
|
app_user = get_app_user(app, name)
|
||||||
assert app_user.spawner is not None
|
assert app_user.spawner is not None
|
||||||
assert app_user.spawner.user_options == options
|
assert app_user.spawner.user_options == options
|
||||||
@@ -434,7 +434,7 @@ def test_spawn(app, io_loop):
|
|||||||
r = api_request(app, 'users', name, 'server', method='delete')
|
r = api_request(app, 'users', name, 'server', method='delete')
|
||||||
assert r.status_code == 204
|
assert r.status_code == 204
|
||||||
|
|
||||||
assert 'pid' not in user.state
|
assert 'pid' not in user.state.get('', {})
|
||||||
status = io_loop.run_sync(app_user.spawner.poll)
|
status = io_loop.run_sync(app_user.spawner.poll)
|
||||||
assert status == 0
|
assert status == 0
|
||||||
|
|
||||||
@@ -473,7 +473,7 @@ def test_slow_spawn(app, io_loop, no_patience, request):
|
|||||||
|
|
||||||
@gen.coroutine
|
@gen.coroutine
|
||||||
def wait_stop():
|
def wait_stop():
|
||||||
while app_user.pawner._stop_pending:
|
while app_user.spawner._stop_pending:
|
||||||
yield gen.sleep(0.1)
|
yield gen.sleep(0.1)
|
||||||
|
|
||||||
r = api_request(app, 'users', name, 'server', method='delete')
|
r = api_request(app, 'users', name, 'server', method='delete')
|
||||||
@@ -532,7 +532,7 @@ def test_cookie(app):
|
|||||||
user = add_user(db, app=app, name=name)
|
user = add_user(db, app=app, name=name)
|
||||||
r = api_request(app, 'users', name, 'server', method='post')
|
r = api_request(app, 'users', name, 'server', method='post')
|
||||||
assert r.status_code == 201
|
assert r.status_code == 201
|
||||||
assert 'pid' in user.state
|
assert 'pid' in user.state['']
|
||||||
app_user = get_app_user(app, name)
|
app_user = get_app_user(app, name)
|
||||||
|
|
||||||
cookies = app.login_user(name)
|
cookies = app.login_user(name)
|
||||||
|
@@ -153,8 +153,10 @@ def test_spawner_poll(db, io_loop):
|
|||||||
proc = first_spawner.proc
|
proc = first_spawner.proc
|
||||||
status = io_loop.run_sync(first_spawner.poll)
|
status = io_loop.run_sync(first_spawner.poll)
|
||||||
assert status is None
|
assert status is None
|
||||||
user.state = first_spawner.get_state()
|
if user.state is None:
|
||||||
assert 'pid' in user.state
|
user.state = {}
|
||||||
|
user.state[''] = first_spawner.get_state()
|
||||||
|
assert 'pid' in user.state['']
|
||||||
|
|
||||||
# create a new Spawner, loading from state of previous
|
# create a new Spawner, loading from state of previous
|
||||||
spawner = new_spawner(db, user=first_spawner.user)
|
spawner = new_spawner(db, user=first_spawner.user)
|
||||||
|
@@ -391,7 +391,8 @@ class User(HasTraits):
|
|||||||
self.state = spawner.get_state()
|
self.state = spawner.get_state()
|
||||||
self.last_activity = datetime.utcnow()
|
self.last_activity = datetime.utcnow()
|
||||||
# remove server entry from db
|
# remove server entry from db
|
||||||
self.db.delete(spawner.server.orm_server)
|
if spawner.server is not None:
|
||||||
|
self.db.delete(spawner.server.orm_server)
|
||||||
spawner.server = None
|
spawner.server = None
|
||||||
if not spawner.will_resume:
|
if not spawner.will_resume:
|
||||||
# find and remove the API token if the spawner isn't
|
# find and remove the API token if the spawner isn't
|
||||||
|
Reference in New Issue
Block a user