[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[all][interop][cinder][qa] API changes with/without microversion and Tempest verification of API interoperability

---- On Mon, 16 Sep 2019 18:53:58 +0900 Ghanshyam Mann <gmann at ghanshyammann.com> wrote ----
 > Hello Everyone,
 > As per discussion over ML, Tempest started the JSON schema strict validation for Volume  APIs response [1].
 > Because it may affect the interop certification, it was explained to the Interop team as well as in the Board of Director meeting[2].
 > In Train, Tempest started implementing the validation and found an API change where the new field was added in API response without versioning[3] (Cinder has API microversion mechanism). IMO, that was not the correct way to change the API and as per API-WG guidelines[4] any field added/modified/removed in API should be with microverison(means old versions/user should not be affected by that change) and must for API interoperability.
 > With JSON schema validation, Tempest verifies the API interoperability recommended behaviour by API-WG.  But as per IRC conversion with cinder team, we have different opinion on API interoperability and how API should be changed under microversion mechanism.  I would like to have a conclusion on this so that Tempest can verify or leave the Volume API for strict validation. 

I found the same flow chart what Sean created in Nova about "when to bump microverison" in Cinder also which clearly say any addition to response need new microversion. 
- https://docs.openstack.org/cinder/latest/contributor/api_microversion_dev.html


 > [1] http://lists.openstack.org/pipermail/openstack-discuss/2018-November/000358.html
 > [2] 
 > - http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003652.html
 > - http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003655.html
 > [3] https://bugs.launchpad.net/tempest/+bug/1843762   https://review.opendev.org/#/c/439461/
 > [4] https://specs.openstack.org/openstack/api-wg/guidelines/api_interoperability.html
 > -gmann