Add the jupyterhub-configurator service

This commit is contained in:
GeorgianaElena
2021-04-01 14:26:54 +03:00
parent 17162cb93b
commit 32e0f99c3c
6 changed files with 61 additions and 7 deletions

View File

@@ -66,6 +66,9 @@ default = {
'concurrency': 5,
'users': False,
'max_age': 0
},
'configurator': {
'enabled': True
}
}
}
@@ -175,8 +178,8 @@ def update_userlists(c, config):
"""
users = config['users']
c.Authenticator.whitelist = set(users['allowed'])
c.Authenticator.blacklist = set(users['banned'])
c.Authenticator.allowed_users = set(users['allowed'])
c.Authenticator.blocked_users = set(users['banned'])
c.Authenticator.admin_users = set(users['admin'])
@@ -249,10 +252,31 @@ def set_cull_idle_service(config):
return cull_service
def set_configurator(config):
"""
Set the JupyterHub Configurator service
"""
HERE = os.path.abspath(os.path.dirname(__file__))
configurator_cmd = [
sys.executable, "-m", "jupyterhub_configurator.app",
f"--Configurator.config_file={HERE}/jupyterhub_configurator_config.py"
]
configurator_service = {
'name': 'configurator',
'url': 'http://127.0.0.1:10101',
'command': configurator_cmd,
}
return configurator_service
def update_services(c, config):
c.JupyterHub.services = []
if config['services']['cull']['enabled']:
c.JupyterHub.services.append(set_cull_idle_service(config))
if config['services']['configurator']['enabled']:
c.JupyterHub.services.append(set_configurator(config))
def _merge_dictionaries(a, b, path=None, update=True):

0
tljh/schemas/__init__.py Normal file
View File

View File

@@ -0,0 +1,27 @@
from jupyterhub_configurator.hooks import hookimpl
@hookimpl
def jupyterhub_configurator_fields():
return {
"schema.default_interface": {
"type": "string",
"traitlet": "Spawner.default_url",
"title": "Default User Interface",
"enum": ["/tree", "/lab", "/nteract"],
"default": "/tree",
"enumMetadata": {
"/tree": {
"title": "Classic Notebook",
"description": "The original single-document interface for creating Jupyter Notebooks.",
},
"/lab": {
"title": "JupyterLab",
"description": "A Powerful next generation notebook interface",
},
"/nteract": {
"title": "Nteract",
"description": "Nteract notebook interface",
},
},
}
}

View File

@@ -2,8 +2,9 @@ from tljh.normalize import generate_system_username
from tljh import user
from systemdspawner import SystemdSpawner
from traitlets import Dict, Unicode, List
from jupyterhub_configurator.mixins import ConfiguratorSpawnerMixin
class UserCreatingSpawner(SystemdSpawner):
class UserCreatingSpawner(ConfiguratorSpawnerMixin, SystemdSpawner):
"""
SystemdSpawner with user creation on spawn.