Jump to: navigation, search


< Neutron
Revision as of 05:11, 12 December 2012 by Zyluo (talk | contribs)

Quantum API WADL Specification

blueprint link



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 in quantum/tools/wadl/generate_wadl.py

  • Traverse modules in quantum.api and quantum.extension and finds RESOURCE_ATTRIBUTE_MAP definitions in each module.
  • 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


Configuration variables




Plugin Interface


Required Plugin support




CLI Requirements


Horizon Requirements


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.