From 57e2b3e73e9cf2ce01f7fc7baed476807342a162 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Wed, 21 Dec 2022 11:32:24 +0100 Subject: Added an healthcheck endpoint --- ttun_server/__init__.py | 14 +++++++++++--- ttun_server/endpoints.py | 8 ++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ttun_server/__init__.py b/ttun_server/__init__.py index cf589cc..85cdc7d 100644 --- a/ttun_server/__init__.py +++ b/ttun_server/__init__.py @@ -2,16 +2,24 @@ import logging import os from starlette.applications import Starlette -from starlette.routing import Route, WebSocketRoute +from starlette.routing import Route, WebSocketRoute, Host, Router -from ttun_server.endpoints import Proxy, Tunnel +from ttun_server.endpoints import Proxy, Tunnel, Health logging.basicConfig(level=getattr(logging, os.environ.get('LOG_LEVEL', 'INFO'))) +base_router = Router(routes=[ + Route('/health/}', Health), + WebSocketRoute('/tunnel/', Tunnel) +]) + +proxy_router = Router(routes=[ +]) + server = Starlette( debug=True, routes=[ + Host(os.environ['TUNNEL_DOMAIN'], base_router, 'base'), Route('/{path:path}', Proxy), - WebSocketRoute('/tunnel/', Tunnel) ] ) diff --git a/ttun_server/endpoints.py b/ttun_server/endpoints.py index 5b9e57f..b62313c 100644 --- a/ttun_server/endpoints.py +++ b/ttun_server/endpoints.py @@ -48,6 +48,14 @@ class Proxy(HTTPEndpoint): await response(self.scope, self.receive, self.send) +class Health(HTTPEndpoint): + async def get(self) -> None: + response = Response(content='OK', status_code=200) + + await response(self.scope, self.receive, self.send) + + + class Tunnel(WebSocketEndpoint): encoding = 'json' -- cgit v1.2.3