forked from mirrors/thatmattlove-hyperglass
Flask → Sanic, Requests → HTTP3, Add SSHTunnel for SSH Proxying, Remove Gunicorn dependency
50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
"""
|
|
Hyperglass web app initiator. Launches Sanic with appropriate number of
|
|
workers per their documentation (equal to number of CPU cores).
|
|
"""
|
|
|
|
# Override web server listen host & port if necessary:
|
|
host = "localhost"
|
|
port = 8001
|
|
|
|
try:
|
|
import multiprocessing
|
|
from hyperglass import render
|
|
from hyperglass import hyperglass
|
|
from hyperglass.configuration import params
|
|
except ImportError as import_error:
|
|
raise RuntimeError(import_error)
|
|
|
|
if params.general.debug:
|
|
debug = True
|
|
access_log = False
|
|
elif not params.general.debug:
|
|
debug = False
|
|
access_log = True
|
|
|
|
# Override the number of web server workers if necessary:
|
|
workers = multiprocessing.cpu_count()
|
|
|
|
|
|
def start():
|
|
"""
|
|
Compiles configured Sass variables to CSS, then starts Sanic web
|
|
server.
|
|
"""
|
|
try:
|
|
render.css()
|
|
except Exception as render_error:
|
|
raise RuntimeError(render_error)
|
|
try:
|
|
hyperglass.app.run(
|
|
host=host,
|
|
port=port,
|
|
debug=params.general.debug,
|
|
workers=workers,
|
|
access_log=access_log,
|
|
)
|
|
except Exception as hyperglass_error:
|
|
raise RuntimeError(hyperglass_error)
|
|
|
|
|
|
app = start()
|