pelagos:
endpoint: http://head.ses.suse.de:5000/
machine_types: ['type1', 'type2', 'type3']
+
+ # Do not allow more than that many jobs in a single run by default.
+ # To disable this check use 0.
+ job_threshold: 500
in the output of teuthology-suite command. -1
for a random seed [default: -1].
--force-priority Skip the priority check.
- --disable-num-jobs-check Skip the number of jobs check. By default,
- teuthology will not allow you to schedule more
- than JOBS_TO_SCHEDULE_THRESHOLD=500 jobs, because
- it is too high. Use this if you need to schedule
- more than 500 jobs.
+ --job-threshold <threshold> Do not allow to schedule the run if the number
+ of jobs exceeds <threshold>. Use 0 to allow
+ any number [default: {default_job_threshold}].
""".format(
default_machine_type=config.default_machine_type,
default_suite_repo=defaults('--suite-repo',
config.get_ceph_qa_suite_git_url()),
default_ceph_branch=defaults('--ceph-branch', 'master'),
+ default_job_threshold=config.job_threshold,
)
'gitbuilder_host': 'gitbuilder.ceph.com',
'githelper_base_url': 'http://git.ceph.com:8080',
'check_package_signatures': True,
+ 'job_threshold': 500,
'lab_domain': 'front.sepia.ceph.com',
'lock_server': 'http://paddles.front.sepia.ceph.com/',
'max_job_time': 259200, # 3 days
value = normalize_suite_name(value)
if key == 'suite_relpath' and value is None:
value = ''
- elif key in ('limit', 'priority', 'num', 'newest', 'seed'):
+ elif key in ('limit', 'priority', 'num', 'newest', 'seed', 'job_threshold'):
value = int(value)
elif key == 'subset' and value is not None:
# take input string '2/3' and turn into (2, 3)
class Run(object):
WAIT_MAX_JOB_TIME = 30 * 60
WAIT_PAUSE = 5 * 60
- JOBS_TO_SCHEDULE_THRESHOLD = 500
__slots__ = (
'args', 'name', 'base_config', 'suite_repo_path', 'base_yaml_paths',
'base_args', 'package_versions', 'kernel_dict', 'config_input',
util.schedule_fail(msg)
def check_num_jobs(self, jobs_to_schedule):
- msg=f'''Unable to schedule {jobs_to_schedule} jobs, too many jobs.
+ """
+ Fail schedule if number of jobs exceeds job threshold.
+ """
+ threshold = self.args.job_threshold
+ msg=f'''Unable to schedule {jobs_to_schedule} jobs, too many jobs, when maximum {threshold} jobs allowed.
-Note: If you still want to go ahead, use --disable-num-jobs-check'''
- if jobs_to_schedule > Run.JOBS_TO_SCHEDULE_THRESHOLD:
+Note: If you still want to go ahead, use --job-threshold 0'''
+ if threshold and jobs_to_schedule > threshold:
util.schedule_fail(msg)
def schedule_suite(self):
if self.args.priority and jobs_to_schedule and not self.args.force_priority:
self.check_priority(len(jobs_to_schedule))
- # Before scheduling jobs, check number of jobs to avoid scheduling 1000s
- if jobs_to_schedule and not self.args.disable_num_jobs_check:
- self.check_num_jobs(len(jobs_to_schedule))
+ self.check_num_jobs(len(jobs_to_schedule))
self.schedule_jobs(jobs_missing_packages, jobs_to_schedule, name)