Show git head in health infos
This commit is contained in:
parent
50ebba0df6
commit
b161d0d7e9
1 changed files with 12 additions and 4 deletions
16
app.py
16
app.py
|
@ -20,8 +20,9 @@ startup_timestamp = datetime.now()
|
|||
|
||||
class HealthHandler(tornado.web.RequestHandler, metaclass=ABCMeta):
|
||||
# noinspection PyAttributeOutsideInit
|
||||
def initialize(self):
|
||||
def initialize(self, sources=None):
|
||||
self.git_version = self._load_git_version()
|
||||
self.sources = sources
|
||||
|
||||
@staticmethod
|
||||
def _load_git_version():
|
||||
|
@ -53,6 +54,12 @@ class HealthHandler(tornado.web.RequestHandler, metaclass=ABCMeta):
|
|||
health['timestamp'] = isodate.datetime_isoformat(datetime.now())
|
||||
health['uptime'] = isodate.duration_isoformat(datetime.now() - startup_timestamp)
|
||||
|
||||
if self.sources:
|
||||
for s in self.sources:
|
||||
h = s()
|
||||
if h is not None:
|
||||
health = {**health, **h}
|
||||
|
||||
self.set_header("Content-Type", "application/json")
|
||||
self.write(json.dumps(health, indent=4))
|
||||
self.set_status(200)
|
||||
|
@ -70,10 +77,11 @@ class Oas3Handler(tornado.web.RequestHandler, metaclass=ABCMeta):
|
|||
self.finish()
|
||||
|
||||
|
||||
def make_app(_auth_provider=None):
|
||||
def make_app(_auth_provider=None, gitmgr=None):
|
||||
version_path = r"/v[0-9]"
|
||||
return tornado.web.Application([
|
||||
(version_path + r"/health", HealthHandler),
|
||||
(version_path + r"/health", HealthHandler,
|
||||
{"sources": [lambda: {"git-head": gitmgr.head_sha}] if gitmgr else None}),
|
||||
(version_path + r"/oas3", Oas3Handler),
|
||||
])
|
||||
|
||||
|
@ -89,7 +97,7 @@ def main():
|
|||
gitmgr.setup()
|
||||
gitmgr.printout()
|
||||
|
||||
util.run_tornado_server(make_app(auth_provider),
|
||||
util.run_tornado_server(make_app(auth_provider, gitmgr),
|
||||
server_port=port)
|
||||
|
||||
# Teardown
|
||||
|
|
Loading…
Reference in a new issue