Skip to content

Commit 0658988

Browse files
Backport PR #834: Enable GatewayClient managers to be configurable (#838)
Co-authored-by: Zachary Sailer <[email protected]>
1 parent 25b8011 commit 0658988

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

jupyter_server/serverapp.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1451,18 +1451,28 @@ def _observe_contents_manager_class(self, change):
14511451
)
14521452

14531453
kernel_manager_class = Type(
1454-
default_value=AsyncMappingKernelManager,
14551454
klass=MappingKernelManager,
14561455
config=True,
14571456
help=_i18n("The kernel manager class to use."),
14581457
)
14591458

1459+
@default("kernel_manager_class")
1460+
def _default_kernel_manager_class(self):
1461+
if self.gateway_config.gateway_enabled:
1462+
return "jupyter_server.gateway.managers.GatewayMappingKernelManager"
1463+
return AsyncMappingKernelManager
1464+
14601465
session_manager_class = Type(
1461-
default_value=SessionManager,
14621466
config=True,
14631467
help=_i18n("The session manager class to use."),
14641468
)
14651469

1470+
@default("session_manager_class")
1471+
def _default_session_manager_class(self):
1472+
if self.gateway_config.gateway_enabled:
1473+
return "jupyter_server.gateway.managers.GatewaySessionManager"
1474+
return SessionManager
1475+
14661476
config_manager_class = Type(
14671477
default_value=ConfigManager,
14681478
config=True,
@@ -1472,7 +1482,6 @@ def _observe_contents_manager_class(self, change):
14721482
kernel_spec_manager = Instance(KernelSpecManager, allow_none=True)
14731483

14741484
kernel_spec_manager_class = Type(
1475-
default_value=KernelSpecManager,
14761485
config=True,
14771486
help="""
14781487
The kernel spec manager class to use. Should be a subclass
@@ -1483,6 +1492,12 @@ def _observe_contents_manager_class(self, change):
14831492
""",
14841493
)
14851494

1495+
@default("kernel_spec_manager_class")
1496+
def _default_kernel_spec_manager_class(self):
1497+
if self.gateway_config.gateway_enabled:
1498+
return "jupyter_server.gateway.managers.GatewayKernelSpecManager"
1499+
return KernelSpecManager
1500+
14861501
login_handler_class = Type(
14871502
default_value=LoginHandler,
14881503
klass=web.RequestHandler,
@@ -1822,15 +1837,6 @@ def init_configurables(self):
18221837
# this determination, instantiate the GatewayClient config singleton.
18231838
self.gateway_config = GatewayClient.instance(parent=self)
18241839

1825-
if self.gateway_config.gateway_enabled:
1826-
self.kernel_manager_class = (
1827-
"jupyter_server.gateway.managers.GatewayMappingKernelManager"
1828-
)
1829-
self.session_manager_class = "jupyter_server.gateway.managers.GatewaySessionManager"
1830-
self.kernel_spec_manager_class = (
1831-
"jupyter_server.gateway.managers.GatewayKernelSpecManager"
1832-
)
1833-
18341840
self.kernel_spec_manager = self.kernel_spec_manager_class(
18351841
parent=self,
18361842
)

0 commit comments

Comments
 (0)