Bug 1042390

Summary: [RFE][neutron]: Provide WADL files for the Quantum API
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/neutron/+spec/quantum-api-wadl
Whiteboard: upstream_milestone_none upstream_status_needs-code-review upstream_definition_obsolete
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 16:54:31 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 22:07:04 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/neutron/+spec/quantum-api-wadl.

Description:

As a part of the documentation effort, we will also provide a WADL file for the Quantum API.
The WADL file will allow users of the Quantum API to automatically generate stubs for using the API itself.

== TODO list summary ==

1. Need XSD to represent plural attr_types and None's
   There are expression limits in the WADL syntax that it is essential to use XSD to describe Nil, list, string_or_none, etc. data structures. There is a blueprint quantum-api-xsd filed for future work. Once the XSD files are generated, WADL files will import the XSD files and utilize them. 

2. Remove hard coding in DELETE return codes and apply multiple return codes for GET, POST, and PUT
   Quantum is fortunate enough to have RESOURCE_ATTR_MAPS which is helps writing scripts that generate WADL files. However currently it is cumbersome to know every positive and negative return codes and results for all HTTP method calls. We should devise a way to put all return cases in a RESOURCE_ATTR_MAPS style dict to automatically generate all response cases in WADL files.

3. Process extended resources
    Each API extension has a method called get_extended_resources() which alone is not a classmethod. The extended resources are not shown in the currently version of WADL files and should be used in the next steps.

4. Make use of extension namespace
    Current WADL files only uses the "http://openstack.org/quantum/api/v2.0" uri as "quantum" namespace. However each extension has a namespace which could be retrieved by get_namespace(). We should decide whether or not to use these namespaces and how to apply then if we choose to use.

Specification URL (additional information):

None