Merge pull request #32 from rprimet/handle_transient

Handle transient errors
This commit is contained in:
Yuvi Panda
2018-07-13 09:37:04 -07:00
committed by GitHub

View File

@@ -2,6 +2,7 @@ import sys
import os
import tljh.systemd as systemd
import tljh.conda as conda
from urllib.error import HTTPError
from urllib.request import urlopen, URLError
from tljh import user
import secrets
@@ -139,11 +140,18 @@ def ensure_jupyterhub_running(times=4):
Loops given number of times, waiting a second each.
"""
for i in range(4):
for i in range(times):
try:
print('Waiting for JupyterHub to come up ({}/{} tries)'.format(i + 1, times))
urlopen('http://127.0.0.1')
return
except HTTPError as h:
if h.code in [404, 503]:
# May be transient
time.sleep(1)
continue
# Everything else should immediately abort
raise
except URLError as e:
if isinstance(e.reason, ConnectionRefusedError):
# Hub isn't up yet, sleep & loop