Add --filter-all parameter to 'teuthology-suite' to allow
precise test case selection. The --filter-in makes use of filter list
with logical 'or' operation to include test cases.
The --filter-out takes filter list and excludes any test case which
match any from the filter list.
This patch provides with 'and' logical operation for a given filter list.
Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
--filter-out KEYWORDS Do not run jobs whose description contains any of
the keywords in the comma separated keyword
string specified.
+ --filter-all KEYWORDS Only run jobs whose description contains each one
+ of the keywords in the comma separated keyword
+ string specified.
--archive-upload RSYNC_DEST Rsync destination to upload archives.
--archive-upload-url URL Public facing URL where archives are uploaded.
--throttle SLEEP When scheduling, wait SLEEP seconds between jobs.
elif key == 'subset' and value is not None:
# take input string '2/3' and turn into (2, 3)
value = tuple(map(int, value.split('/')))
- elif key in ('filter_in', 'filter_out', 'rerun_statuses'):
+ elif key in ('filter_all', 'filter_in', 'filter_out', 'rerun_statuses'):
if not value:
value = []
else:
if any(f in path for path in base_frag_paths):
return True
return False
+ filter_all = self.args.filter_all
+ if filter_all:
+ if not all(matches(f) for f in filter_all):
+ continue
filter_in = self.args.filter_in
if filter_in:
if not any(matches(f) for f in filter_in):