piece <index>. Scheduling 0/<outof>, 1/<outof>,
2/<outof> ... <outof>-1/<outof> will schedule all
jobs in the suite (many more than once).
+ --simple-subset <index/outof>
+ Instead of scheduling the entire suite, break the
+ set of jobs into <outof> pieces, If --dry-run
+ produces 400 jobs, with <outof> value of 4, each
+ subset will produce 100 jobs, eg: 1/4 for above
+ will produce 100 jobs, 2/4 will produce next 100 jobs
-p <priority>, --priority <priority>
Job priority (lower is sooner)
[default: 1000]
'teuthology-queue = scripts.queue:main',
'teuthology-prune-logs = scripts.prune_logs:main',
'teuthology-describe = scripts.describe:main',
- 'teuthology-reimage = scripts.reimage:main'
- 'teuthology-describe-tests = scripts.describe_tests:main',
- 'teuthology-gencov = scripts.gencov:main',
+ 'teuthology-reimage = scripts.reimage:main',
'teuthology-polarion = scripts.polarion:main',
],
},
from datetime import datetime
from tempfile import NamedTemporaryFile
+from math import floor
from teuthology.config import config, JobConfig
from teuthology.exceptions import (
log.info('Suite %s in %s generated %d jobs (not yet filtered)' % (
suite_name, suite_path, len(configs)))
+ if self.args.simple_subset:
+ simple_subset = self.args.simple_subset
+ log.info("Using simple subset options %s " % simple_subset)
+ (sset, outof) = simple_subset.split('/')
+ sset = int(sset)
+ outof = int(outof)
+ if outof < len(configs):
+ cycle = floor(len(configs) / outof)
+ if sset == outof:
+ log.info("Final subset, including remainder jobs")
+ start = (sset-1) * cycle
+ end = len(configs)
+ else:
+ start = (sset-1) * cycle
+ end = start + (cycle-1)
+ start = int(start)
+ end = int(end)
+ log.info("using start index of %d , end index of %d" %(start, end))
+ configs = configs[start:end]
+ log.info("Number of Jobs after simple subset are %d" % len(configs))
+
if self.args.dry_run:
log.debug("Base job config:\n%s" % self.base_config)