Commit 4fcf2c16 authored by Ching Kuo's avatar Ching Kuo
Browse files

Handle Sigterm Properly

Currently oslo.metrics http server doesn't handle sigterm signal. This
commit added support to handle sigterm and shutdown gracefully.

Change-Id: I3a5b1a5ebcadfd0c64fcbea0216503dd7f984411
parent 4631e58c
......@@ -15,6 +15,7 @@
import os
import select
import signal
import socket
import stat
import sys
......@@ -82,6 +83,15 @@ class MetricsListener():
self.start = False
httpd = None
def handle_sigterm(_signum, _frame):
LOG.debug("Caught sigterm")
shutdown_thread = threading.Thread(target=httpd.shutdown)
shutdown_thread.start()
def main():
cfg.CONF(sys.argv[1:])
socket_path = cfg.CONF.oslo_metrics.metrics_socket_file
......@@ -96,7 +106,9 @@ def main():
app = make_wsgi_app()
try:
global httpd
httpd = make_server('', 3000, app)
signal.signal(signal.SIGTERM, handle_sigterm)
httpd.serve_forever()
except KeyboardInterrupt:
pass
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment