mirror of
https://github.com/jupyterhub/the-littlest-jupyterhub.git
synced 2025-12-18 21:54:05 +08:00
Check JupyterHub is running before finishing installer
Integration CI failures were probably caused by us testing too soon. This should make that less likely
This commit is contained in:
@@ -2,9 +2,11 @@ import sys
|
|||||||
import os
|
import os
|
||||||
import tljh.systemd as systemd
|
import tljh.systemd as systemd
|
||||||
import tljh.conda as conda
|
import tljh.conda as conda
|
||||||
|
from urllib.request import urlopen, URLError
|
||||||
from tljh import user
|
from tljh import user
|
||||||
import secrets
|
import secrets
|
||||||
import argparse
|
import argparse
|
||||||
|
import time
|
||||||
from ruamel.yaml import YAML
|
from ruamel.yaml import YAML
|
||||||
|
|
||||||
INSTALL_PREFIX = os.environ.get('TLJH_INSTALL_PREFIX', '/opt/tljh')
|
INSTALL_PREFIX = os.environ.get('TLJH_INSTALL_PREFIX', '/opt/tljh')
|
||||||
@@ -130,6 +132,28 @@ def ensure_admins(admins):
|
|||||||
rt_yaml.dump(config, f)
|
rt_yaml.dump(config, f)
|
||||||
|
|
||||||
|
|
||||||
|
def ensure_jupyterhub_running(times=4):
|
||||||
|
"""
|
||||||
|
Ensure that JupyterHub is up and running
|
||||||
|
|
||||||
|
Loops given number of times, waiting a second each.
|
||||||
|
"""
|
||||||
|
|
||||||
|
for i in range(4):
|
||||||
|
try:
|
||||||
|
print('Waiting for JupyterHub to come up ({}/{} tries)'.format(i, times))
|
||||||
|
urlopen('http://127.0.0.1')
|
||||||
|
except URLError as e:
|
||||||
|
if isinstance(e.reason, ConnectionRefusedError):
|
||||||
|
# Hub isn't up yet, sleep & loop
|
||||||
|
time.sleep(1)
|
||||||
|
continue
|
||||||
|
# Everything else should immediately abort
|
||||||
|
raise
|
||||||
|
|
||||||
|
raise Exception("Installation failed: JupyterHub did not start in {}s".format(times))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
argparser = argparse.ArgumentParser()
|
argparser = argparse.ArgumentParser()
|
||||||
argparser.add_argument(
|
argparser.add_argument(
|
||||||
@@ -148,6 +172,7 @@ def main():
|
|||||||
print("Setting up JupyterHub...")
|
print("Setting up JupyterHub...")
|
||||||
ensure_jupyterhub_package(HUB_ENV_PREFIX)
|
ensure_jupyterhub_package(HUB_ENV_PREFIX)
|
||||||
ensure_jupyterhub_service(HUB_ENV_PREFIX)
|
ensure_jupyterhub_service(HUB_ENV_PREFIX)
|
||||||
|
ensure_jupyterhub_running()
|
||||||
|
|
||||||
print("Done!")
|
print("Done!")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user