forked from jupyter-server/jupyter_server
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Handle kernels with no heartbeat (jupyter-server#376)
* add plugins for reconnecting to disconnected kernels * allow user to restart the kernel heartbeat from the kernel menu * remove dev print statement * revert is_alive trigger used for testing reconnect dialog * rename disconnectedkernel to noheartbeat * update dependencY * eventlistener singleton must be cleared in tests * Update data_studio_jupyter_extensions/configurables/kernel_restarter.py Co-authored-by: Andrey Velichkevich <[email protected]> * remove old debugging prints Co-authored-by: Andrey Velichkevich <[email protected]>
- Loading branch information
1 parent
3560d6a
commit 0b86ad9
Showing
18 changed files
with
319 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 23 additions & 0 deletions
23
data_studio_jupyter_extensions/events/kernels/kernel-no-heartbeat.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
$id: event.datastudio.jupyter.com/kernel-no-heartbeat | ||
version: 1 | ||
title: Kernel Heartbeat Failure | ||
description: | | ||
The kernel has no heartbeat. | ||
type: object | ||
properties: | ||
notebook_id: | ||
title: Notebook Server ID | ||
description: | | ||
UUID for this notebook server process. | ||
process_id: | ||
title: Kernel Process ID | ||
description: | | ||
UUID for this kernel process. | ||
kernel_id: | ||
title: Kernel ID | ||
description: | | ||
UUID for this kernel | ||
required: | ||
- notebook_id | ||
- process_id | ||
- kernel_id |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
12 changes: 12 additions & 0 deletions
12
data_studio_jupyter_extensions/extensions/kernel_actions/extension.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
from jupyter_server.extension.application import ExtensionApp | ||
|
||
from .handlers import handlers | ||
|
||
|
||
class KernelActionsExtension(ExtensionApp): | ||
"""Jupyter Server extension that verifies | ||
the health of the server. | ||
""" | ||
|
||
name = "kernel_actions" | ||
handlers = handlers |
28 changes: 28 additions & 0 deletions
28
data_studio_jupyter_extensions/extensions/kernel_actions/handlers.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
""" | ||
Replaces the open source version of the Kernel Actions Endpoint | ||
with a new extension that handles some custom actions. | ||
""" | ||
from jupyter_server.auth.decorator import authorized | ||
from jupyter_server.services.kernels.handlers import _kernel_id_regex | ||
from jupyter_server.services.kernels.handlers import KernelActionHandler | ||
from tornado import web | ||
|
||
|
||
class DataStudioKernelActionHandler(KernelActionHandler): | ||
@web.authenticated | ||
@authorized | ||
async def post(self, kernel_id, action): | ||
kernel = self.kernel_manager.get_kernel(kernel_id) | ||
if action == "monitor": | ||
kernel._restarter.start() | ||
await super().post(kernel_id, action) | ||
|
||
|
||
_kernel_action_regex = r"(?P<action>restart|interrupt|monitor)" | ||
|
||
handlers = [ | ||
( | ||
rf"/api/kernels/{_kernel_id_regex}/{_kernel_action_regex}", | ||
DataStudioKernelActionHandler, | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.