From 8dda6fe5b7c00770ad9edd7a95c244e75385e63f Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Sun, 23 Apr 2017 11:44:59 -0400 Subject: [PATCH] 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 --- README.rst | 1 + releases/austin/nova.json | 8 +++++ releases/bexar/nova.json | 8 +++++ releases/cactus/nova.json | 12 ++++++++ releases/diablo/nova.json | 12 ++++++++ releases/essex/nova.json | 8 +++++ releases/folsom/nova.json | 8 +++++ releases/grizzly/nova.json | 8 +++++ releases/havana/nova.json | 12 ++++++++ releases/icehouse/nova.json | 12 ++++++++ releases/juno/nova.json | 12 ++++++++ releases/kilo/nova.json | 14 +++++++++ releases/liberty/nova.json | 14 +++++++++ releases/mitaka/nova.json | 14 +++++++++ releases/newton/nova.json | 24 +++++++-------- releases/ocata/nova.json | 14 +++++++++ schema.json | 60 ++++++++++++++++++++++--------------- 17 files changed, 205 insertions(+), 36 deletions(-) create mode 100644 releases/austin/nova.json create mode 100644 releases/bexar/nova.json create mode 100644 releases/cactus/nova.json create mode 100644 releases/diablo/nova.json create mode 100644 releases/essex/nova.json create mode 100644 releases/folsom/nova.json create mode 100644 releases/grizzly/nova.json create mode 100644 releases/havana/nova.json create mode 100644 releases/icehouse/nova.json create mode 100644 releases/juno/nova.json create mode 100644 releases/kilo/nova.json create mode 100644 releases/liberty/nova.json create mode 100644 releases/mitaka/nova.json create mode 100644 releases/ocata/nova.json diff --git a/README.rst b/README.rst index 275b27a..c00aaec 100644 --- a/README.rst +++ b/README.rst @@ -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 diff --git a/releases/austin/nova.json b/releases/austin/nova.json new file mode 100644 index 0000000..fb476b4 --- /dev/null +++ b/releases/austin/nova.json @@ -0,0 +1,8 @@ +{ + "versions": [ + { + "id": "v1.0", + "status": "CURRENT" + } + ] +} \ No newline at end of file diff --git a/releases/bexar/nova.json b/releases/bexar/nova.json new file mode 100644 index 0000000..fb476b4 --- /dev/null +++ b/releases/bexar/nova.json @@ -0,0 +1,8 @@ +{ + "versions": [ + { + "id": "v1.0", + "status": "CURRENT" + } + ] +} \ No newline at end of file diff --git a/releases/cactus/nova.json b/releases/cactus/nova.json new file mode 100644 index 0000000..aaccec3 --- /dev/null +++ b/releases/cactus/nova.json @@ -0,0 +1,12 @@ +{ + "versions": [ + { + "id": "v1.1", + "status": "CURRENT" + }, + { + "id": "v1.0", + "status": "DEPRECATED" + } + ] +} \ No newline at end of file diff --git a/releases/diablo/nova.json b/releases/diablo/nova.json new file mode 100644 index 0000000..aaccec3 --- /dev/null +++ b/releases/diablo/nova.json @@ -0,0 +1,12 @@ +{ + "versions": [ + { + "id": "v1.1", + "status": "CURRENT" + }, + { + "id": "v1.0", + "status": "DEPRECATED" + } + ] +} \ No newline at end of file diff --git a/releases/essex/nova.json b/releases/essex/nova.json new file mode 100644 index 0000000..ff56420 --- /dev/null +++ b/releases/essex/nova.json @@ -0,0 +1,8 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "CURRENT" + } + ] +} \ No newline at end of file diff --git a/releases/folsom/nova.json b/releases/folsom/nova.json new file mode 100644 index 0000000..ff56420 --- /dev/null +++ b/releases/folsom/nova.json @@ -0,0 +1,8 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "CURRENT" + } + ] +} \ No newline at end of file diff --git a/releases/grizzly/nova.json b/releases/grizzly/nova.json new file mode 100644 index 0000000..ff56420 --- /dev/null +++ b/releases/grizzly/nova.json @@ -0,0 +1,8 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "CURRENT" + } + ] +} \ No newline at end of file diff --git a/releases/havana/nova.json b/releases/havana/nova.json new file mode 100644 index 0000000..5db1254 --- /dev/null +++ b/releases/havana/nova.json @@ -0,0 +1,12 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "CURRENT" + }, + { + "id": "v3.0", + "status": "EXPERIMENTAL" + } + ] +} \ No newline at end of file diff --git a/releases/icehouse/nova.json b/releases/icehouse/nova.json new file mode 100644 index 0000000..5db1254 --- /dev/null +++ b/releases/icehouse/nova.json @@ -0,0 +1,12 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "CURRENT" + }, + { + "id": "v3.0", + "status": "EXPERIMENTAL" + } + ] +} \ No newline at end of file diff --git a/releases/juno/nova.json b/releases/juno/nova.json new file mode 100644 index 0000000..bb72993 --- /dev/null +++ b/releases/juno/nova.json @@ -0,0 +1,12 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "CURRENT" + }, + { + "id": "v2.1", + "status": "EXPERIMENTAL" + } + ] +} \ No newline at end of file diff --git a/releases/kilo/nova.json b/releases/kilo/nova.json new file mode 100644 index 0000000..76c69ad --- /dev/null +++ b/releases/kilo/nova.json @@ -0,0 +1,14 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "SUPPORTED" + }, + { + "id": "v2.1", + "status": "CURRENT", + "version": "2.3", + "min_version": "2.1" + } + ] +} \ No newline at end of file diff --git a/releases/liberty/nova.json b/releases/liberty/nova.json new file mode 100644 index 0000000..9f725a3 --- /dev/null +++ b/releases/liberty/nova.json @@ -0,0 +1,14 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "SUPPORTED" + }, + { + "id": "v2.1", + "status": "CURRENT", + "version": "2.12", + "min_version": "2.1" + } + ] +} \ No newline at end of file diff --git a/releases/mitaka/nova.json b/releases/mitaka/nova.json new file mode 100644 index 0000000..d189dbc --- /dev/null +++ b/releases/mitaka/nova.json @@ -0,0 +1,14 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "SUPPORTED" + }, + { + "id": "v2.1", + "status": "CURRENT", + "version": "2.25", + "min_version": "2.1" + } + ] +} \ No newline at end of file diff --git a/releases/newton/nova.json b/releases/newton/nova.json index 3607df4..e507373 100644 --- a/releases/newton/nova.json +++ b/releases/newton/nova.json @@ -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" + } + ] } diff --git a/releases/ocata/nova.json b/releases/ocata/nova.json new file mode 100644 index 0000000..3707304 --- /dev/null +++ b/releases/ocata/nova.json @@ -0,0 +1,14 @@ +{ + "versions": [ + { + "id": "v2.0", + "status": "SUPPORTED" + }, + { + "id": "v2.1", + "status": "CURRENT", + "version": "2.42", + "min_version": "2.1" + } + ] +} diff --git a/schema.json b/schema.json index 769f957..083cd09 100644 --- a/schema.json +++ b/schema.json @@ -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" + ] + } + } }