teuthology-describe-tests: a way to examine a qa suite#714
Conversation
|
I would suggest to use maybe two annotation tags to simplify the process: #desc: and #step: #desc: - would be used to describe a new feature We can use more annotations, of cause, if we want. But if we push for a limited amount of descriptions in suites that'd be a good start. Also we can have wiki pages corresponding to the annotated ceph-qa-suites dirs and have them auto-updated when a new annotation/feature was added, so as results we can have features list and test plans and comments or all together if we wish. Here is an example http://tracker.ceph.com/projects/ceph-releases/wiki/TEST_TO_BE_DELETED |
|
@yuriw I'm not clear on what you mean by suggesting that |
|
@jdurgin I like this idea very much! I wonder about the name, though. I don't have strong opinions about this, but I could see something like |
|
@zmc in my opinion, one of the purpose of this tool would be - building annotations for features that are tested by a particular yaml/facet configurations. So my hope was that
@zack if agree with the purpose, how would you name them? |
|
@vasukulkarni Since this is implemented as yaml comments, none of it will make it into paddles/pulpito. If we want that, it'll have to take a different approach. @yuriw I guess I don't have an opinion on the purpose of the feature. Perhaps we should get together with @jdurgin at some point to talk about use cases and basic implementation details if you both want? |
|
@zmc @vasukulkarni I agree teuthology-describe-suite or similar is a better name - tree just came from the Let's talk about the purpose of this more at the end of the infra standup tomorrow. |
|
Updates: renamed to teuthology-describe-tests, added json/csv output, changed the input format to be part of the yaml (see the usage info for details), and added options to output the full matrix rather than just one row per path. Some example output (using the wip-rbd-basic-tree ceph-qa-suite branch): @zmc to handle scheduling suites that have these 'meta' yaml elements, paddles needs to change to allow passing a job with a 'meta' attribute. HTTP 500 is given by the jobs controller right now if any unrecognized attribute is found. Could you help with this paddles change? |
|
@zmc @jdurgin here is passed job http://pulpito.ceph.com/teuthology-2015-12-03_08:52:57-upgrade:infernalis:older-infernalis-distro-basic-vps/ on this wip-teuthology-tree branch and results seem reported normally. |
|
I was wrong about a paddles change being needed - I accidentally had two symlinked files that still had a 'description:' element. Changing those to 'meta:' made scheduling a suite work. So this is all ready for review I think. |
|
This how the table may look like on the latest code http://tracker.ceph.com/projects/ceph-releases/wiki/TEST_TO_BE_DELETED |
An initial prototype, with basic formatting printing out the directory tree and comments from the yaml fragments. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
This is easier to read since it aligns the metadata. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
This will be useful for other tests shortly. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Suggested by Loic, this provides more context without needing to remember or look back at the parent directory. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Rather than using comments, read description metadata from a yaml 'description' section. Make it a list so that teuthology-suite aggregates the descriptions in order, and allow multiple fields by making the list contain a dict. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Some yamls are empty to represent the absence of a setting, and parse into None. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
These tests use the class-initialized attributes instead. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Match the behavior of teuthology-suite and generate the full product of all fragments by default. Include the same filtering and subset options as well. Just print an asii table for now. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
This gives more context when looking at larger suites as a whole, e.g. rbd or rados. Sort the rows as well, so tests within subsuites, e.g. basic, thrash, singleton, etc. are grouped together. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
For simple consumption, use objects with fields in the json output, and list the headers separately in case the original order is useful. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
teuthology-suite already uses a top-level description field that other tools rely on. This is shorter to type too. Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
|
@jdurgin this looks really good. I don't think any significant changes are needed. I'd ask two things though if you don't mind:
I think that's it! |
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
17d60f6 to
fc5aa09
Compare
|
@zmc Thanks for looking, I added newlines to docstrings and made the new files pass flake8 |
|
@jdurgin Looks great, thanks! |
teuthology-describe-tests: a way to examine a qa suite
The idea behind this is to help see what qa suites are covering by adding short descriptions or other fields to the yaml fragments in a suite.
The first column is similar to the output of the
treecommand. The other columns are extracted from comments in the yaml fragments based on the specified prefix.An example annotated suite is here:
ceph/ceph-qa-suite@c3449c0
This could be extended (perhaps as part of the `teuthology-suite`` command) to output the full matrix of combinations rather than just the individual fragments.
Example output: