Add API version history for Nova

Going back to essex this is fairly easy since we had
API samples for the / versions document in the integrated
tests.

After that it gets a bit weird.

We have diablo-eol in github and the versions can be pulled
from code and unit tests there.

We don't have -eol tags for austin, bexar or cactus, so
we have to check tags.

The last release for cactus was 2011.2 and we can pull
the versions from code and tests.

The last release for bexar was 2011.3.1 and we can pull
the versions from code and tests.

We don't have any release tag for austin in the git repo
even though the openstack releases page says 2010.1 was
the austin release. We can find the 2010.1 nova code on
launchpad:

https://launchpad.net/nova/austin/2010.1

And looking in nova/api/__init__.py we see the
osapi_versions method on the API router class, which shows
the same version (v1.0) as in Bexar.

Per the validation in this repo, all 'links' and 'updated'
keys in responses are removed even if they are in the
actual responses.

This change also updates the schema, and fixes part of it:

1. The README says status can include "EXPERIMENTAL" but that
   wasn't defined as an option in the schema.
2. The "required" key was misspelled.
3. Nova uses "version" instead of "max_version" for microversions,
   so that is added to the schema and README.
4. And for crying in the soup Martha, format the json schema!

Change-Id: I4f353451f2cd2e06c1bb34d695f926e88108c219
This commit is contained in:
Matt Riedemann 2017-04-23 11:44:59 -04:00
parent 1bdd73edc8
commit 8dda6fe5b7
17 changed files with 205 additions and 36 deletions

View File

@ -19,6 +19,7 @@ Each service dictionary should contain a top level dictionary with a key
* status, required: can be one of CURRENT, SUPPORTED, DEPRECATED, EXPERIMENTAL
* id, required: the major api version, in the form vX.X
* max_version, optional: the maximum microversion supported, in the form X.XX
* version, optional: same as max_version
* min_version, optional: the minimum microversion supported, in the form X.XX
If either min_version or max_version are given, they both must be given. If

View File

@ -0,0 +1,8 @@
{
"versions": [
{
"id": "v1.0",
"status": "CURRENT"
}
]
}

8
releases/bexar/nova.json Normal file
View File

@ -0,0 +1,8 @@
{
"versions": [
{
"id": "v1.0",
"status": "CURRENT"
}
]
}

12
releases/cactus/nova.json Normal file
View File

@ -0,0 +1,12 @@
{
"versions": [
{
"id": "v1.1",
"status": "CURRENT"
},
{
"id": "v1.0",
"status": "DEPRECATED"
}
]
}

12
releases/diablo/nova.json Normal file
View File

@ -0,0 +1,12 @@
{
"versions": [
{
"id": "v1.1",
"status": "CURRENT"
},
{
"id": "v1.0",
"status": "DEPRECATED"
}
]
}

8
releases/essex/nova.json Normal file
View File

@ -0,0 +1,8 @@
{
"versions": [
{
"id": "v2.0",
"status": "CURRENT"
}
]
}

View File

@ -0,0 +1,8 @@
{
"versions": [
{
"id": "v2.0",
"status": "CURRENT"
}
]
}

View File

@ -0,0 +1,8 @@
{
"versions": [
{
"id": "v2.0",
"status": "CURRENT"
}
]
}

12
releases/havana/nova.json Normal file
View File

@ -0,0 +1,12 @@
{
"versions": [
{
"id": "v2.0",
"status": "CURRENT"
},
{
"id": "v3.0",
"status": "EXPERIMENTAL"
}
]
}

View File

@ -0,0 +1,12 @@
{
"versions": [
{
"id": "v2.0",
"status": "CURRENT"
},
{
"id": "v3.0",
"status": "EXPERIMENTAL"
}
]
}

12
releases/juno/nova.json Normal file
View File

@ -0,0 +1,12 @@
{
"versions": [
{
"id": "v2.0",
"status": "CURRENT"
},
{
"id": "v2.1",
"status": "EXPERIMENTAL"
}
]
}

14
releases/kilo/nova.json Normal file
View File

@ -0,0 +1,14 @@
{
"versions": [
{
"id": "v2.0",
"status": "SUPPORTED"
},
{
"id": "v2.1",
"status": "CURRENT",
"version": "2.3",
"min_version": "2.1"
}
]
}

View File

@ -0,0 +1,14 @@
{
"versions": [
{
"id": "v2.0",
"status": "SUPPORTED"
},
{
"id": "v2.1",
"status": "CURRENT",
"version": "2.12",
"min_version": "2.1"
}
]
}

14
releases/mitaka/nova.json Normal file
View File

@ -0,0 +1,14 @@
{
"versions": [
{
"id": "v2.0",
"status": "SUPPORTED"
},
{
"id": "v2.1",
"status": "CURRENT",
"version": "2.25",
"min_version": "2.1"
}
]
}

View File

@ -1,14 +1,14 @@
{
"versions": [
{
"id": "v2.0",
"status": "SUPPORTED"
},
{
"id": "v2.1",
"max_version": "2.38",
"min_version": "2.1",
"status": "CURRENT"
}
]
"versions": [
{
"id": "v2.0",
"status": "SUPPORTED"
},
{
"id": "v2.1",
"status": "CURRENT",
"version": "2.38",
"min_version": "2.1"
}
]
}

14
releases/ocata/nova.json Normal file
View File

@ -0,0 +1,14 @@
{
"versions": [
{
"id": "v2.0",
"status": "SUPPORTED"
},
{
"id": "v2.1",
"status": "CURRENT",
"version": "2.42",
"min_version": "2.1"
}
]
}

View File

@ -12,28 +12,40 @@
}
}
},
"definitions": {
"version": {
"properties": {
"status": {
"type": "string",
"enum": ["CURRENT", "SUPPORTED", "DEPRECATED"]
},
"id": {
"type": "string",
"pattern": "^v[0-9]{1,2}.?[0-9]{0,2}$"
},
"max_version": {
"type": "string",
"pattern": "^[0-9]{1,2}.[0-9]{1,2}$"
},
"min_version": {
"type": "string",
"pattern": "^[0-9]{1,2}.[0-9]{1,2}$"
}
},
"additionalProperties": false,
"reqiured": ["status", "id"]
}
}
"definitions":{
"version":{
"properties":{
"status":{
"type":"string",
"enum":[
"CURRENT",
"SUPPORTED",
"EXPERIMENTAL",
"DEPRECATED"
]
},
"id":{
"type":"string",
"pattern":"^v[0-9]{1,2}.?[0-9]{0,2}$"
},
"max_version":{
"type":"string",
"pattern":"^[0-9]{1,2}.[0-9]{1,2}$"
},
"version":{
"type":"string",
"pattern":"^[0-9]{1,2}.[0-9]{1,2}$"
},
"min_version":{
"type":"string",
"pattern":"^[0-9]{1,2}.[0-9]{1,2}$"
}
},
"additionalProperties":false,
"required":[
"status",
"id"
]
}
}
}