Currently application that doesn't use the global configuration object
have to rely on hack to setup the global oslo config object for each middleware
it want to use.
For example, gnocchi have its own middleware loader and add crap to load
keystonemiddleware:
https://github.com/openstack/gnocchi/blob/master/gnocchi/rest/app.py#L140
And it can't use oslo.middleware that relies on the global conf object.
Also aodh (use 'paste' for middleware) have to hack the global
configuration object for each middlewares it want to use by code...
https://review.openstack.org/#/c/208632/1/aodh/service.py
But middleware are optional deployer stuffs, we should not write any
code for them...
This change allows application to use paste-deploy (or any middleware
loader) without enforcing the application to use the global oslo.config object.
If the middleware want to use oslo.config it should load the
configuration file himself (and fallback to the global one if any)
The proposed paste configuration to allow this is:
[filter:cors]
paste.filter_factory = oslo.middleware:cors
oslo_config_project = aodh
So the cors middleware can find and load the aodh config and
what is it interested in.
Also, some of them use oslo.config local, some other the global object.
Some can be loaded by an middleware loader like paste, some other not.
This change make consistent the way we bootstrap all middlewares.
Closes-bug: #1482086
Change-Id: Iad197d1f3a386683d818b59718df34e14e15ca5c