Compare commits
5 Commits
b9da2ce686
...
pkg/dev/ri
Author | SHA1 | Date | |
---|---|---|---|
6a27b002ff | |||
8fdc34c4d3 | |||
e2d73932c0 | |||
980a119ef9 | |||
f623feb8a8 |
6
debian/control
vendored
6
debian/control
vendored
@ -9,7 +9,11 @@ Homepage: https://forge.cadoles.com/Infra/risotto
|
||||
Package: python3-risotto
|
||||
Architecture: any
|
||||
Pre-Depends: dpkg, python3, ${misc:Pre-Depends}
|
||||
Depends: ${python:Depends}, ${misc:Depends}, python3-asyncpg, python3-rougail, python3-aiohttp
|
||||
Depends: ${python:Depends}, ${misc:Depends},
|
||||
python3-asyncpg,
|
||||
python3-rougail,
|
||||
python3-aiohttp,
|
||||
python3-sdnotify
|
||||
Description: configuration manager libraries
|
||||
|
||||
Package: risotto
|
||||
|
@ -1,13 +1,16 @@
|
||||
#!/usr/bin/env python3
|
||||
from sdnotify import SystemdNotifier
|
||||
from asyncio import get_event_loop
|
||||
from risotto import get_app
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
notifier = SystemdNotifier()
|
||||
loop = get_event_loop()
|
||||
loop.run_until_complete(get_app(loop))
|
||||
print('HTTP server ready')
|
||||
notifier.notify("READY=1")
|
||||
try:
|
||||
print('HTTP server ready')
|
||||
loop.run_forever()
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
@ -29,7 +29,8 @@ def create_context(request):
|
||||
|
||||
|
||||
def register(version: str,
|
||||
path: str):
|
||||
path: str,
|
||||
):
|
||||
""" Decorator to register function to the http route
|
||||
"""
|
||||
def decorator(function):
|
||||
@ -41,7 +42,9 @@ def register(version: str,
|
||||
|
||||
|
||||
class extra_route_handler:
|
||||
async def __new__(cls, request):
|
||||
async def __new__(cls,
|
||||
request,
|
||||
):
|
||||
kwargs = dict(request.match_info)
|
||||
kwargs['request'] = request
|
||||
kwargs['risotto_context'] = create_context(request)
|
||||
@ -96,11 +99,13 @@ async def handle(request):
|
||||
print_exc()
|
||||
raise HTTPInternalServerError(reason=str(err))
|
||||
return Response(text=dumps({'response': text}),
|
||||
content_type='application/json')
|
||||
content_type='application/json',
|
||||
)
|
||||
|
||||
|
||||
async def api(request,
|
||||
risotto_context):
|
||||
risotto_context,
|
||||
):
|
||||
global TIRAMISU
|
||||
if not TIRAMISU:
|
||||
# check all URI that have an associated role
|
||||
@ -152,7 +157,8 @@ async def get_app(loop):
|
||||
for version in versions:
|
||||
api_route = {'function': api,
|
||||
'version': version,
|
||||
'path': f'/api/{version}'}
|
||||
'path': f'/api/{version}',
|
||||
}
|
||||
extra_handler = type(api_route['path'], (extra_route_handler,), api_route)
|
||||
routes.append(get(api_route['path'], extra_handler))
|
||||
print(f' - {api_route["path"]} (http_get)')
|
||||
@ -174,7 +180,10 @@ async def get_app(loop):
|
||||
await dispatcher.register_remote()
|
||||
print()
|
||||
await dispatcher.on_join()
|
||||
return await loop.create_server(app.make_handler(), '*', get_config()['http_server']['port'])
|
||||
return await loop.create_server(app.make_handler(),
|
||||
'*',
|
||||
get_config()['http_server']['port'],
|
||||
)
|
||||
|
||||
|
||||
TIRAMISU = None
|
||||
|
Reference in New Issue
Block a user