summaryrefslogtreecommitdiff
path: root/ironic
diff options
context:
space:
mode:
Diffstat (limited to 'ironic')
-rw-r--r--ironic/api/wsgi.py2
-rw-r--r--ironic/cmd/api.py18
-rw-r--r--ironic/cmd/conductor.py18
-rw-r--r--ironic/cmd/dbsync.py2
-rw-r--r--ironic/common/service.py34
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')