From b750683f727485ea594d75d8efe7c0b29ecf4937 Mon Sep 17 00:00:00 2001 From: William Krinsman Date: Thu, 1 Aug 2019 17:07:47 -0700 Subject: [PATCH 1/4] Attempted fix for minor JupyterHub compatibility issue. --- jupyterlab/extension.py | 1 + packages/application/src/frontend.ts | 2 ++ packages/application/src/lab.ts | 4 +++- packages/hub-extension/src/index.ts | 15 +++++++++++---- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/jupyterlab/extension.py b/jupyterlab/extension.py index f82aedf60247..5984a667c1ee 100644 --- a/jupyterlab/extension.py +++ b/jupyterlab/extension.py @@ -211,6 +211,7 @@ def load_jupyter_server_extension(nbapp): page_config['hubPrefix'] = nbapp.hub_prefix page_config['hubHost'] = nbapp.hub_host page_config['hubUser'] = nbapp.user + page_config['hubServerName'] = nbapp.server_name api_token = os.getenv('JUPYTERHUB_API_TOKEN', '') page_config['token'] = api_token diff --git a/packages/application/src/frontend.ts b/packages/application/src/frontend.ts index 649bd2387bcf..8ab9f3d44134 100644 --- a/packages/application/src/frontend.ts +++ b/packages/application/src/frontend.ts @@ -274,6 +274,8 @@ export namespace JupyterFrontEnd { readonly workspaces: string; readonly hubPrefix?: string; readonly hubHost?: string; + readonly hubUser?: string; + readonly hubServerName?: string; }; /** diff --git a/packages/application/src/lab.ts b/packages/application/src/lab.ts index 3640a79c668f..55f38e44e8e8 100644 --- a/packages/application/src/lab.ts +++ b/packages/application/src/lab.ts @@ -246,7 +246,9 @@ export namespace JupyterLab { tree: PageConfig.getOption('treeUrl'), workspaces: PageConfig.getOption('workspacesUrl'), hubHost: PageConfig.getOption('hubHost') || undefined, - hubPrefix: PageConfig.getOption('hubPrefix') || undefined + hubPrefix: PageConfig.getOption('hubPrefix') || undefined, + hubUser: PageConfig.getOption('hubUser') || undefined, + hubServerName: PageConfig.getOption('hubServerName') || undefined }, directories: { appSettings: PageConfig.getOption('appSettingsDir'), diff --git a/packages/hub-extension/src/index.ts b/packages/hub-extension/src/index.ts index 97354c4b6238..92100ae54e0a 100644 --- a/packages/hub-extension/src/index.ts +++ b/packages/hub-extension/src/index.ts @@ -42,6 +42,8 @@ function activateHubExtension( ): void { const hubHost = paths.urls.hubHost || ''; const hubPrefix = paths.urls.hubPrefix || ''; + const hubUser = paths.urls.hubUser || ''; + const hubServerName = paths.urls.hubServerName || ''; const baseUrl = paths.urls.base; // Bail if not running on JupyterHub. @@ -56,11 +58,16 @@ function activateHubExtension( const { commands } = app; - // TODO: use /spawn/:user/:name - // but that requires jupyterhub 1.0 - // and jupyterlab to pass username, servername to PageConfig + // requires jupyterhub 1.0 const restartUrl = - hubHost + URLExt.join(hubPrefix, `spawn?next=${hubPrefix}home`); + hubHost + + URLExt.join( + hubPrefix, + `spawn`, + hubUser, + hubServerName, + `?next=${hubPrefix}home` + ); commands.addCommand(CommandIDs.restart, { label: 'Restart Server', From f32a57e1ad6ff75c285becc9e1cb82105ff693fd Mon Sep 17 00:00:00 2001 From: Trevor Slaton Date: Mon, 5 Aug 2019 17:13:08 -0700 Subject: [PATCH 2/4] Implement Steven Silvester's suggestions #6931 --- jupyterlab/extension.py | 3 ++- packages/hub-extension/src/index.ts | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/jupyterlab/extension.py b/jupyterlab/extension.py index 5984a667c1ee..47a1f6a3a5e5 100644 --- a/jupyterlab/extension.py +++ b/jupyterlab/extension.py @@ -211,7 +211,8 @@ def load_jupyter_server_extension(nbapp): page_config['hubPrefix'] = nbapp.hub_prefix page_config['hubHost'] = nbapp.hub_host page_config['hubUser'] = nbapp.user - page_config['hubServerName'] = nbapp.server_name + if hasattr(nbapp, 'server_name'): + page_config['hubServerName'] = nbapp.server_name api_token = os.getenv('JUPYTERHUB_API_TOKEN', '') page_config['token'] = api_token diff --git a/packages/hub-extension/src/index.ts b/packages/hub-extension/src/index.ts index 92100ae54e0a..49a33a959c93 100644 --- a/packages/hub-extension/src/index.ts +++ b/packages/hub-extension/src/index.ts @@ -56,18 +56,18 @@ function activateHubExtension( hubPrefix: hubPrefix }); - const { commands } = app; + const restartUrl = hubServerName + ? hubHost + + URLExt.join( + hubPrefix, + 'spawn', + hubUser, + hubServerName, + `?next=${hubPrefix}home` + ) + : hubHost + URLExt.join(hubPrefix, `spawn?next=${hubPrefix}home`); - // requires jupyterhub 1.0 - const restartUrl = - hubHost + - URLExt.join( - hubPrefix, - `spawn`, - hubUser, - hubServerName, - `?next=${hubPrefix}home` - ); + const { commands } = app; commands.addCommand(CommandIDs.restart, { label: 'Restart Server', From fcc893cf7d11e2789964fe73296e821ba2cb7b4a Mon Sep 17 00:00:00 2001 From: Trevor Slaton Date: Wed, 7 Aug 2019 14:14:09 -0700 Subject: [PATCH 3/4] Add clarifying comments --- jupyterlab/extension.py | 1 + packages/hub-extension/src/index.ts | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/jupyterlab/extension.py b/jupyterlab/extension.py index 47a1f6a3a5e5..c040ae41a02f 100644 --- a/jupyterlab/extension.py +++ b/jupyterlab/extension.py @@ -211,6 +211,7 @@ def load_jupyter_server_extension(nbapp): page_config['hubPrefix'] = nbapp.hub_prefix page_config['hubHost'] = nbapp.hub_host page_config['hubUser'] = nbapp.user + # Assume the server_name property indicates running JupyterHub 1.0. if hasattr(nbapp, 'server_name'): page_config['hubServerName'] = nbapp.server_name api_token = os.getenv('JUPYTERHUB_API_TOKEN', '') diff --git a/packages/hub-extension/src/index.ts b/packages/hub-extension/src/index.ts index 49a33a959c93..e394caacf18d 100644 --- a/packages/hub-extension/src/index.ts +++ b/packages/hub-extension/src/index.ts @@ -56,16 +56,16 @@ function activateHubExtension( hubPrefix: hubPrefix }); + // If hubServerName is set, use JupyterHub 1.0 URL. const restartUrl = hubServerName - ? hubHost + - URLExt.join( - hubPrefix, - 'spawn', - hubUser, - hubServerName, - `?next=${hubPrefix}home` - ) - : hubHost + URLExt.join(hubPrefix, `spawn?next=${hubPrefix}home`); + ? hubHost + URLExt.join( + hubPrefix, + 'spawn', + hubUser, + hubServerName, + `?next=${hubPrefix}home` + ) + : hubHost + URLExt.join(hubPrefix, `spawn?next=${hubPrefix}home`); const { commands } = app; From d9f7b9e81ac0d474590253b89438624db9e7ca6d Mon Sep 17 00:00:00 2001 From: Trevor Slaton Date: Wed, 14 Aug 2019 14:53:33 -0700 Subject: [PATCH 4/4] Remove ?next from restartUrl for JupyterHub >=1.0 --- packages/hub-extension/src/index.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/hub-extension/src/index.ts b/packages/hub-extension/src/index.ts index e394caacf18d..daca0182bd10 100644 --- a/packages/hub-extension/src/index.ts +++ b/packages/hub-extension/src/index.ts @@ -58,13 +58,7 @@ function activateHubExtension( // If hubServerName is set, use JupyterHub 1.0 URL. const restartUrl = hubServerName - ? hubHost + URLExt.join( - hubPrefix, - 'spawn', - hubUser, - hubServerName, - `?next=${hubPrefix}home` - ) + ? hubHost + URLExt.join(hubPrefix, 'spawn', hubUser, hubServerName) : hubHost + URLExt.join(hubPrefix, `spawn?next=${hubPrefix}home`); const { commands } = app;