Comment 2 for bug 815208

Revision history for this message
Eoghan Glynn (eglynn) wrote :

Here's a proposal for addressing this issue and also making it less likely that users will ever need to edit paste deploy config directly:

1. Strip out the paste deploy config from the main etc/glance-*.conf file into corresponding /usr/share/glance-*-paste.conf files

2. For each major middleware deployment option (minimal, with keystone, with caching, with keystone and caching etc.) define a seperate pipeline section, e.g.:

# minimal pipeline
[pipeline:glance-api-generic]
pipeline = versionnegotiation context apiv1app

# pipeline with keystone enabled
[pipeline:glance-api-keystone]
pipeline = versionnegotiation authtoken auth-context apiv1app

# pipeline with caching enabled
[pipeline:glance-api-caching]
pipeline = versionnegotiation context cache apiv1app

# ... etc.

3. Add a new config option, allowing the active pipeline to be selected in the primary config, e.g:

# etc/glance-api.conf
deployment_flavor = keystone

The idea being that most users need not be concerned that keystone support is in fact realized by traversing two separate filters, authtoken and auth-context. The default would be the most minimal/generic pipeline.

4. Before calling into wsgi.paste_deploy_app(), concatenate "-%(deployment_flavor)s" to the app_name so that correct pipeline is selected.

Thoughts?

If there are no objections to the above, I'll go ahead and put together a patch implementing the change.