Refactor common configuration bits from service commands
The prepare_service call from ironic.common.service is changed to also configure guru meditation and profiler. A new call prepare_command is provided for the cases it's not required. Change-Id: I5b9b7b7bc827c8bcda06e9a967deae8577ad87f4
This commit is contained in:
parent
04c45f88a5
commit
3f990beb97
@ -29,7 +29,7 @@ LOG = log.getLogger(__name__)
|
|||||||
def initialize_wsgi_app(argv=sys.argv):
|
def initialize_wsgi_app(argv=sys.argv):
|
||||||
i18n.install('ironic')
|
i18n.install('ironic')
|
||||||
|
|
||||||
service.prepare_service(argv)
|
service.prepare_command(argv)
|
||||||
|
|
||||||
LOG.debug("Configuration:")
|
LOG.debug("Configuration:")
|
||||||
CONF.log_opt_values(LOG, log.DEBUG)
|
CONF.log_opt_values(LOG, log.DEBUG)
|
||||||
|
@ -21,16 +21,9 @@ import sys
|
|||||||
|
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
try:
|
|
||||||
from oslo_reports import guru_meditation_report as gmr
|
|
||||||
from oslo_reports import opts as gmr_opts
|
|
||||||
except ImportError:
|
|
||||||
gmr = None
|
|
||||||
|
|
||||||
from ironic.common import profiler
|
|
||||||
from ironic.common import service as ironic_service
|
from ironic.common import service as ironic_service
|
||||||
from ironic.common import wsgi_service
|
from ironic.common import wsgi_service
|
||||||
from ironic import version
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
@ -39,16 +32,7 @@ LOG = log.getLogger(__name__)
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
# Parse config file and command line options, then start logging
|
# Parse config file and command line options, then start logging
|
||||||
ironic_service.prepare_service(sys.argv)
|
ironic_service.prepare_service('ironic_api', sys.argv)
|
||||||
|
|
||||||
if gmr is not None:
|
|
||||||
gmr_opts.set_defaults(CONF)
|
|
||||||
gmr.TextGuruMeditation.setup_autorun(version)
|
|
||||||
else:
|
|
||||||
LOG.debug('Guru meditation reporting is disabled '
|
|
||||||
'because oslo.reports is not installed')
|
|
||||||
|
|
||||||
profiler.setup('ironic_api', CONF.host)
|
|
||||||
|
|
||||||
# Build and start the WSGI app
|
# Build and start the WSGI app
|
||||||
launcher = ironic_service.process_launcher()
|
launcher = ironic_service.process_launcher()
|
||||||
|
@ -23,17 +23,10 @@ import sys
|
|||||||
|
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
try:
|
|
||||||
from oslo_reports import guru_meditation_report as gmr
|
|
||||||
from oslo_reports import opts as gmr_opts
|
|
||||||
except ImportError:
|
|
||||||
gmr = None
|
|
||||||
from oslo_service import service
|
from oslo_service import service
|
||||||
|
|
||||||
from ironic.common import profiler
|
|
||||||
from ironic.common import rpc_service
|
from ironic.common import rpc_service
|
||||||
from ironic.common import service as ironic_service
|
from ironic.common import service as ironic_service
|
||||||
from ironic import version
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
@ -64,14 +57,7 @@ def main():
|
|||||||
assert 'ironic.conductor.manager' not in sys.modules
|
assert 'ironic.conductor.manager' not in sys.modules
|
||||||
|
|
||||||
# Parse config file and command line options, then start logging
|
# Parse config file and command line options, then start logging
|
||||||
ironic_service.prepare_service(sys.argv)
|
ironic_service.prepare_service('ironic_conductor', sys.argv)
|
||||||
|
|
||||||
if gmr is not None:
|
|
||||||
gmr_opts.set_defaults(CONF)
|
|
||||||
gmr.TextGuruMeditation.setup_autorun(version, conf=CONF)
|
|
||||||
else:
|
|
||||||
LOG.debug('Guru meditation reporting is disabled '
|
|
||||||
'because oslo.reports is not installed')
|
|
||||||
|
|
||||||
mgr = rpc_service.RPCService(CONF.host,
|
mgr = rpc_service.RPCService(CONF.host,
|
||||||
'ironic.conductor.manager',
|
'ironic.conductor.manager',
|
||||||
@ -79,8 +65,6 @@ def main():
|
|||||||
|
|
||||||
issue_startup_warnings(CONF)
|
issue_startup_warnings(CONF)
|
||||||
|
|
||||||
profiler.setup('ironic_conductor', CONF.host)
|
|
||||||
|
|
||||||
launcher = service.launch(CONF, mgr, restart_method='mutate')
|
launcher = service.launch(CONF, mgr, restart_method='mutate')
|
||||||
launcher.wait()
|
launcher.wait()
|
||||||
|
|
||||||
|
@ -338,5 +338,5 @@ def main():
|
|||||||
if not set(sys.argv) & valid_commands:
|
if not set(sys.argv) & valid_commands:
|
||||||
sys.argv.append('upgrade')
|
sys.argv.append('upgrade')
|
||||||
|
|
||||||
service.prepare_service(sys.argv)
|
service.prepare_command(sys.argv)
|
||||||
CONF.command.func()
|
CONF.command.func()
|
||||||
|
@ -15,15 +15,29 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
|
try:
|
||||||
|
from oslo_reports import guru_meditation_report as gmr
|
||||||
|
from oslo_reports import opts as gmr_opts
|
||||||
|
except ImportError:
|
||||||
|
gmr = None
|
||||||
from oslo_service import service
|
from oslo_service import service
|
||||||
|
|
||||||
from ironic.common import config
|
from ironic.common import config
|
||||||
|
from ironic.common import profiler
|
||||||
from ironic.conf import CONF
|
from ironic.conf import CONF
|
||||||
from ironic.conf import opts
|
from ironic.conf import opts
|
||||||
from ironic import objects
|
from ironic import objects
|
||||||
|
from ironic import version
|
||||||
|
|
||||||
|
|
||||||
def prepare_service(argv=None):
|
LOG = log.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def prepare_command(argv=None):
|
||||||
|
"""Prepare any Ironic command for execution.
|
||||||
|
|
||||||
|
Sets up configuration and logging, registers objects.
|
||||||
|
"""
|
||||||
argv = [] if argv is None else argv
|
argv = [] if argv is None else argv
|
||||||
log.register_options(CONF)
|
log.register_options(CONF)
|
||||||
opts.update_opt_defaults()
|
opts.update_opt_defaults()
|
||||||
@ -35,5 +49,23 @@ def prepare_service(argv=None):
|
|||||||
objects.register_all()
|
objects.register_all()
|
||||||
|
|
||||||
|
|
||||||
|
def prepare_service(name, argv=None, conf=CONF):
|
||||||
|
"""Prepare an Ironic service executable.
|
||||||
|
|
||||||
|
In addition to what `prepare_command` does, set up guru meditation
|
||||||
|
reporting and profiling.
|
||||||
|
"""
|
||||||
|
prepare_command(argv)
|
||||||
|
|
||||||
|
if gmr is not None:
|
||||||
|
gmr_opts.set_defaults(CONF)
|
||||||
|
gmr.TextGuruMeditation.setup_autorun(version, conf=CONF)
|
||||||
|
else:
|
||||||
|
LOG.debug('Guru meditation reporting is disabled '
|
||||||
|
'because oslo.reports is not installed')
|
||||||
|
|
||||||
|
profiler.setup(name, CONF.host)
|
||||||
|
|
||||||
|
|
||||||
def process_launcher():
|
def process_launcher():
|
||||||
return service.ProcessLauncher(CONF, restart_method='mutate')
|
return service.ProcessLauncher(CONF, restart_method='mutate')
|
||||||
|
@ -90,7 +90,7 @@ def _mix_up_nodes_data():
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
service.prepare_service()
|
service.prepare_command()
|
||||||
CONF.set_override('debug', False)
|
CONF.set_override('debug', False)
|
||||||
_create_test_nodes()
|
_create_test_nodes()
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ def _report_conductors():
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
service.prepare_service()
|
service.prepare_command()
|
||||||
CONF.set_override('debug', False)
|
CONF.set_override('debug', False)
|
||||||
_assess_db_performance()
|
_assess_db_performance()
|
||||||
_assess_db_and_object_performance()
|
_assess_db_and_object_performance()
|
||||||
|
Loading…
Reference in New Issue
Block a user