Add rearrange-nova-response-schemas spec

This patch adds rearrange-nova-response-schemas spec

Partially implements blueprint rearrange-nova-response-schemas

Change-Id: Ib6140495c5912c222556a97fcc31f485c9133950
This commit is contained in:
ghanshyam 2015-03-02 14:47:30 +09:00
parent 922ff9adeb
commit 117070bbaa
1 changed files with 93 additions and 0 deletions

View File

@ -0,0 +1,93 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
===============================
Rearrange Nova Response Schemas
===============================
https://blueprints.launchpad.net/tempest/+spec/rearrange-nova-response-schemas
Rearrange Nova Response Schemas
Problem description
===================
Compute response schemas were implemented for v2 and v3 APIs.
At that time common parts were defined in common schemas and
version specific into respective directories (v2 & v3).
Now v3 API is not valid for Nova and v2 and v2.1 API`s response are same.
After removing v3 schemas (https://review.openstack.org/#/c/141274/)
we have only 1 set of schemas for v2 (/v2.1) APIs but those end up in
scattered structure.
It is difficult to read and understand API' complete schema as they are defined
in multiple files.
Proposed change
===============
Rearrange current schemas into better file/directory structure and if needed
then, defined schemas name more clearly as per API methods.
As Nova v2.1 APIs are current API (https://review.openstack.org/#/c/149948/),
we should move all current schema files to directory name v2.1. As nova is going
to release microversion also, schema files for microversion needs to go in their
respective new directories.
Below are the re arrangement details-
* Directory structure-
api_schema/response/compute/v2.1/ -> will contain all the schema files for v2.1.
api_schema/response/compute/v2.2/ -> will contain all the schema files for v2.2.
and so on
* Each resource schema will be defined in single files under v2.1 directory
For example -hypervisors.py will have all schema of hypervisor resource API.
* Each schema name should be clear enough to easily understand the API for
which they are defined. For example -
* list_hypervisors - list hypervisors API schema
* list_hypervisors_detail - detail list of hypervisors
* create_get_update_<resource name> - If schema is same for create, get
& update API of any resource.
Note- Most of the schema names are defined as per above guidelines but
if there are some misleading names, those needs to be fixed.
For example - quota class set and quota set schemas are defined with same
name (quota_set) in quotas.py and quota_classes.py.
After above re arrangement it will be easy to maintain those schemas.
Alternatives
------------
Keep things as they are which will keep schemas readability and maintenance
difficult.
Implementation
==============
Assignee(s)
-----------
Primary assignees:
Ghanshyam Mann<ghanshyam.mann@nectechnologies.in>
Milestones
----------
Target Milestone for completion:
* kilo-3
Work Items
------------------------------------
* Change schema as per proposed idea.
* Import the changed schema according to their new path.
* Work will be tracked in: https://etherpad.openstack.org/p/rearrange-compute-response-schemas