Check minimum version for CLI tests
Spec for blueprint minversion-check-for-cli-tests Change-Id: I7335910ba0ab9e6abaf45af0531ff86e15f08efa
This commit is contained in:
96
specs/minversion-check-for-cli-tests.rst
Normal file
96
specs/minversion-check-for-cli-tests.rst
Normal file
@@ -0,0 +1,96 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
..
|
||||
|
||||
===================================
|
||||
Check minimum version for CLI tests
|
||||
===================================
|
||||
|
||||
https://blueprints.launchpad.net/tempest/+spec/minversion-check-for-cli-tests
|
||||
|
||||
There are CLI tests added to Tempest for commands which may not be available
|
||||
yet in released versions of the clients, so downstream packagers would not
|
||||
have those commands available for CI and the tests will fail.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
The use case is testing stable/icehouse server code, i.e. nova, with packaged
|
||||
versions of the clients that are supported for the stable/icehouse release of
|
||||
Nova, which is python-novaclient-2.17.0 in the 2014.1 release of the server
|
||||
code.
|
||||
|
||||
With branchless Tempest there is no stable/icehouse branch for Tempest, and so
|
||||
when new CLI tests are added to Tempest on master which require commands
|
||||
or other functions in the clients, they can fail for downstream packagers
|
||||
if the required commands/functions are not in released versions of the clients
|
||||
on pypi.python.org, where the packager may be getting their source tar.gz from.
|
||||
|
||||
One specific example here is the server-group-list CLI test added for the Nova
|
||||
client which is not in a released version of python-novaclient. Anyone running
|
||||
Tempest against a released version of the client will fail this new CLI test.
|
||||
|
||||
Note that the community gate CI does not have an issue with this since Tempest
|
||||
is run against trunk level code for the clients rather than released versions.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Add a simple decorator that can be used in the tempest/cli tests for checking
|
||||
that the installed version of the client is at a minimum version to support the
|
||||
test, otherwise the test is skipped.
|
||||
|
||||
The decorator would be applied to feature tests introduced since Icehouse due
|
||||
to the branchless Tempest strategy and the lack of a stable/icehouse branch.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
There are not really any good alternatives to this issue for downstream
|
||||
packagers/deployers if they are not running CI against trunk levels of code
|
||||
for the clients. They can reset HEAD for Tempest to some arbitrary commit
|
||||
around the time of the server release they are testing, e.g. sometime around
|
||||
the 2014.1 release for stable/icehouse testing, but then they are frozen to
|
||||
that commit in Tempest and do not get future bug fixes that would have been
|
||||
backported when there were stable branches for Tempest. The other alternative
|
||||
is manually excluding the unsupported CLI tests but this is cumbersome and
|
||||
only works around the issue after the fact rather than putting the check in
|
||||
the code when the test runs.
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Matt Riedemann <mriedem@us.ibm.com>
|
||||
|
||||
Milestones
|
||||
----------
|
||||
|
||||
Target Milestone for completion:
|
||||
Juno-2
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
#. Write the decorator code. The work in progress patch is here:
|
||||
|
||||
https://review.openstack.org/#/c/100031/
|
||||
|
||||
#. Apply the decorator to the CLI tests, with a primary focus on any tests
|
||||
added after the 2014.1 Icehouse release, especially for those tests which
|
||||
require newer client code than what is in a released version.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
* This is only an issue introduced by the "Branchless Tempest" blueprint but is
|
||||
not technically tied to that blueprint's implementation, but is listed here
|
||||
for posterity:
|
||||
|
||||
https://blueprints.launchpad.net/tempest/+spec/branchless-tempest
|
||||
Reference in New Issue
Block a user