Moved CORS middleware configuration into oslo-config-generator
The default values needed for neutron's implementation of cors middleware have been moved from paste.ini into the configuration hooks provided by oslo.config. Furthermore, these values have been added to neutron's default configuration parsing. This ensures that if a value remains unset in neutron.conf, it will be set to use sane defaults, and that an operator modifying the configuration file will be presented with a default set of necessary sane headers. Change-Id: I327d1d7ce50dd4a20d781e6251a5af81c57e6ca1 Closes-Bug: 1551836
This commit is contained in:
parent
b380b15d4c
commit
aae181817e
@ -17,9 +17,6 @@ paste.filter_factory = oslo_middleware:CatchErrors.factory
|
|||||||
[filter:cors]
|
[filter:cors]
|
||||||
paste.filter_factory = oslo_middleware.cors:filter_factory
|
paste.filter_factory = oslo_middleware.cors:filter_factory
|
||||||
oslo_config_project = neutron
|
oslo_config_project = neutron
|
||||||
latent_allow_headers = X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id, X-OpenStack-Request-ID
|
|
||||||
latent_expose_headers = X-Auth-Token, X-Subject-Token, X-Service-Token, X-OpenStack-Request-ID
|
|
||||||
latent_allow_methods = GET, PUT, POST, DELETE, PATCH
|
|
||||||
|
|
||||||
[filter:keystonecontext]
|
[filter:keystonecontext]
|
||||||
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
|
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
|
||||||
|
@ -24,6 +24,7 @@ from oslo_config import cfg
|
|||||||
from oslo_db import options as db_options
|
from oslo_db import options as db_options
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
import oslo_messaging
|
import oslo_messaging
|
||||||
|
from oslo_middleware import cors
|
||||||
from oslo_service import wsgi
|
from oslo_service import wsgi
|
||||||
|
|
||||||
from neutron._i18n import _, _LI
|
from neutron._i18n import _, _LI
|
||||||
@ -260,6 +261,7 @@ def reset_service():
|
|||||||
# Note that this is called only in case a service is running in
|
# Note that this is called only in case a service is running in
|
||||||
# daemon mode.
|
# daemon mode.
|
||||||
setup_logging()
|
setup_logging()
|
||||||
|
set_config_defaults()
|
||||||
policy.refresh()
|
policy.refresh()
|
||||||
|
|
||||||
|
|
||||||
@ -271,3 +273,33 @@ def load_paste_app(app_name):
|
|||||||
loader = wsgi.Loader(cfg.CONF)
|
loader = wsgi.Loader(cfg.CONF)
|
||||||
app = loader.load_app(app_name)
|
app = loader.load_app(app_name)
|
||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
|
def set_config_defaults():
|
||||||
|
"""This method updates all configuration default values."""
|
||||||
|
set_cors_middleware_defaults()
|
||||||
|
|
||||||
|
|
||||||
|
def set_cors_middleware_defaults():
|
||||||
|
"""Update default configuration options for oslo.middleware."""
|
||||||
|
# CORS Defaults
|
||||||
|
# TODO(krotscheck): Update with https://review.openstack.org/#/c/285368/
|
||||||
|
cfg.set_defaults(cors.CORS_OPTS,
|
||||||
|
allow_headers=['X-Auth-Token',
|
||||||
|
'X-Identity-Status',
|
||||||
|
'X-Roles',
|
||||||
|
'X-Service-Catalog',
|
||||||
|
'X-User-Id',
|
||||||
|
'X-Tenant-Id',
|
||||||
|
'X-OpenStack-Request-ID'],
|
||||||
|
expose_headers=['X-Auth-Token',
|
||||||
|
'X-Subject-Token',
|
||||||
|
'X-Service-Token',
|
||||||
|
'X-OpenStack-Request-ID',
|
||||||
|
'OpenStack-Volume-microversion'],
|
||||||
|
allow_methods=['GET',
|
||||||
|
'PUT',
|
||||||
|
'POST',
|
||||||
|
'DELETE',
|
||||||
|
'PATCH']
|
||||||
|
)
|
||||||
|
@ -28,6 +28,7 @@ def boot_server(server_func):
|
|||||||
# the configuration will be read into the cfg.CONF global data structure
|
# the configuration will be read into the cfg.CONF global data structure
|
||||||
config.init(sys.argv[1:])
|
config.init(sys.argv[1:])
|
||||||
config.setup_logging()
|
config.setup_logging()
|
||||||
|
config.set_config_defaults()
|
||||||
if not cfg.CONF.config_file:
|
if not cfg.CONF.config_file:
|
||||||
sys.exit(_("ERROR: Unable to find configuration file via the default"
|
sys.exit(_("ERROR: Unable to find configuration file via the default"
|
||||||
" search paths (~/.neutron/, ~/, /etc/neutron/, /etc/) and"
|
" search paths (~/.neutron/, ~/, /etc/neutron/, /etc/) and"
|
||||||
|
@ -147,6 +147,8 @@ oslo.config.opts =
|
|||||||
neutron.ml2.sriov.agent = neutron.opts:list_sriov_agent_opts
|
neutron.ml2.sriov.agent = neutron.opts:list_sriov_agent_opts
|
||||||
neutron.qos = neutron.opts:list_qos_opts
|
neutron.qos = neutron.opts:list_qos_opts
|
||||||
nova.auth = neutron.opts:list_auth_opts
|
nova.auth = neutron.opts:list_auth_opts
|
||||||
|
oslo.config.opts.defaults =
|
||||||
|
oslo.middleware.cors = neutron.common.config:set_cors_middleware_defaults
|
||||||
neutron.db.alembic_migrations =
|
neutron.db.alembic_migrations =
|
||||||
neutron = neutron.db.migration:alembic_migrations
|
neutron = neutron.db.migration:alembic_migrations
|
||||||
neutron.interface_drivers =
|
neutron.interface_drivers =
|
||||||
|
Loading…
Reference in New Issue
Block a user