Description
Am not sure if this is a bug or this feature does not exist in JupyterHub.
I have my website and I am among to connect it to JupyterHub, when the user clicks on a button called “create notebook”, this will direct the user to his Jupyterhub home directory and creates his new notebook with name like “new_notebook.ipynb”.
As far as I understood the JupyterHub API is running on 8081 by default also in my case it does run on 8081, I can do different commands POST, GET, this works fine, however, to create new Notebook I have to use the Notebook API, not the JupyterHub, and I don’t know which is the right port for the Notebook! I understand that each user has his own port for the API and I find it a difficult or bad idea to try to fetch t users API port to create his own notebook if I just can have on a global port to use to create different notebooks for different users as an admin.
Also, I understood from the documentation that if I am using the Jupyterhub API port to access the Notebook API this will be done automatically from the JupyterHub, it will redirect me to the Notebook API correct?
So for testing, I am just running this code:
import requests
r = requests.get('http://localhost:8081/user/jupyterhub/api' + '/sessions',
headers={
'Authorization': 'token %s' % token,
}
)
r.raise_for_status()
users = r.json()
Am getting this output:
HTTPError: 500 Server Error: Internal Server Error for url: http://localhost:8081/hub/user/jupyterhub/api/sessions?redirects=4
Expected behavior
This should redirect me to the Notebook API and fetch the sessions and return a result.
Actual behaviour
HTTPError: 500 Server Error: Internal Server Error for url: http://localhost:8081/hub/user/jupyterhub/api/sessions?redirects=4
How to reproduce
import requests
r = requests.get('http://localhost:8081/user/jupyterhub/api' + '/sessions',
headers={
'Authorization': 'token %s' % token,
}
)
r.raise_for_status()
users = r.json()
Your personal set up
- OS: Debian GNU/Linux 10 (buster)
- Version: 10
- Configuration:
c.Authenticator.admin_users = {'jupyterhub'}
c.JupyterHub.api_tokens = { 'token': 'jupyterhub', }
So, this idea as I said I just want to create a new notebook for the logged-in user inside my system inside Jupyterhub by using the JupyterHub, and I don’t know-how.