diff --git a/etc/magnum/api-paste.ini b/etc/magnum/api-paste.ini index fe36640cde..067dfa4bc8 100644 --- a/etc/magnum/api-paste.ini +++ b/etc/magnum/api-paste.ini @@ -14,6 +14,3 @@ paste.filter_factory = oslo_middleware:RequestId.factory [filter:cors] paste.filter_factory = oslo_middleware.cors:filter_factory oslo_config_project = magnum -latent_allow_methods = GET, PUT, POST, DELETE, PATCH -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 diff --git a/magnum/api/app.py b/magnum/api/app.py index b7e5596fb4..a54537a42a 100644 --- a/magnum/api/app.py +++ b/magnum/api/app.py @@ -18,6 +18,7 @@ import pecan from magnum.api import config as api_config from magnum.api import middleware +from magnum.common import config as common_config from magnum.i18n import _ # Register options for the service @@ -58,6 +59,7 @@ def setup_app(config=None): config = get_pecan_config() app_conf = dict(config.app) + common_config.set_config_defaults() app = pecan.make_app( app_conf.pop('root'), diff --git a/magnum/common/config.py b/magnum/common/config.py index cd0ca61a05..3bff789541 100644 --- a/magnum/common/config.py +++ b/magnum/common/config.py @@ -16,6 +16,7 @@ # under the License. from oslo_config import cfg +from oslo_middleware import cors from magnum.common import rpc from magnum import version @@ -28,3 +29,34 @@ def parse_args(argv, default_config_files=None): version=version.version_info.release_string(), default_config_files=default_config_files) rpc.init(cfg.CONF) + + +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', + 'X-Server-Management-Url'], + expose_headers=['X-Auth-Token', + 'X-Subject-Token', + 'X-Service-Token', + 'X-OpenStack-Request-ID', + 'X-Server-Management-Url'], + allow_methods=['GET', + 'PUT', + 'POST', + 'DELETE', + 'PATCH'] + ) diff --git a/magnum/common/service.py b/magnum/common/service.py index d60479ea23..4b168fb6d3 100644 --- a/magnum/common/service.py +++ b/magnum/common/service.py @@ -39,4 +39,6 @@ def prepare_service(argv=None): argv = [] logging.register_options(cfg.CONF) config.parse_args(argv) + config.set_config_defaults() + logging.setup(cfg.CONF, 'magnum') diff --git a/setup.cfg b/setup.cfg index 594e1f9871..7e21dc7a6f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -52,6 +52,9 @@ console_scripts = oslo.config.opts = magnum = magnum.opts:list_opts +oslo.config.opts.defaults = + oslo.middleware.cors = magnum.common.config:set_cors_middleware_defaults + magnum.template_definitions = magnum_vm_atomic_k8s = magnum.conductor.template_definition:AtomicK8sTemplateDefinition magnum_vm_coreos_k8s = magnum.conductor.template_definition:CoreOSK8sTemplateDefinition