Change aiohttp handling for server (#511)

This commit is contained in:
Pascal Vizeli 2018-06-20 12:17:33 +02:00 committed by GitHub
parent 7769d6fff1
commit 20e73796b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -30,8 +30,8 @@ class RestAPI(CoreSysAttributes):
middlewares=[self.security.token_validation], loop=coresys.loop) middlewares=[self.security.token_validation], loop=coresys.loop)
# service stuff # service stuff
self._handler = None self._runner = web.AppRunner(self.webapp)
self.server = None self._site = web.TCPSite(self._runner, "0.0.0.0", 80)
async def load(self): async def load(self):
"""Register REST API Calls.""" """Register REST API Calls."""
@ -220,22 +220,15 @@ class RestAPI(CoreSysAttributes):
async def start(self): async def start(self):
"""Run rest api webserver.""" """Run rest api webserver."""
self._handler = self.webapp.make_handler() await self._runner.setup()
try: try:
self.server = await self.sys_loop.create_server( await self._site.start()
self._handler, "0.0.0.0", "80")
except OSError as err: except OSError as err:
_LOGGER.fatal( _LOGGER.fatal(
"Failed to create HTTP server at 0.0.0.0:80 -> %s", err) "Failed to create HTTP server at 0.0.0.0:80 -> %s", err)
async def stop(self): async def stop(self):
"""Stop rest api webserver.""" """Stop rest api webserver."""
if self.server: await self._site.stop()
self.server.close() await self._runner.cleanup()
await self.server.wait_closed()
await self.webapp.shutdown()
if self._handler:
await self._handler.shutdown(60)
await self.webapp.cleanup()