Support version list API
The Congress API should be able to list current supported API versions. Export the version list API, and show the current API details, include: id, status, update time, links, like other OpenStack project: nova, neutron and etc. APIImpact DocImpact blueprint api-version Change-Id: I766a1e9e6ef0b78661ee556b586ec849f2904942
This commit is contained in:
parent
89833adaef
commit
7a14a0f114
|
@ -0,0 +1,229 @@
|
|||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
========================
|
||||
Support version list API
|
||||
========================
|
||||
|
||||
https://blueprints.launchpad.net/congress/+spec/api-version
|
||||
|
||||
The Congress API should be able to list current supported API versions.
|
||||
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Users want to talk with Congress API, but no API support to query the supported
|
||||
versions, so users have no idea about which versions can be supported in the
|
||||
current Congress deployment.
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Export the version list API, and show the current API details, include: id,
|
||||
status, update time, links, like other OpenStack project: nova, neutron and
|
||||
etc. Although Congress only support one version API(v1) currently, but the
|
||||
version list API make sense for future API evolution.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Policy
|
||||
------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Policy actions
|
||||
--------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Data sources
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
* Specification for the method
|
||||
|
||||
* List the current supported API versions.
|
||||
|
||||
* Method type: GET
|
||||
|
||||
* Normal http response code(s): 200
|
||||
|
||||
* Expected error http response code(s): None
|
||||
|
||||
* ``/``
|
||||
|
||||
* Parameters which can be passed via the url: None
|
||||
|
||||
* JSON schema definition for the body data if allowed: None
|
||||
|
||||
* JSON schema definition for the response data if any:
|
||||
|
||||
::
|
||||
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string"
|
||||
},
|
||||
"updated": {
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"links": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"href": {
|
||||
"type": "string"
|
||||
},
|
||||
"rel": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": ["href", "rel"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": ["status", "updated", "id", "links"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": ["versions"]
|
||||
}
|
||||
|
||||
* Example use case:
|
||||
|
||||
::
|
||||
|
||||
GET /
|
||||
{
|
||||
"versions": [{
|
||||
"status": "CURRENT",
|
||||
"updated": "2015-07-03T11:33:21Z",
|
||||
"id": "v1",
|
||||
"links": [{
|
||||
"href": "http://10.250.10.29:1789/v1/",
|
||||
"rel": "self"
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
||||
* There should not be any impacts to policy.json files for this change.
|
||||
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
The related works in python-congressclient will also be added.
|
||||
|
||||
After this modification, user could get the API version details, like this:
|
||||
|
||||
::
|
||||
|
||||
openstack congress version list
|
||||
|
||||
|
||||
Performance impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
We modify api-paste.ini to add some stuff, so if the operator prepare to
|
||||
upgrade from old release, he need to add the new config items to old
|
||||
api-paste.ini file or override the old using new one.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
|
||||
Rui Chen <chenrui.momo@gmail.com>
|
||||
|
||||
|
||||
Work items
|
||||
----------
|
||||
|
||||
* Adds Version class to assemble API versions response.
|
||||
* modify api-paste.ini to route the request to the new logic.
|
||||
* Make python-congressclient supporting this API.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Some unit tests should been added to cover the new API.
|
||||
|
||||
|
||||
Documentation impact
|
||||
====================
|
||||
|
||||
The related content should be added in Congress API document.
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
None
|
Loading…
Reference in New Issue