mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-19 16:03:00 +00:00
Build ssl_context as util, wait_up with context
This commit is contained in:
@@ -16,6 +16,7 @@ import os
|
||||
import socket
|
||||
import sys
|
||||
import threading
|
||||
import ssl
|
||||
import uuid
|
||||
import warnings
|
||||
|
||||
@@ -70,6 +71,17 @@ def can_connect(ip, port):
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def make_ssl_context(keyfile, certfile, cafile=None, verify=True, check_hostname=True):
|
||||
if not keyfile or not certfile:
|
||||
return None
|
||||
purpose = ssl.Purpose.SERVER_AUTH if verify else ssl.Purpose.CLIENT_AUTH
|
||||
ssl_context = ssl.create_default_context(purpose, cafile=cafile)
|
||||
ssl_context.load_cert_chain(certfile, keyfile)
|
||||
ssl_context.check_hostname = check_hostname
|
||||
return ssl_context
|
||||
|
||||
|
||||
async def exponential_backoff(
|
||||
pass_func,
|
||||
fail_message,
|
||||
@@ -166,11 +178,17 @@ async def wait_for_server(ip, port, timeout=10):
|
||||
)
|
||||
|
||||
|
||||
async def wait_for_http_server(url, timeout=10):
|
||||
async def wait_for_http_server(url, timeout=10, ssl_context=None):
|
||||
"""Wait for an HTTP Server to respond at url.
|
||||
|
||||
Any non-5XX response code will do, even 404.
|
||||
"""
|
||||
loop = ioloop.IOLoop.current()
|
||||
tic = loop.time()
|
||||
settings = None
|
||||
if ssl_context:
|
||||
settings = {"ssl_options": ssl_context}
|
||||
AsyncHTTPClient.configure(None, defaults=settings)
|
||||
client = AsyncHTTPClient()
|
||||
async def is_reachable():
|
||||
try:
|
||||
|
Reference in New Issue
Block a user