mirror of
https://github.com/ceph/ceph
synced 2025-02-21 01:47:25 +00:00
Merge pull request #21748 from b-ranto/wip-fix-prom-shutdown
prometheus: Fix prometheus shutdown/restart Reveiwed-by: John Spray <john.spray@redhat.com> Reviewed-by: Jan Fajerski <jfajerski@suse.com>
This commit is contained in:
commit
9b8a74f037
@ -4,6 +4,7 @@ import errno
|
||||
import math
|
||||
import os
|
||||
import socket
|
||||
import threading
|
||||
from collections import OrderedDict
|
||||
from mgr_module import MgrModule, MgrStandbyModule, CommandResult
|
||||
|
||||
@ -361,6 +362,7 @@ class Module(MgrModule):
|
||||
super(Module, self).__init__(*args, **kwargs)
|
||||
self.metrics = Metrics()
|
||||
self.schema = OrderedDict()
|
||||
self.shutdown_event = threading.Event()
|
||||
_global_instance['plugin'] = self
|
||||
|
||||
def get_health(self):
|
||||
@ -696,16 +698,22 @@ class Module(MgrModule):
|
||||
self.log.info('Starting engine...')
|
||||
cherrypy.engine.start()
|
||||
self.log.info('Engine started.')
|
||||
cherrypy.engine.block()
|
||||
# wait for the shutdown event
|
||||
self.shutdown_event.wait()
|
||||
self.shutdown_event.clear()
|
||||
cherrypy.engine.stop()
|
||||
self.log.info('Engine stopped.')
|
||||
|
||||
def shutdown(self):
|
||||
self.log.info('Stopping engine...')
|
||||
cherrypy.engine.wait(state=cherrypy.engine.states.STARTED)
|
||||
cherrypy.engine.exit()
|
||||
self.log.info('Stopped engine')
|
||||
self.shutdown_event.set()
|
||||
|
||||
|
||||
class StandbyModule(MgrStandbyModule):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(StandbyModule, self).__init__(*args, **kwargs)
|
||||
self.shutdown_event = threading.Event()
|
||||
|
||||
def serve(self):
|
||||
server_addr = self.get_localized_config('server_addr', '::')
|
||||
server_port = self.get_localized_config('server_port', DEFAULT_PORT)
|
||||
@ -740,12 +748,14 @@ class StandbyModule(MgrStandbyModule):
|
||||
cherrypy.tree.mount(Root(), '/', {})
|
||||
self.log.info('Starting engine...')
|
||||
cherrypy.engine.start()
|
||||
self.log.info("Waiting for engine...")
|
||||
cherrypy.engine.wait(state=cherrypy.engine.states.STOPPED)
|
||||
self.log.info('Engine started.')
|
||||
# Wait for shutdown event
|
||||
self.shutdown_event.wait()
|
||||
self.shutdown_event.clear()
|
||||
cherrypy.engine.stop()
|
||||
self.log.info('Engine stopped.')
|
||||
|
||||
def shutdown(self):
|
||||
self.log.info("Stopping engine...")
|
||||
cherrypy.engine.wait(state=cherrypy.engine.states.STARTED)
|
||||
cherrypy.engine.stop()
|
||||
self.shutdown_event.set()
|
||||
self.log.info("Stopped engine")
|
||||
|
Loading…
Reference in New Issue
Block a user