Skip to content

Commit f5322fc

Browse files
committed
Added functionality to allow filter kernels by Jupyter Enterprise Gateway using KERNEL_USERNAME env var
1 parent 6e9256b commit f5322fc

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

notebook/gateway/managers.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,12 @@ def _get_kernelspecs_endpoint_url(self, kernel_name=None):
519519

520520
return self.base_endpoint
521521

522+
def _get_endpoint_for_user_filter(self, default_endpoint):
523+
kernel_user = os.environ.get('KERNEL_USERNAME')
524+
if kernel_user:
525+
return '?user='.join([default_endpoint, kernel_user])
526+
return default_endpoint
527+
522528
@gen.coroutine
523529
def get_all_specs(self):
524530
fetched_kspecs = yield self.list_kernel_specs()
@@ -543,6 +549,9 @@ def get_all_specs(self):
543549
def list_kernel_specs(self):
544550
"""Get a list of kernel specs."""
545551
kernel_spec_url = self._get_kernelspecs_endpoint_url()
552+
553+
kernel_spec_url = self._get_endpoint_for_user_filter(kernel_spec_url)
554+
546555
self.log.debug("Request list kernel specs at: %s", kernel_spec_url)
547556
response = yield gateway_request(kernel_spec_url, method='GET')
548557
kernel_specs = json_decode(response.body)
@@ -558,6 +567,9 @@ def get_kernel_spec(self, kernel_name, **kwargs):
558567
The name of the kernel.
559568
"""
560569
kernel_spec_url = self._get_kernelspecs_endpoint_url(kernel_name=str(kernel_name))
570+
571+
kernel_spec_url = self._get_endpoint_for_user_filter(kernel_spec_url)
572+
561573
self.log.debug("Request kernel spec at: %s" % kernel_spec_url)
562574
try:
563575
response = yield gateway_request(kernel_spec_url, method='GET')
@@ -586,6 +598,7 @@ def get_kernel_spec_resource(self, kernel_name, path):
586598
The name of the desired resource
587599
"""
588600
kernel_spec_resource_url = url_path_join(self.base_resource_endpoint, str(kernel_name), str(path))
601+
kernel_spec_resource_url = self._get_endpoint_for_user_filter(kernel_spec_resource_url)
589602
self.log.debug("Request kernel spec resource '{}' at: {}".format(path, kernel_spec_resource_url))
590603
try:
591604
response = yield gateway_request(kernel_spec_resource_url, method='GET')

0 commit comments

Comments
 (0)