placement/placement/conf/__init__.py
Chris Dent fc35e3112e Modernize CORS config and setup
In the early days of placement, the CORS middleware's config
options were registered out of band with other options, probably
due to efforts to use non-global config and avoid conflicts with
nova's use of the same settings. Now that placement always uses
non-global config, we can change setup back to something more
normal.

At the same time a gap in header-visibility defaults is corrected.

The updated test confirms header visibility. When the 'allow_headers'
configuration setting in fixtures/gabbits.py is removed, it fails.

Change-Id: I8481b3016de19e1617810cb3d3efa092560dfbb7
2019-05-29 10:31:14 +01:00

40 lines
1.5 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.
from __future__ import absolute_import
from oslo_log import log as logging
from oslo_middleware import cors
from placement.conf import api
from placement.conf import base
from placement.conf import database
from placement.conf import paths
from placement.conf import placement
# To avoid global config, we require an existing ConfigOpts to be passed
# to register_opts. Then the caller can have some assurance that the
# config they are using will maintain some independence.
def register_opts(conf):
api.register_opts(conf)
base.register_opts(conf)
database.register_opts(conf)
paths.register_opts(conf)
placement.register_opts(conf)
logging.register_options(conf)
# The CORS middleware does not present a register_opts method, instead
# it shares a list of available opts.
conf.register_opts(cors.CORS_OPTS, 'cors')