@@ -102,7 +102,7 @@ def _kernelspecs_endpoint_default(self):
102
102
def _kernelspecs_resource_endpoint_default (self ):
103
103
return os .environ .get (self .kernelspecs_resource_endpoint_env , self .kernelspecs_resource_endpoint_default_value )
104
104
105
- connect_timeout_default_value = 60 .0
105
+ connect_timeout_default_value = 40 .0
106
106
connect_timeout_env = 'JUPYTER_GATEWAY_CONNECT_TIMEOUT'
107
107
connect_timeout = Float (default_value = connect_timeout_default_value , config = True ,
108
108
help = """The time allowed for HTTP connection establishment with the Gateway server.
@@ -112,7 +112,7 @@ def _kernelspecs_resource_endpoint_default(self):
112
112
def connect_timeout_default (self ):
113
113
return float (os .environ .get ('JUPYTER_GATEWAY_CONNECT_TIMEOUT' , self .connect_timeout_default_value ))
114
114
115
- request_timeout_default_value = 60 .0
115
+ request_timeout_default_value = 40 .0
116
116
request_timeout_env = 'JUPYTER_GATEWAY_REQUEST_TIMEOUT'
117
117
request_timeout = Float (default_value = request_timeout_default_value , config = True ,
118
118
help = """The time allowed for HTTP request completion. (JUPYTER_GATEWAY_REQUEST_TIMEOUT env var)""" )
@@ -226,18 +226,20 @@ def gateway_enabled(self):
226
226
227
227
# Ensure KERNEL_LAUNCH_TIMEOUT has a default value.
228
228
KERNEL_LAUNCH_TIMEOUT = int (os .environ .get ('KERNEL_LAUNCH_TIMEOUT' , 40 ))
229
- os .environ ['KERNEL_LAUNCH_TIMEOUT' ] = str (KERNEL_LAUNCH_TIMEOUT )
230
-
231
- LAUNCH_TIMEOUT_PAD = int (os .environ .get ('LAUNCH_TIMEOUT_PAD' , 2 ))
232
229
233
230
def init_static_args (self ):
234
231
"""Initialize arguments used on every request. Since these are static values, we'll
235
232
perform this operation once.
236
233
237
234
"""
238
- # Ensure that request timeout is at least "pad" greater than launch timeout.
239
- if self .request_timeout < float (GatewayClient .KERNEL_LAUNCH_TIMEOUT + GatewayClient .LAUNCH_TIMEOUT_PAD ):
240
- self .request_timeout = float (GatewayClient .KERNEL_LAUNCH_TIMEOUT + GatewayClient .LAUNCH_TIMEOUT_PAD )
235
+ # Ensure that request timeout and KERNEL_LAUNCH_TIMEOUT are the same, taking the
236
+ # greater value of the two.
237
+ if self .request_timeout < float (GatewayClient .KERNEL_LAUNCH_TIMEOUT ):
238
+ self .request_timeout = float (GatewayClient .KERNEL_LAUNCH_TIMEOUT )
239
+ elif self .request_timeout > float (GatewayClient .KERNEL_LAUNCH_TIMEOUT ):
240
+ GatewayClient .KERNEL_LAUNCH_TIMEOUT = int (self .request_timeout )
241
+ # Ensure any adjustments are reflected in env.
242
+ os .environ ['KERNEL_LAUNCH_TIMEOUT' ] = str (GatewayClient .KERNEL_LAUNCH_TIMEOUT )
241
243
242
244
self ._static_args ['headers' ] = json .loads (self .headers )
243
245
if 'Authorization' not in self ._static_args ['headers' ].keys ():
@@ -492,11 +494,20 @@ class GatewayKernelSpecManager(KernelSpecManager):
492
494
493
495
def __init__ (self , ** kwargs ):
494
496
super (GatewayKernelSpecManager , self ).__init__ (** kwargs )
495
- self .base_endpoint = url_path_join (GatewayClient .instance ().url ,
496
- GatewayClient .instance ().kernelspecs_endpoint )
497
+ base_endpoint = url_path_join (GatewayClient .instance ().url ,
498
+ GatewayClient .instance ().kernelspecs_endpoint )
499
+
500
+ self .base_endpoint = GatewayKernelSpecManager ._get_endpoint_for_user_filter (base_endpoint )
497
501
self .base_resource_endpoint = url_path_join (GatewayClient .instance ().url ,
498
502
GatewayClient .instance ().kernelspecs_resource_endpoint )
499
503
504
+ @staticmethod
505
+ def _get_endpoint_for_user_filter (default_endpoint ):
506
+ kernel_user = os .environ .get ('KERNEL_USERNAME' )
507
+ if kernel_user :
508
+ return '?user=' .join ([default_endpoint , kernel_user ])
509
+ return default_endpoint
510
+
500
511
def _get_kernelspecs_endpoint_url (self , kernel_name = None ):
501
512
"""Builds a url for the kernels endpoint
502
513
0 commit comments