Add dummy spawner config

This commit is contained in:
Benoît Seignovert 2024-01-29 17:47:47 +01:00
parent 93900c3875
commit 1cd88f3ef8
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
3 changed files with 59 additions and 1 deletions

View file

@ -8,6 +8,9 @@ readme = "README.md"
repository = "https://gitlab.univ-nantes.fr/glicid/jupyter/spawner"
packages = [{ include = "glicid_spawner", from = "src"}]
[tool.poetry.plugins."jupyterhub.spawners"]
glicid-spawner = 'glicid_spawner:GlicidSpawner'
[tool.poetry.dependencies]
python = "^3.10"
jupyterhub = "^4.0"

View file

@ -2,6 +2,10 @@
from importlib.metadata import version
__all__ = []
from .spawner import GlicidSpawner
__all__ = [
'GlicidSpawner',
]
__version__ = version('glicid-spawner')

View file

@ -0,0 +1,51 @@
"""GLiCID spawner module."""
import shlex
from batchspawner import SlurmSpawner
class GlicidSpawner(SlurmSpawner):
"""Glicid SLURM Spawner."""
def _options_form_default(self):
default_env = f'YOURNAME={self.user.name}\n'
return f"""
<div class="form-group">
<label for="args">Extra notebook CLI arguments</label>
<input name="args" class="form-control"
placeholder="e.g. --debug"></input>
</div>
<div class="form-group">
<label for="env">Environment variables (one per line)</label>
<textarea class="form-control" name="env">{default_env}</textarea>
</div>
"""
def options_from_form(self, formdata):
options = {}
options['env'] = env = {}
env_lines = formdata.get('env', [''])
for line in env_lines[0].splitlines():
if line:
key, value = line.split('=', 1)
env[key.strip()] = value.strip()
arg_s = formdata.get('args', [''])[0].strip()
if arg_s:
options['argv'] = shlex.split(arg_s)
return options
def get_args(self):
"""Return arguments to pass to the notebook server"""
argv = super().get_args()
if self.user_options.get('argv'):
argv.extend(self.user_options['argv'])
return argv
def get_env(self):
env = super().get_env()
if self.user_options.get('env'):
env.update(self.user_options['env'])
return env