Difference between revisions of "Neutron/API/WADL"
< Neutron
(→Resources) |
|||
Line 6: | Line 6: | ||
* http://www.w3.org/Submission/wadl/ | * http://www.w3.org/Submission/wadl/ | ||
* http://code.w3.org/unicorn/attachment/wiki/how_to_write_new_contract/css-validator.wadl | * http://code.w3.org/unicorn/attachment/wiki/how_to_write_new_contract/css-validator.wadl | ||
− | |||
== Scope == | == Scope == | ||
Line 36: | Line 35: | ||
Write a python script ''quantum/tools/wadl/generate_wadl.py'' | Write a python script ''quantum/tools/wadl/generate_wadl.py'' | ||
− | * Traverse modules in quantum.api and quantum.extension and | + | * Traverse modules in quantum.api and quantum.extension and find all subclasses of quantum.extension.[[ExtensionDescriptor]] in each module. |
+ | * Use the methods of the class to get informatio | ||
+ | * List of public methods | ||
+ | ** def get_name(self): | ||
+ | ** def get_alias(self): | ||
+ | ** def get_description(self): | ||
+ | ** def get_namespace(self): | ||
+ | ** def get_updated(self): | ||
+ | ** def get_resources(self): | ||
+ | ** def get_actions(self): | ||
+ | ** def get_request_extensions(self): | ||
+ | ** def get_extended_resources(self, version): | ||
+ | ** def get_plugin_interface(self) | ||
* Automatically generate WADL documents (core.wadl, [extention].wadl, etc.) files in ''quantum/doc/wadl/'' | * Automatically generate WADL documents (core.wadl, [extention].wadl, etc.) files in ''quantum/doc/wadl/'' | ||
** All '''param''' components will be populated according to the RESOURCE_ATTRIBUTE_MAP dictionary | ** All '''param''' components will be populated according to the RESOURCE_ATTRIBUTE_MAP dictionary |
Revision as of 09:55, 14 January 2013
Quantum API WADL Specification
Resources
- http://www.w3.org/Submission/wadl/
- http://code.w3.org/unicorn/attachment/wiki/how_to_write_new_contract/css-validator.wadl
Scope
Provide WADL documents for the Quantum APIs.
WADL document scope
- Core APIs will have a WADL document
- All extension APIs will have its own WADL document
- Each WADL document will have one application component
- An application component will have one resources component
- A resources component will have resource components for each resource entity
- eg) network, subnet, port, etc.
- Each resource component will have method components for GET, POST, PUT, and DELETE.
- Each method component will have a request component and WILL NOT HAVE a response component
- A request component will have param components based on the API spec
Use Cases
These are some of the use cases borrowed from the W3 WADL specification.
- Application Modelling and Visualization
- Support for development of resource modelling tools for resource relationship and choreography analysis and manipulation.
- Code Generation
- Automated generation of stub and skeleton code and code for manipulation of resource representations.
- Configuration
- Configuration of client and server using a portable format.
Implementation Overview
Write a python script quantum/tools/wadl/generate_wadl.py
- Traverse modules in quantum.api and quantum.extension and find all subclasses of quantum.extension.ExtensionDescriptor in each module.
- Use the methods of the class to get informatio
- List of public methods
- def get_name(self):
- def get_alias(self):
- def get_description(self):
- def get_namespace(self):
- def get_updated(self):
- def get_resources(self):
- def get_actions(self):
- def get_request_extensions(self):
- def get_extended_resources(self, version):
- def get_plugin_interface(self)
- Automatically generate WADL documents (core.wadl, [extention].wadl, etc.) files in quantum/doc/wadl/
- All param components will be populated according to the RESOURCE_ATTRIBUTE_MAP dictionary
Data Model Changes
N/A
Configuration variables
N/A
API's
N/A
Plugin Interface
N/A
Required Plugin support
N/A
Dependencies
None
CLI Requirements
N/A
Horizon Requirements
N/A
Usage Example
After changing an API or API Extension specification in the source code, the developer will run python quantum/tools/wadl/generate_wadl.py to update the WADL documents in quantum/doc/wadl/
Test Cases
No plans of test cases. However need to check if RESOURCE_ATTRIBUTE_MAP is used consistently across extentions beforehand.