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