diff options
Diffstat (limited to 'ironic')
-rw-r--r-- | ironic/api/wsgi.py | 2 | ||||
-rw-r--r-- | ironic/cmd/api.py | 18 | ||||
-rw-r--r-- | ironic/cmd/conductor.py | 18 | ||||
-rw-r--r-- | ironic/cmd/dbsync.py | 2 | ||||
-rw-r--r-- | ironic/common/service.py | 34 |
5 files changed, 37 insertions, 37 deletions
diff --git a/ironic/api/wsgi.py b/ironic/api/wsgi.py index c46473139..467389701 100644 --- a/ironic/api/wsgi.py +++ b/ironic/api/wsgi.py @@ -29,7 +29,7 @@ LOG = log.getLogger(__name__) def initialize_wsgi_app(argv=sys.argv): i18n.install('ironic') - service.prepare_service(argv) + service.prepare_command(argv) LOG.debug("Configuration:") CONF.log_opt_values(LOG, log.DEBUG) diff --git a/ironic/cmd/api.py b/ironic/cmd/api.py index 38ec7bd1f..4a4b381c8 100644 --- a/ironic/cmd/api.py +++ b/ironic/cmd/api.py @@ -21,16 +21,9 @@ import sys from oslo_config import cfg 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 wsgi_service -from ironic import version CONF = cfg.CONF @@ -39,16 +32,7 @@ LOG = log.getLogger(__name__) def main(): # Parse config file and command line options, then start logging - ironic_service.prepare_service(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) + ironic_service.prepare_service('ironic_api', sys.argv) # Build and start the WSGI app launcher = ironic_service.process_launcher() diff --git a/ironic/cmd/conductor.py b/ironic/cmd/conductor.py index d2ee20f5f..19fb05cb4 100644 --- a/ironic/cmd/conductor.py +++ b/ironic/cmd/conductor.py @@ -23,17 +23,10 @@ import sys from oslo_config import cfg 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 ironic.common import profiler from ironic.common import rpc_service from ironic.common import service as ironic_service -from ironic import version CONF = cfg.CONF @@ -64,14 +57,7 @@ def main(): assert 'ironic.conductor.manager' not in sys.modules # Parse config file and command line options, then start logging - ironic_service.prepare_service(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') + ironic_service.prepare_service('ironic_conductor', sys.argv) mgr = rpc_service.RPCService(CONF.host, 'ironic.conductor.manager', @@ -79,8 +65,6 @@ def main(): issue_startup_warnings(CONF) - profiler.setup('ironic_conductor', CONF.host) - launcher = service.launch(CONF, mgr, restart_method='mutate') launcher.wait() diff --git a/ironic/cmd/dbsync.py b/ironic/cmd/dbsync.py index 484e8096c..9cdfa2f4f 100644 --- a/ironic/cmd/dbsync.py +++ b/ironic/cmd/dbsync.py @@ -338,5 +338,5 @@ def main(): if not set(sys.argv) & valid_commands: sys.argv.append('upgrade') - service.prepare_service(sys.argv) + service.prepare_command(sys.argv) CONF.command.func() diff --git a/ironic/common/service.py b/ironic/common/service.py index e0a8f1852..db83c147a 100644 --- a/ironic/common/service.py +++ b/ironic/common/service.py @@ -15,15 +15,29 @@ # under the License. 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 ironic.common import config +from ironic.common import profiler from ironic.conf import CONF from ironic.conf import opts 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 log.register_options(CONF) opts.update_opt_defaults() @@ -35,5 +49,23 @@ def prepare_service(argv=None): 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(): return service.ProcessLauncher(CONF, restart_method='mutate') |