diff --git a/notebook/services/sessions/handlers.py b/notebook/services/sessions/handlers.py index 5225e35a5..79c274c57 100644 --- a/notebook/services/sessions/handlers.py +++ b/notebook/services/sessions/handlers.py @@ -58,7 +58,8 @@ class SessionRootHandler(APIHandler): else: try: model = yield gen.maybe_future( - sm.create_session(path=path, kernel_name=kernel_name)) + sm.create_session(path=path, kernel_name=kernel_name, + kernel_id=kernel_id)) except NoSuchKernel: msg = ("The '%s' kernel is not available. Please pick another " "suitable kernel instead, or install that kernel." % kernel_name) diff --git a/notebook/services/sessions/sessionmanager.py b/notebook/services/sessions/sessionmanager.py index a80103277..8f5a6845c 100644 --- a/notebook/services/sessions/sessionmanager.py +++ b/notebook/services/sessions/sessionmanager.py @@ -67,9 +67,8 @@ class SessionManager(LoggingConfigurable): def create_session(self, path=None, kernel_name=None, kernel_id=None): """Creates a session and returns its model""" session_id = self.new_session_id() - if kernel_id is not None: - if kernel_id not in self.kernel_manager: - raise web.HTTPError(400, "No such kernel: %s" % kernel_id) + if kernel_id is not None and kernel_id in self.kernel_manager: + pass else: kernel_id = yield self.start_kernel_for_session(session_id, path, kernel_name)