nova/nova/conf/database.py

66 lines
2.3 KiB
Python

# Copyright 2015 OpenStack Foundation
# All Rights Reserved.
#
# 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
from oslo_config import cfg
from oslo_db import options as oslo_db_opts
main_db_group = cfg.OptGroup(
name='database',
title='Main Database Options',
help="""
The *Nova Database* is the primary database which is used for information
local to a *cell*.
This group should **not** be configured for the ``nova-compute`` service.
""")
api_db_group = cfg.OptGroup(
name='api_database',
title='API Database Options',
help="""
The *Nova API Database* is a separate database which is used for information
which is used across *cells*. This database is mandatory since the Mitaka
release (13.0.0).
This group should **not** be configured for the ``nova-compute`` service.
""")
# NOTE(stephenfin): We cannot simply use 'oslo_db_options.database_opts'
# directly. If we reuse a db config option for two different groups
# ("api_database" and "database") and deprecate or rename a config option in
# one of these groups, "oslo.config" cannot correctly determine which one to
# update. That's why we copy these.
main_db_opts = copy.deepcopy(oslo_db_opts.database_opts)
api_db_opts = copy.deepcopy(oslo_db_opts.database_opts)
# We don't support the experimental use of database reconnect on connection
# lost, so remove the config option that would suggest we do
main_db_opts = [opt for opt in main_db_opts if opt.name != 'use_db_reconnect']
api_db_opts = [opt for opt in main_db_opts if opt.name != 'use_db_reconnect']
def register_opts(conf):
conf.register_opts(main_db_opts, group=main_db_group)
conf.register_opts(api_db_opts, group=api_db_group)
def list_opts():
return {
main_db_group: main_db_opts,
api_db_group: api_db_opts,
}