summaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2026-10-14 13:32:47 -0500
committerGitHub <noreply@github.com>2026-10-14 13:32:47 -0500
commit7677efce1f811445d033d0ca81f3fe11396e8dd7 (patch)
tree64dc712a30545f68b75f382a1474c53b3848d986 /src/services
parente96e646f030f4ee6835b1ebbdca0640f0440f0d0 (diff)
parent1d180225536b8e92a05f2b0710a115dd71a40cc1 (diff)
downloadvyos-1x-7677efce1f811445d033d0ca81f3fe11396e8dd7.tar.gz
vyos-1x-7677efce1f811445d033d0ca81f3fe11396e8dd7.zip
Merge pull request #5550 from c-po/T9453-http-api-reload-ready
http-api: T9453: wait for the API server to be ready after a reload
Diffstat (limited to 'src/services')
-rwxr-xr-xsrc/services/vyos-http-api-server11
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