a7e300a357
To ensure better defaults, so Mistral will work more adequately with less configuration. * enable INFO output by default so that console shows workflow executions, etc. Our current INFO level is not too verbose and most adequate as default. * supply working default for sqlite; this way mistral at least starts without supplying config file. Change-Id: If365516c2cf1c67c5c0396539a6c85afc12c2c47
149 lines
5.0 KiB
Python
149 lines
5.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
#
|
|
# Copyright 2013 - Mirantis, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
"""
|
|
Configuration options registration and useful routines.
|
|
"""
|
|
|
|
from oslo.config import cfg
|
|
|
|
from mistral.openstack.common import log
|
|
from mistral import version
|
|
|
|
launch_opt = cfg.ListOpt(
|
|
'server',
|
|
default=['all'],
|
|
help='Specifies which mistral server to start by the launch script. '
|
|
'Valid options are all or any combination of '
|
|
'api, engine, and executor.'
|
|
)
|
|
|
|
api_opts = [
|
|
cfg.StrOpt('host', default='0.0.0.0', help='Mistral API server host'),
|
|
cfg.IntOpt('port', default=8989, help='Mistral API server port')
|
|
]
|
|
|
|
pecan_opts = [
|
|
cfg.StrOpt('root', default='mistral.api.controllers.root.RootController',
|
|
help='Pecan root controller'),
|
|
cfg.ListOpt('modules', default=["mistral.api"],
|
|
help='A list of modules where pecan will search for '
|
|
'applications.'),
|
|
cfg.BoolOpt('debug', default=False,
|
|
help='Enables the ability to display tracebacks in the '
|
|
'browser and interactively debug during '
|
|
'development.'),
|
|
cfg.BoolOpt('auth_enable', default=True,
|
|
help='Enables user authentication in pecan.')
|
|
]
|
|
|
|
use_debugger = cfg.BoolOpt(
|
|
"use-debugger",
|
|
default=False,
|
|
help='Enables debugger. Note that using this option changes how the '
|
|
'eventlet library is used to support async IO. This could result '
|
|
'in failures that do not occur under normal operation. '
|
|
'Use at your own risk.'
|
|
)
|
|
|
|
engine_opts = [
|
|
cfg.StrOpt('engine', default='default',
|
|
help='Mistral engine plugin'),
|
|
cfg.StrOpt('host', default='0.0.0.0',
|
|
help='Name of the engine node. This can be an opaque '
|
|
'identifier. It is not necessarily a hostname, '
|
|
'FQDN, or IP address.'),
|
|
cfg.StrOpt('topic', default='engine',
|
|
help='The message topic that the engine listens on.'),
|
|
cfg.StrOpt('version', default='1.0',
|
|
help='The version of the engine.')
|
|
]
|
|
|
|
executor_opts = [
|
|
cfg.StrOpt('host', default='0.0.0.0',
|
|
help='Name of the executor node. This can be an opaque '
|
|
'identifier. It is not necessarily a hostname, '
|
|
'FQDN, or IP address.'),
|
|
cfg.StrOpt('topic', default='executor',
|
|
help='The message topic that the executor listens on.'),
|
|
cfg.StrOpt('version', default='1.0',
|
|
help='The version of the executor.')
|
|
]
|
|
|
|
wf_trace_log_name_opt = cfg.StrOpt(
|
|
'workflow_trace_log_name',
|
|
default='workflow_trace',
|
|
help='Logger name for pretty '
|
|
'workflow trace output.'
|
|
)
|
|
|
|
CONF = cfg.CONF
|
|
|
|
CONF.register_opts(api_opts, group='api')
|
|
CONF.register_opts(engine_opts, group='engine')
|
|
CONF.register_opts(pecan_opts, group='pecan')
|
|
CONF.register_opts(executor_opts, group='executor')
|
|
CONF.register_opt(wf_trace_log_name_opt)
|
|
|
|
CONF.register_cli_opt(use_debugger)
|
|
CONF.register_cli_opt(launch_opt)
|
|
|
|
CONF.import_opt('verbose', 'mistral.openstack.common.log')
|
|
CONF.set_default('verbose', True)
|
|
CONF.import_opt('debug', 'mistral.openstack.common.log')
|
|
CONF.import_opt('log_dir', 'mistral.openstack.common.log')
|
|
CONF.import_opt('log_file', 'mistral.openstack.common.log')
|
|
CONF.import_opt('log_config_append', 'mistral.openstack.common.log')
|
|
CONF.import_opt('log_format', 'mistral.openstack.common.log')
|
|
CONF.import_opt('log_date_format', 'mistral.openstack.common.log')
|
|
CONF.import_opt('use_syslog', 'mistral.openstack.common.log')
|
|
CONF.import_opt('syslog_log_facility', 'mistral.openstack.common.log')
|
|
|
|
# Extend oslo default_log_levels to include some that are useful for mistral
|
|
# some are in oslo logging already, this is just making sure it stays this
|
|
# way.
|
|
default_log_levels = cfg.CONF.default_log_levels
|
|
|
|
logs_to_quieten = [
|
|
'sqlalchemy=WARN',
|
|
'oslo.messaging=INFO',
|
|
'iso8601=WARN',
|
|
'eventlet.wsgi.server=WARN',
|
|
'stevedore=INFO',
|
|
'mistral.openstack.common.loopingcall=INFO',
|
|
'mistral.openstack.common.periodic_task=INFO',
|
|
'mistral.services.periodic=INFO'
|
|
]
|
|
|
|
for chatty in logs_to_quieten:
|
|
if chatty not in default_log_levels:
|
|
default_log_levels.append(chatty)
|
|
|
|
cfg.set_defaults(
|
|
log.log_opts,
|
|
default_log_levels=default_log_levels
|
|
)
|
|
|
|
|
|
def parse_args(args=None, usage=None, default_config_files=None):
|
|
CONF(
|
|
args=args,
|
|
project='mistral',
|
|
version=version,
|
|
usage=usage,
|
|
default_config_files=default_config_files
|
|
)
|