diff --git a/notebook/gateway/managers.py b/notebook/gateway/managers.py index fb53f044ab..8f89db6fb5 100644 --- a/notebook/gateway/managers.py +++ b/notebook/gateway/managers.py @@ -498,15 +498,25 @@ def shutdown_all(self, now=False): self.remove_kernel(kernel_id) + class GatewayKernelSpecManager(KernelSpecManager): def __init__(self, **kwargs): super(GatewayKernelSpecManager, self).__init__(**kwargs) - self.base_endpoint = url_path_join(GatewayClient.instance().url, - GatewayClient.instance().kernelspecs_endpoint) + base_endpoint = url_path_join(GatewayClient.instance().url, + GatewayClient.instance().kernelspecs_endpoint) + + self.base_endpoint = GatewayKernelSpecManager._get_endpoint_for_user_filter(base_endpoint) self.base_resource_endpoint = url_path_join(GatewayClient.instance().url, GatewayClient.instance().kernelspecs_resource_endpoint) + @staticmethod + def _get_endpoint_for_user_filter(default_endpoint): + kernel_user = os.environ.get('KERNEL_USERNAME') + if kernel_user: + return '?user='.join([default_endpoint, kernel_user]) + return default_endpoint + def _get_kernelspecs_endpoint_url(self, kernel_name=None): """Builds a url for the kernels endpoint