Add notebook directory configuration

This commit is contained in:
Benoît Seignovert 2024-02-26 14:54:56 +01:00
parent c67e8742c8
commit dc750031db
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
2 changed files with 23 additions and 1 deletions

View file

@ -4,7 +4,7 @@ import asyncio
import re import re
from batchspawner import JobStatus, SlurmSpawner from batchspawner import JobStatus, SlurmSpawner
from traitlets import Integer, Unicode, default from traitlets import Bool, Integer, Unicode, default
from .form import options_form, options_from_form from .form import options_form, options_from_form
from .progress import ElapseTime, get_progress from .progress import ElapseTime, get_progress
@ -13,6 +13,21 @@ from .progress import ElapseTime, get_progress
class GlicidSpawner(SlurmSpawner): class GlicidSpawner(SlurmSpawner):
"""Glicid SLURM Spawner.""" """Glicid SLURM Spawner."""
disable_user_config = Bool(
True,
help='Disable per-user configuration of single-user servers.',
).tag(config=True)
notebook_dir = Unicode(
'/',
help='Path to the notebook directory for the single-user server.',
).tag(config=True)
@default('default_url')
def _default_url_default(self) -> str:
"""The URL the single-user server should start in."""
return '/tree' + self.user_options.get('workdir', '/home/{username}')
batchspawner_singleuser_cmd = Unicode( batchspawner_singleuser_cmd = Unicode(
'glicid-spawner-singleuser', 'glicid-spawner-singleuser',
help='Spawner singleuser command.', help='Spawner singleuser command.',

View file

@ -21,6 +21,9 @@ def test_spawner_config():
assert spawner.batchspawner_singleuser_cmd == 'glicid-spawner-singleuser' assert spawner.batchspawner_singleuser_cmd == 'glicid-spawner-singleuser'
assert spawner.disable_user_config
assert spawner.notebook_dir == '/'
assert spawner.default_url == '/tree/home/{username}'
assert spawner.req_job_name == 'jupyterhub_glicid' assert spawner.req_job_name == 'jupyterhub_glicid'
assert spawner.req_qos == 'short' assert spawner.req_qos == 'short'
assert spawner.progress_rate == 10 assert spawner.progress_rate == 10
@ -53,6 +56,10 @@ def test_spawner_options_form(monkeypatch):
assert spawner.options_form == "options_form('john-doe')" assert spawner.options_form == "options_form('john-doe')"
assert spawner.options_from_form({'foo': 123}) == "options_from_form({'foo': 123})" assert spawner.options_from_form({'foo': 123}) == "options_from_form({'foo': 123})"
spawner = GlicidSpawner(user_options={'workdir': '/LAB-DATA'})
assert spawner.default_url == '/tree/LAB-DATA'
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_spawner_progress(monkeypatch): async def test_spawner_progress(monkeypatch):