Using ServiceLauncher instead of ProcessLauncher

This patch added implementation that instancemonitor starts
by using ServiceLauncher instead of ProcessLauncher.

Change-Id: I0eb7be7989b8af1b901105b433e7b782f7312e9f
This commit is contained in:
Kengo Takahara 2017-01-24 14:57:08 +09:00
parent 2924a1a7ff
commit 9f935ca80e
2 changed files with 18 additions and 6 deletions

View File

@ -32,8 +32,6 @@ def main():
logging.setup(CONF, "masakarimonitors")
utils.monkey_patch()
launcher = service.process_launcher()
server = service.Service.create(binary='masakarimonitors-instancemonitor')
launcher.launch_service(server)
launcher.wait()
service.serve(server)
service.wait()

View File

@ -118,5 +118,19 @@ class Service(service.Service):
self.manager.reset()
def process_launcher():
return service.ProcessLauncher(CONF)
# NOTE: the global launcher is to maintain the existing
# functionality of calling service.serve +
# service.wait
_launcher = None
def serve(server, workers=None):
global _launcher
if _launcher:
raise RuntimeError(_('serve() can only be called once'))
_launcher = service.launch(CONF, server, workers=workers)
def wait():
_launcher.wait()