Add explicit PYTHONUSERBASE path to micromamba endpoint

This commit is contained in:
Benoît Seignovert 2024-03-26 08:05:00 +01:00
parent 69015d5062
commit d2c0631956
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
4 changed files with 17 additions and 5 deletions

View file

@ -9,6 +9,7 @@ GLOBAL_USER = 'operator'
MAMBA_ROOT_PREFIX = f'{MICROMAMBA_ROOT}/{GLOBAL_USER}' MAMBA_ROOT_PREFIX = f'{MICROMAMBA_ROOT}/{GLOBAL_USER}'
MAMBA_EXE = f'{MAMBA_ROOT_PREFIX}/bin/micromamba' MAMBA_EXE = f'{MAMBA_ROOT_PREFIX}/bin/micromamba'
MAMBA_USER_BASE = f'{MICROMAMBA_ROOT}/$USER'
@dataclass @dataclass

View file

@ -9,7 +9,7 @@ from batchspawner import JobStatus, SlurmSpawner
from traitlets import Bool, 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 .micromamba import MAMBA_EXE, MAMBA_ROOT_PREFIX from .micromamba import MAMBA_EXE, MAMBA_ROOT_PREFIX, MAMBA_USER_BASE
from .progress import ElapseTime, get_progress from .progress import ElapseTime, get_progress
from .templates import get_template_src from .templates import get_template_src
@ -24,14 +24,19 @@ class GlicidSpawner(SlurmSpawner):
help='Spawner singleuser command.', help='Spawner singleuser command.',
).tag(config=True) ).tag(config=True)
req_mamba_exe = Unicode(
MAMBA_EXE,
help='Micromamba global exe',
).tag(config=True)
req_mamba_root_prefix = Unicode( req_mamba_root_prefix = Unicode(
MAMBA_ROOT_PREFIX, MAMBA_ROOT_PREFIX,
help='Micromamba global root prefix', help='Micromamba global root prefix',
).tag(config=True) ).tag(config=True)
req_mamba_exe = Unicode( req_mamba_user_base = Unicode(
MAMBA_EXE, MAMBA_USER_BASE,
help='Micromamba global exe', help='Micromamba user base prefix',
).tag(config=True) ).tag(config=True)
req_job_name = Unicode( req_job_name = Unicode(

View file

@ -33,6 +33,7 @@ echo "The {{job_name}} logs are located in: ${JUPYTER_LOG_DIR}"
{# Micromamba config -#} {# Micromamba config -#}
export MAMBA_EXE={{mamba_exe}}; export MAMBA_EXE={{mamba_exe}};
export MAMBA_ROOT_PREFIX={{mamba_root_prefix}}; export MAMBA_ROOT_PREFIX={{mamba_root_prefix}};
export PYTHONUSERBASE={{ mamba_user_base }};
source $MAMBA_ROOT_PREFIX/etc/profile.d/micromamba.sh; source $MAMBA_ROOT_PREFIX/etc/profile.d/micromamba.sh;
{# Activate micromamba env requested by the user -#} {# Activate micromamba env requested by the user -#}

View file

@ -27,8 +27,9 @@ def test_spawner_config():
assert 'bin/glicid-spawner-singleuser' in cmd assert 'bin/glicid-spawner-singleuser' in cmd
assert 'bin/jupyterhub-singleuser' in cmd assert 'bin/jupyterhub-singleuser' in cmd
assert spawner.req_mamba_root_prefix == '/micromamba/operator'
assert spawner.req_mamba_exe == '/micromamba/operator/bin/micromamba' assert spawner.req_mamba_exe == '/micromamba/operator/bin/micromamba'
assert spawner.req_mamba_root_prefix == '/micromamba/operator'
assert spawner.req_mamba_user_base == '/micromamba/$USER'
assert spawner.req_job_name == 'jupyterhub_glicid' assert spawner.req_job_name == 'jupyterhub_glicid'
assert spawner.req_qos == 'short' assert spawner.req_qos == 'short'
@ -70,8 +71,12 @@ def test_spawner_batch_script(monkeypatch):
assert 'export MAMBA_EXE=/micromamba/operator/bin/micromamba;' in script assert 'export MAMBA_EXE=/micromamba/operator/bin/micromamba;' in script
assert 'export MAMBA_ROOT_PREFIX=/micromamba/operator;' in script assert 'export MAMBA_ROOT_PREFIX=/micromamba/operator;' in script
assert 'export PYTHONUSERBASE=/micromamba/$USER;' in script
assert 'micromamba activate /micromamba/john-doe/envs/foo;' in script assert 'micromamba activate /micromamba/john-doe/envs/foo;' in script
assert 'micromamba activate /micromamba/john-doe/envs/foo;' in script
assert 'export JUPYTER_PATH=/micromamba/john-doe/envs/foo/share/jupyter;' in script
assert re.search(r'.*/bin/glicid-spawner-singleuser .*/bin/jupyterhub-singleuser', script) assert re.search(r'.*/bin/glicid-spawner-singleuser .*/bin/jupyterhub-singleuser', script)