diff --git a/ceilometer/conf/__init__.py b/ceilometer/conf/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ceilometer/conf/defaults.py b/ceilometer/conf/defaults.py new file mode 100644 index 0000000000..d6b0ff5c81 --- /dev/null +++ b/ceilometer/conf/defaults.py @@ -0,0 +1,40 @@ +# Copyright 2016 Hewlett Packard Enterprise Development Company, L.P. +# +# 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 oslo_config import cfg +from oslo_middleware import cors + + +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'], + allow_methods=['GET', + 'PUT', + 'POST', + 'DELETE', + 'PATCH'] + ) diff --git a/ceilometer/service.py b/ceilometer/service.py index b7c9495c09..c41a2c3a6b 100644 --- a/ceilometer/service.py +++ b/ceilometer/service.py @@ -20,6 +20,7 @@ import oslo_i18n from oslo_log import log from oslo_reports import guru_meditation_report as gmr +from ceilometer.conf import defaults from ceilometer import keystone_client from ceilometer import messaging from ceilometer import version @@ -73,6 +74,7 @@ def prepare_service(argv=None, config_files=None): ['stevedore=INFO', 'keystoneclient=INFO', 'neutronclient=INFO']) log.set_defaults(default_log_levels=log_levels) + defaults.set_cors_middleware_defaults() if argv is None: argv = sys.argv diff --git a/ceilometer/tests/functional/gabbi/gabbi_paste.ini b/ceilometer/tests/functional/gabbi/gabbi_paste.ini index 2efbf9ef25..7075840dfd 100644 --- a/ceilometer/tests/functional/gabbi/gabbi_paste.ini +++ b/ceilometer/tests/functional/gabbi/gabbi_paste.ini @@ -22,6 +22,3 @@ paste.filter_factory = oslo_middleware:RequestId.factory [filter:cors] paste.filter_factory = oslo_middleware.cors:filter_factory oslo_config_project = ceilometer -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 diff --git a/etc/ceilometer/api_paste.ini b/etc/ceilometer/api_paste.ini index cfb0c38adc..fcc9a2aaf3 100644 --- a/etc/ceilometer/api_paste.ini +++ b/etc/ceilometer/api_paste.ini @@ -19,6 +19,3 @@ paste.filter_factory = oslo_middleware:RequestId.factory [filter:cors] paste.filter_factory = oslo_middleware.cors:filter_factory oslo_config_project = ceilometer -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 \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 2ef3f71783..fcec6b2d4c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -268,6 +268,9 @@ network.statistics.drivers = oslo.config.opts = ceilometer = ceilometer.opts:list_opts +oslo.config.opts.defaults = + oslo.middleware.cors = ceilometer.conf.defaults:set_cors_middleware_defaults + keystoneauth1.plugin = password-ceilometer-legacy = ceilometer.keystone_client:LegacyCeilometerKeystoneLoader