Merge "Add spec for bp:config-verification"

This commit is contained in:
Jenkins 2014-04-10 11:48:49 +00:00 committed by Gerrit Code Review
commit 0d26b5f41c
1 changed files with 93 additions and 0 deletions

View File

@ -0,0 +1,93 @@
::
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
..
===================================
Add a config file verification tool
===================================
https://blueprints.launchpad.net/tempest/+spec/config-verification
Add a new tempest tool that will query the services' APIs to check if config
options are set correctly.
Problem description
===================
The tempest config file has tons of options and the number is just growing.
Additionally some of the options aren't exactly trivial to set completely.
For example, the api extensions options are either all or a list of all the
enabled extensions. Most of the services support discovery of almost all the
options we use in the config file.
Proposed change
===============
To write a tool which will use an existing config file and verify that
everything is set matching what the services report as being enabled. It will
start by reading in the config file and then use the tempest clients to query
the services to check that things like api versions, catalog types, and
extensions match what is reported by the services. It will also have a flag to
overwrite the config file with the values with reported by the services.
This new tool will be added to the tools/ directory in the root of the tempest
tree along with the other helper utilities in tempest.
The usage statement for the new tool will be something like the following::
usage: verify_tempest_config.py [-h] [-u] [-n]
optional arguments:
-h, --help show this help message and exit
-u, --update Update the config file with results from api queries. This
assumes whatever is set in the config file is incorrect. In
the case of endpoint checks where it could either be the
incorrect catalog type or the service available option the
service available option is assumed to be incorrect and is
thus changed. A copy of the original config file will be
created with .orig appended to the filename.
-n, --nocopy Don't create a copy of original config file when running
with the update option.
To test the functionality of the tool unit tests will be added to verify that
both the verification functionality and the config file updating work as
intended.
Alternatives
------------
The alternative would be having a tool that generated the config file directly
however this has a chicken and egg problem. If you want to autconfigure tempest
using feature discovery you need to have auth to talk to the services, and the
auth is part of the config file. So instead of having some hybrid between a
generator and existing config having a tool which verifies an existing config
file would clean up any confusion. Also having an option to overwrite it with
the autodiscovery results will essentially be a config generator.
Implementation
==============
Assignee(s)
-----------
Matthew Treinish <mtreinish@kortar.org>
Milestones
----------
Target Milestone for completion:
Juno-1
Work Items
----------
- Add basic verification script
- Add config file updating feature
- Add unit tests for config verification functionality
- Add unit tests for config file updating functionality