Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions notebook/services/sessions/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,16 +106,17 @@ def patch(self, session_id):
if notebook.get('path') is not None:
changes['path'] = notebook['path']
if 'kernel' in model:
if model['kernel'].get('name') is not None:
kernel_name = model['kernel']['name']
kernel_id = yield sm.start_kernel_for_session(
session_id, kernel_name=kernel_name, path=before['notebook']['path'])
changes['kernel_id'] = kernel_id
# Kernel id takes precedence over name.
if model['kernel'].get('id') is not None:
kernel_id = model['kernel']['id']
if kernel_id not in km:
raise web.HTTPError(400, "No such kernel: %s" % kernel_id)
changes['kernel_id'] = kernel_id
elif model['kernel'].get('name') is not None:
kernel_name = model['kernel']['name']
kernel_id = yield sm.start_kernel_for_session(
session_id, kernel_name=kernel_name, path=before['notebook']['path'])
changes['kernel_id'] = kernel_id

yield gen.maybe_future(sm.update_session(session_id, **changes))
model = yield gen.maybe_future(sm.get_session(session_id=session_id))
Expand Down
3 changes: 2 additions & 1 deletion notebook/services/sessions/tests/test_sessions_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ def modify_kernel_name(self, id, kernel_name):
return self._req('PATCH', id, body)

def modify_kernel_id(self, id, kernel_id):
body = json.dumps({'kernel': {'id': kernel_id}})
# Also send a dummy name to show that id takes precedence.
body = json.dumps({'kernel': {'id': kernel_id, 'name': 'foo'}})
return self._req('PATCH', id, body)

def delete(self, id):
Expand Down