summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.io>2022-12-21 11:32:24 +0100
committerGravatar Tom van der Lee <tom@vanderlee.io>2022-12-21 11:32:24 +0100
commit57e2b3e73e9cf2ce01f7fc7baed476807342a162 (patch)
tree5049e1f4450027b9907bd3e8cc1b0e226b83d41c
parente2843181eb5b6d5594d8e63a8406e8509b1dfbfe (diff)
downloadserver-57e2b3e73e9cf2ce01f7fc7baed476807342a162.tar.gz
server-57e2b3e73e9cf2ce01f7fc7baed476807342a162.tar.bz2
server-57e2b3e73e9cf2ce01f7fc7baed476807342a162.zip
Added an healthcheck endpoint
-rw-r--r--ttun_server/__init__.py14
-rw-r--r--ttun_server/endpoints.py8
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
2import os 2import os
3 3
4from starlette.applications import Starlette 4from starlette.applications import Starlette
5from starlette.routing import Route, WebSocketRoute 5from starlette.routing import Route, WebSocketRoute, Host, Router
6 6
7from ttun_server.endpoints import Proxy, Tunnel 7from ttun_server.endpoints import Proxy, Tunnel, Health
8 8
9logging.basicConfig(level=getattr(logging, os.environ.get('LOG_LEVEL', 'INFO'))) 9logging.basicConfig(level=getattr(logging, os.environ.get('LOG_LEVEL', 'INFO')))
10 10
11base_router = Router(routes=[
12 Route('/health/}', Health),
13 WebSocketRoute('/tunnel/', Tunnel)
14])
15
16proxy_router = Router(routes=[
17])
18
11server = Starlette( 19server = Starlette(
12 debug=True, 20 debug=True,
13 routes=[ 21 routes=[
22 Host(os.environ['TUNNEL_DOMAIN'], base_router, 'base'),
14 Route('/{path:path}', Proxy), 23 Route('/{path:path}', Proxy),
15 WebSocketRoute('/tunnel/', Tunnel)
16 ] 24 ]
17) 25)
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):
48 await response(self.scope, self.receive, self.send) 48 await response(self.scope, self.receive, self.send)
49 49
50 50
51class Health(HTTPEndpoint):
52 async def get(self) -> None:
53 response = Response(content='OK', status_code=200)
54
55 await response(self.scope, self.receive, self.send)
56
57
58
51class Tunnel(WebSocketEndpoint): 59class Tunnel(WebSocketEndpoint):
52 encoding = 'json' 60 encoding = 'json'
53 61