Support controller reloading for templates, appliances and projects. Ref #1743

This commit is contained in:
grossmj committed 2020-04-30 15:30:50 +09:30
1 parent 7b61724213
commit 02c0fa26e1
8 files changed
+44 -12

No files matched your search

+17 -5
View File
@@ -88,6 +88,15 @@ class WebServer:
return False
return True
async def reload_server(self):
"""
Reload the server.
"""
await Controller.instance().reload()
async def shutdown_server(self):
"""
Cleanly shutdown the server.
@@ -141,9 +150,14 @@ class WebServer:
def _signal_handling(self):
def signal_handler(signame, *args):
log.warning("Server has got signal {}, exiting...".format(signame))
try:
asyncio.ensure_future(self.shutdown_server())
if signame == "SIGHUP":
log.info("Server has got signal {}, reloading...".format(signame))
asyncio.ensure_future(self.reload_server())
else:
log.warning("Server has got signal {}, exiting...".format(signame))
asyncio.ensure_future(self.shutdown_server())
except asyncio.CancelledError:
pass
@@ -265,9 +279,7 @@ class WebServer:
# Background task started with the server
self._app.on_startup.append(self._on_startup)
resource_options = aiohttp_cors.ResourceOptions(
expose_headers="*", allow_headers="*", max_age=0
)
resource_options = aiohttp_cors.ResourceOptions(expose_headers="*", allow_headers="*", max_age=0)
# Allow CORS for this domains
cors = aiohttp_cors.setup(self._app, defaults={