Difference between revisions of "Blueprint-api-feature-discovery"
m (Text replace - "NovaSpec" to "NovaSpec") |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | ||
− | * '''Launchpad Entry''': | + | * '''Launchpad Entry''': NovaSpec:api-feature-discovery |
* '''Created''': | * '''Created''': | ||
* '''Contributors''': | * '''Contributors''': |
Latest revision as of 23:31, 17 February 2013
- Launchpad Entry: NovaSpec:api-feature-discovery
- Created:
- Contributors:
Contents
Summary
Allow third-party or implementation-specific features to be discovered.
Release Note
Added support for discovery of API features. In addition to /versions for API versions, you can now visit /features (authentication required) to see what optional components are enabled, or what third-party features have been installed.
Rationale
Cloud providers will want to differentiate themselves and add new features into their deployments. This provides a way for them to work with standard OpenStack API tools, as well as clients that are aware of the vendor-specific extensions that are installed. Examples could be annotating reservations with deployment information on how to run e.g. Puppet, Chef, or cfengine.
Design
Add an authenticated endpoint (/features) that returns a properly formatted (json, xml, yaml, or other supported encoding) dictionary of
{ plugin0 => [VERSION0, VERSION1, ...], plugin1 => [VERSION0, VERSION1] }
Each optional / additional plugin should be accessed via (/features/plugin-name/version-number[/.*]).
This requires a smart loading mechanism for plugins, as well as a way to modify the router.