Skip to content

Commit b8da0a8

Browse files
lucabemkevin-bates
authored andcommitted
Added functionality to allow filter kernels by Jupyter Enterprise Gateway using KERNEL_USERNAME env var
1 parent 573adc3 commit b8da0a8

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

jupyter_server/gateway/managers.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,8 +511,14 @@ def _get_kernelspecs_endpoint_url(self, kernel_name=None):
511511

512512
return self.base_endpoint
513513

514+
def _get_endpoint_for_user_filter(self, default_endpoint):
515+
kernel_user = os.environ.get('KERNEL_USERNAME')
516+
if kernel_user:
517+
return '?user='.join([default_endpoint, kernel_user])
518+
return default_endpoint
519+
514520
async def get_all_specs(self):
515-
fetched_kspecs = await self.list_kernel_specs()
521+
fetched_kspecs = yield self.list_kernel_specs()
516522

517523
# get the default kernel name and compare to that of this server.
518524
# If different log a warning and reset the default. However, the
@@ -533,6 +539,9 @@ async def get_all_specs(self):
533539
async def list_kernel_specs(self):
534540
"""Get a list of kernel specs."""
535541
kernel_spec_url = self._get_kernelspecs_endpoint_url()
542+
543+
kernel_spec_url = self._get_endpoint_for_user_filter(kernel_spec_url)
544+
536545
self.log.debug("Request list kernel specs at: %s", kernel_spec_url)
537546
response = await gateway_request(kernel_spec_url, method='GET')
538547
kernel_specs = json_decode(response.body)
@@ -547,6 +556,9 @@ async def get_kernel_spec(self, kernel_name, **kwargs):
547556
The name of the kernel.
548557
"""
549558
kernel_spec_url = self._get_kernelspecs_endpoint_url(kernel_name=str(kernel_name))
559+
560+
kernel_spec_url = self._get_endpoint_for_user_filter(kernel_spec_url)
561+
550562
self.log.debug("Request kernel spec at: %s" % kernel_spec_url)
551563
try:
552564
response = await gateway_request(kernel_spec_url, method='GET')
@@ -576,6 +588,7 @@ async def get_kernel_spec_resource(self, kernel_name, path):
576588
The name of the desired resource
577589
"""
578590
kernel_spec_resource_url = url_path_join(self.base_resource_endpoint, str(kernel_name), str(path))
591+
kernel_spec_resource_url = self._get_endpoint_for_user_filter(kernel_spec_resource_url)
579592
self.log.debug("Request kernel spec resource '{}' at: {}".format(path, kernel_spec_resource_url))
580593
try:
581594
response = await gateway_request(kernel_spec_resource_url, method='GET')

0 commit comments

Comments
 (0)