Add tljh_post_install hook

This commit is contained in:
Jeremy Tuloup
2019-06-27 11:45:36 +02:00
parent d042724840
commit f3232e7c44
4 changed files with 44 additions and 1 deletions

View File

@@ -1,6 +1,9 @@
""" """
Simplest plugin that exercises all the hooks Simplest plugin that exercises all the hooks
""" """
from textwrap import dedent
from tljh import systemd
from tljh.hooks import hookimpl from tljh.hooks import hookimpl
@@ -39,4 +42,22 @@ def tljh_config_post_install(config):
@hookimpl @hookimpl
def tljh_custom_jupyterhub_config(c): def tljh_custom_jupyterhub_config(c):
c.JupyterHub.authenticator_class = 'tmpauthenticator.TmpAuthenticator' c.JupyterHub.authenticator_class = 'tmpauthenticator.TmpAuthenticator'
@hookimpl
def tljh_post_install():
post_install_service = dedent("""
[Unit]
Description=Post Install Test Service
[Service]
ExecStart=ls
[Install]
WantedBy=multi-user.target
""")
service = "post-install-test.service"
systemd.install_unit(service, post_install_service)
systemd.enable_service(service)
systemd.reload_daemon()

View File

@@ -6,6 +6,7 @@ import requests
import os import os
import subprocess import subprocess
from tljh.config import CONFIG_FILE, USER_ENV_PREFIX, HUB_ENV_PREFIX from tljh.config import CONFIG_FILE, USER_ENV_PREFIX, HUB_ENV_PREFIX
from tljh.systemd import check_service_enabled
yaml = YAML(typ='rt') yaml = YAML(typ='rt')
@@ -54,6 +55,7 @@ def test_config_hook():
assert data['simplest_plugin']['present'] assert data['simplest_plugin']['present']
def test_jupyterhub_config_hook(): def test_jupyterhub_config_hook():
""" """
Test that tmpauthenticator is enabled by our custom config plugin Test that tmpauthenticator is enabled by our custom config plugin
@@ -61,3 +63,10 @@ def test_jupyterhub_config_hook():
resp = requests.get('http://localhost/hub/tmplogin', allow_redirects=False) resp = requests.get('http://localhost/hub/tmplogin', allow_redirects=False)
assert resp.status_code == 302 assert resp.status_code == 302
assert resp.headers['Location'] == '/hub/spawn' assert resp.headers['Location'] == '/hub/spawn'
def test_post_install_hook():
"""
Test that the post-install-test systemd service is enabled
"""
assert check_service_enabled("post-install-test")

View File

@@ -58,4 +58,14 @@ def tljh_config_post_install(config):
be the serialized contents of config, so try to not be the serialized contents of config, so try to not
overwrite anything the user might have explicitly set. overwrite anything the user might have explicitly set.
""" """
pass
@hookspec
def tljh_post_install():
"""
Post install script to be executed after installation
and after all the other hooks.
This can be arbitrary Python code.
"""
pass pass

View File

@@ -405,6 +405,9 @@ def run_plugin_actions(plugin_manager, plugins):
)) ))
conda.ensure_pip_packages(USER_ENV_PREFIX, user_pip_packages) conda.ensure_pip_packages(USER_ENV_PREFIX, user_pip_packages)
# Custom post install actions
hook.tljh_post_install()
def ensure_config_yaml(plugin_manager): def ensure_config_yaml(plugin_manager):
""" """