Generate the karbor.conf.sample with oslo-config-generator
It's hard to maintain karbor.conf by hand, let's switch to use oslo-config-generator and follow OpenStack convention. Change-Id: I0dd0a63267e14321ff723d32bd6d90db07cc5f95
This commit is contained in:
parent
ccb4985aec
commit
dba51806f2
1
.gitignore
vendored
1
.gitignore
vendored
@ -51,3 +51,4 @@ ChangeLog
|
||||
.*sw?
|
||||
|
||||
releasenotes/build
|
||||
etc/karbor.conf.sample
|
||||
|
@ -114,6 +114,11 @@ function configure_karbor_api {
|
||||
if is_service_enabled karbor-api ; then
|
||||
echo "Configuring Karbor API"
|
||||
|
||||
# generate configuration file
|
||||
cd $KARBOR_DIR
|
||||
tox -e genconfig
|
||||
cp etc/karbor.conf.sample etc/karbor.conf
|
||||
|
||||
cp $KARBOR_DIR/etc/karbor.conf $KARBOR_API_CONF
|
||||
cp $KARBOR_DIR/etc/api-paste.ini $KARBOR_CONF_DIR
|
||||
cp $KARBOR_DIR/etc/policy.json $KARBOR_CONF_DIR
|
||||
|
@ -1,31 +0,0 @@
|
||||
[keystone_authtoken]
|
||||
#signing_dir = /var/cache/karbor
|
||||
#cafile = /opt/stack/data/ca-bundle.pem
|
||||
#auth_uri = http://192.168.1.102:5000
|
||||
#project_domain_id = default
|
||||
#project_name = service
|
||||
#user_domain_id = default
|
||||
#password = nomoresecrete
|
||||
#username = karbor
|
||||
#auth_url = http://192.168.1.102:35357
|
||||
#auth_plugin = password
|
||||
|
||||
[DEFAULT]
|
||||
#api_paste_config = /etc/karbor/api-paste.ini
|
||||
#logging_context_format_string = %(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [%(request_id)s %(user_id)s %(project_id)s%(color)s] %(instance)s%(color)s%(message)s
|
||||
#logging_debug_format_suffix = from (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d
|
||||
#logging_default_format_string = %(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [-%(color)s] %(instance)s%(color)s%(message)s
|
||||
#logging_exception_prefix = %(color)s%(asctime)s.%(msecs)03d TRACE %(name)s %(instance)s
|
||||
#verbose = True
|
||||
#debug = True
|
||||
#auth_strategy = noauth
|
||||
#log_dir = /var/log/
|
||||
#rpc_backend = rabbit
|
||||
|
||||
#[database]
|
||||
#connection = mysql+pymysql://root:stackdb@127.0.0.1/karbor?charset=utf8
|
||||
|
||||
#[oslo_messaging_rabbit]
|
||||
#rabbit_userid = stackrabbit
|
||||
#rabbit_password = stackqueue
|
||||
#rabbit_hosts = 10.229.50.225
|
9
etc/oslo-config-generator/karbor.conf
Normal file
9
etc/oslo-config-generator/karbor.conf
Normal file
@ -0,0 +1,9 @@
|
||||
[DEFAULT]
|
||||
output_file = etc/karbor.conf.sample
|
||||
namespace = karbor.common.opts
|
||||
namespace = keystonemiddleware.auth_token
|
||||
namespace = oslo.messaging
|
||||
namespace = oslo.concurrency
|
||||
namespace = oslo.db
|
||||
namespace = oslo.log
|
||||
namespace = oslo.policy
|
101
karbor/common/opts.py
Normal file
101
karbor/common/opts.py
Normal file
@ -0,0 +1,101 @@
|
||||
# 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.
|
||||
|
||||
import copy
|
||||
import itertools
|
||||
|
||||
import karbor.api.common
|
||||
import karbor.api.v1.protectables
|
||||
import karbor.api.v1.providers
|
||||
import karbor.common.config
|
||||
import karbor.db.api
|
||||
import karbor.exception
|
||||
import karbor.service
|
||||
import karbor.services.operationengine.engine.executors.green_thread_executor as green_thread_executor # noqa
|
||||
import karbor.services.operationengine.engine.executors.thread_pool_executor as thread_pool_executor # noqa
|
||||
import karbor.services.operationengine.engine.triggers.timetrigger.time_trigger as time_trigger # noqa
|
||||
import karbor.services.operationengine.karbor_client
|
||||
import karbor.services.operationengine.manager
|
||||
import karbor.services.operationengine.operations.base as base
|
||||
import karbor.services.protection.clients.cinder
|
||||
import karbor.services.protection.clients.glance
|
||||
import karbor.services.protection.clients.heat
|
||||
import karbor.services.protection.clients.manila
|
||||
import karbor.services.protection.clients.neutron
|
||||
import karbor.services.protection.clients.nova
|
||||
import karbor.services.protection.flows.restore
|
||||
import karbor.services.protection.flows.worker
|
||||
import karbor.services.protection.manager
|
||||
import karbor.services.protection.protection_plugins.image.image_protection_plugin as image_protection_plugin # noqa
|
||||
import karbor.services.protection.protection_plugins.share.share_snapshot_plugin as share_snapshot_plugin # noqa
|
||||
import karbor.services.protection.protection_plugins.volume.cinder_protection_plugin as cinder_protection_plugin # noqa
|
||||
import karbor.services.protection.protection_plugins.volume.volume_snapshot_plugin as volume_snapshot_plugin # noqa
|
||||
import karbor.wsgi.eventlet_server
|
||||
|
||||
__all__ = ['list_opts']
|
||||
|
||||
_opts = [
|
||||
('clients_keystone', list(itertools.chain(
|
||||
karbor.common.config.keystone_client_opts))),
|
||||
('operationengine', list(itertools.chain(
|
||||
green_thread_executor.green_thread_executor_opts,
|
||||
karbor.services.operationengine.manager.trigger_manager_opts))),
|
||||
('karbor_client', list(itertools.chain(
|
||||
karbor.common.config.service_client_opts))),
|
||||
('cinder_client', list(itertools.chain(
|
||||
karbor.common.config.service_client_opts,
|
||||
karbor.services.protection.clients.cinder.cinder_client_opts))),
|
||||
('glance_client', list(itertools.chain(
|
||||
karbor.common.config.service_client_opts,
|
||||
karbor.services.protection.clients.glance.glance_client_opts))),
|
||||
('heat_client', list(itertools.chain(
|
||||
karbor.common.config.service_client_opts,
|
||||
karbor.services.protection.clients.heat.heat_client_opts))),
|
||||
('manila_client', list(itertools.chain(
|
||||
karbor.common.config.service_client_opts,
|
||||
karbor.services.protection.clients.manila.manila_client_opts))),
|
||||
('neutron_client', list(itertools.chain(
|
||||
karbor.common.config.service_client_opts,
|
||||
karbor.services.protection.clients.neutron.neutron_client_opts))),
|
||||
('nova_client', list(itertools.chain(
|
||||
karbor.common.config.service_client_opts,
|
||||
karbor.services.protection.clients.nova.nova_client_opts))),
|
||||
('image_backup_plugin', list(itertools.chain(
|
||||
image_protection_plugin.image_backup_opts))),
|
||||
('cinder_backup_protection_plugin', list(itertools.chain(
|
||||
cinder_protection_plugin.cinder_backup_opts))),
|
||||
('volume_snapshot_plugin', list(itertools.chain(
|
||||
volume_snapshot_plugin.volume_snapshot_opts))),
|
||||
('manila_snapshot_plugin', list(itertools.chain(
|
||||
share_snapshot_plugin.manila_snapshot_opts))),
|
||||
(None, list(itertools.chain(
|
||||
karbor.common.config.core_opts,
|
||||
karbor.common.config.debug_opts,
|
||||
karbor.common.config.global_opts,
|
||||
karbor.api.common.api_common_opts,
|
||||
karbor.api.v1.protectables.query_instance_filters_opts,
|
||||
karbor.api.v1.providers.query_provider_filters_opts,
|
||||
karbor.api.v1.providers.query_checkpoint_filters_opts,
|
||||
karbor.db.api.db_opts,
|
||||
thread_pool_executor.executor_opts,
|
||||
time_trigger.time_trigger_opts,
|
||||
base.record_operation_log_executor_opts,
|
||||
karbor.services.protection.flows.restore.sync_status_opts,
|
||||
karbor.services.protection.flows.worker.workflow_opts,
|
||||
karbor.services.protection.manager.protection_manager_opts,
|
||||
karbor.wsgi.eventlet_server.socket_opts,
|
||||
karbor.exception.exc_log_opts,
|
||||
karbor.service.service_opts)))]
|
||||
|
||||
|
||||
def list_opts():
|
||||
return [(g, copy.deepcopy(o)) for g, o in _opts]
|
@ -0,0 +1,4 @@
|
||||
---
|
||||
other:
|
||||
- oslo-config-generator is now used to generate a
|
||||
karbor.conf.sample file
|
@ -35,6 +35,8 @@ console_scripts =
|
||||
karbor-manage = karbor.cmd.manage:main
|
||||
karbor-operationengine = karbor.cmd.operationengine:main
|
||||
karbor-protection = karbor.cmd.protection:main
|
||||
oslo.config.opts =
|
||||
karbor.common.opts = karbor.common.opts:list_opts
|
||||
wsgi_scripts =
|
||||
karbor-wsgi = karbor.wsgi.wsgi:initialize_application
|
||||
karbor.database.migration_backend =
|
||||
|
7
tox.ini
7
tox.ini
@ -19,7 +19,9 @@ commands = python setup.py test --slowest --testr-args='{posargs}'
|
||||
basepython = python2.7
|
||||
setenv = OS_TEST_PATH=./karbor/tests/fullstack
|
||||
OS_TEST_TIMEOUT=3600
|
||||
commands = python setup.py test --slowest --testr-args="--concurrency=2 {posargs}"
|
||||
commands =
|
||||
oslo-config-generator --config-file etc/oslo-config-generator/karbor.conf --output-file etc/karbor.conf
|
||||
python setup.py test --slowest --testr-args="--concurrency=2 {posargs}"
|
||||
|
||||
[testenv:pep8]
|
||||
commands = flake8
|
||||
@ -53,6 +55,9 @@ commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenote
|
||||
[testenv:install-guide]
|
||||
commands = sphinx-build -a -E -W -d install-guide/build/doctrees -b html install-guide/source install-guide/build/html
|
||||
|
||||
[testenv:genconfig]
|
||||
commands = oslo-config-generator --config-file etc/oslo-config-generator/karbor.conf
|
||||
|
||||
[flake8]
|
||||
show-source = True
|
||||
ignore =
|
||||
|
Loading…
x
Reference in New Issue
Block a user