Add event-driven reporting and durable failure recovery hooks
This commit is contained in:
@@ -186,6 +186,8 @@ class Handler(BaseHTTPRequestHandler):
|
||||
state['primary_session_id'] = self.server.primary_session_id
|
||||
state['metrics'] = self.server.metrics.snapshot()
|
||||
self.output(200, state)
|
||||
elif parts.path == '/api/hook-notifications' and not parts.query:
|
||||
self.output(200, self.server.store.hook_notifications())
|
||||
elif parts.path == '/api/messages':
|
||||
query = parse_qs(parts.query, strict_parsing=True)
|
||||
if set(query) != {'session_id'} or len(query['session_id']) != 1:
|
||||
@@ -243,7 +245,8 @@ class Handler(BaseHTTPRequestHandler):
|
||||
if not isinstance(data, dict):
|
||||
raise Invalid('object required')
|
||||
store = self.server.store
|
||||
routes = {'/api/sessions':store.session, '/api/session-requests':store.request,
|
||||
routes = {'/api/hooks':store.hook, '/api/hooks/ack':store.hook_ack,
|
||||
'/api/sessions':store.session, '/api/session-requests':store.request,
|
||||
'/api/tasks':store.task, '/api/messages':store.send,
|
||||
'/api/worker/claim':store.claim, '/api/worker/renew':store.renew, '/api/worker/complete':store.complete,
|
||||
'/api/events':store.event, '/api/mirror':store.mirror, '/api/worker/start':store.start,
|
||||
|
||||
Reference in New Issue
Block a user