diff options
Diffstat (limited to 'src/services/vyos-http-api-server')
| -rwxr-xr-x | src/services/vyos-http-api-server | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/services/vyos-http-api-server b/src/services/vyos-http-api-server index 6a420f499..c839dbd88 100755 --- a/src/services/vyos-http-api-server +++ b/src/services/vyos-http-api-server @@ -31,6 +31,7 @@ from uvicorn import Server as UvicornServer from vyos.configsession import ConfigSession from vyos.defaults import api_config_state +from vyos.defaults import api_ready_state from vyos.utils.file import read_file from vyos.version import get_version @@ -120,12 +121,20 @@ class ApiServer(UvicornServer): def install_signal_handlers(self): pass + async def startup(self, sockets=None): + await super().startup(sockets=sockets) + # Tells service_https.py that the socket accepts requests again + if self.started: + open(api_ready_state, 'w').close() + def reload_handler(signum, frame): # pylint: disable=global-statement global server LOG.debug('Reload signal received...') + if os.path.exists(api_ready_state): + os.unlink(api_ready_state) if server is not None: server.handle_exit(signum, frame) server = None @@ -139,6 +148,8 @@ def shutdown_handler(signum, frame): global shutdown LOG.debug('Shutdown signal received...') + if os.path.exists(api_ready_state): + os.unlink(api_ready_state) server.handle_exit(signum, frame) LOG.info('Server shutdown...') shutdown = True |
