Add conductor to nova-all.

The conductor service was missing so running nova-all no longer results
in a complete environment.

This patch adds conductor to the binary list and updates the code to
handle the different way in which conductor specifies the topic and
manager.

Fixes bug 1152371

Change-Id: I4862ad66216ab980e8636e9f3cdbabbace6ee73c
This commit is contained in:
Rick Harris
2013-03-07 23:34:13 +00:00
parent 658640b39f
commit 038cb43567

View File

@@ -50,6 +50,8 @@ from nova.vnc import xvp_proxy
CONF = cfg.CONF
CONF.import_opt('manager', 'nova.conductor.api', group='conductor')
CONF.import_opt('topic', 'nova.conductor.api', group='conductor')
CONF.import_opt('enabled_apis', 'nova.service')
LOG = logging.getLogger('nova.all')
@@ -74,9 +76,25 @@ if __name__ == '__main__':
LOG.exception(_('Failed to load %s') % mod.__name__)
for binary in ['nova-compute', 'nova-network', 'nova-scheduler',
'nova-cert']:
'nova-cert', 'nova-conductor']:
# FIXME(sirp): Most service configs are defined in nova/service.py, but
# conductor has set a new precedent of storing these configs
# nova/<service>/api.py.
#
# We should update the existing services to use this new approach so we
# don't have to treat conductor differently here.
if binary == 'nova-conductor':
topic = CONF.conductor.topic
manager = CONF.conductor.manager
else:
topic = None
manager = None
try:
launcher.launch_server(service.Service.create(binary=binary))
launcher.launch_server(service.Service.create(binary=binary,
topic=topic,
manager=manager))
except (Exception, SystemExit):
LOG.exception(_('Failed to load %s'), binary)
launcher.wait()