# demand.
suite_verify_ceph_hash: True
+ # If true, teuthology-suite will schedule jobs even if the required
+ # packages are not built.
+ suite_allow_missing_packages: False
+
# The rsync destination to upload the job results, when --upload is
# is provided to teuthology-suite.
#
'baseurl_template': 'http://{host}/{proj}-{pkg_type}-{dist}-{arch}-{flavor}/{uri}',
'teuthology_path': None,
'suite_verify_ceph_hash': True,
+ 'suite_allow_missing_packages': False,
'openstack': {
'clone': 'git clone http://github.com/ceph/teuthology',
'user-data': 'teuthology/openstack/openstack-{os_type}-{os_version}-user-data.txt',
And ('x86_64', 'centos7', 'rpm') when passed anything else
"""
arch = 'x86_64'
- if distro in (None, 'None', 'rhel', 'centos'):
+ if distro in (None, 'None'):
+ release = 'centos7'
+ pkg_type = 'rpm'
+ elif distro in ('rhel', 'centos'):
release = 'centos7'
pkg_type = 'rpm'
elif distro == 'ubuntu':
args=arg
)
- if dry_run and config.suite_verify_ceph_hash:
+ if config.suite_verify_ceph_hash:
full_job_config = dict()
deep_merge(full_job_config, job_config.to_dict())
deep_merge(full_job_config, parsed_yaml)
package_versions):
m = "Packages for os_type '{os}', flavor {flavor} and " + \
"ceph hash '{ver}' not found"
- log.info(m.format(os=os_type, flavor=flavor, ver=sha1))
+ log.error(m.format(os=os_type, flavor=flavor, ver=sha1))
jobs_missing_packages.append(job)
jobs_to_schedule.append(job)
)
log_prefix = ''
- if dry_run and job in jobs_missing_packages:
+ if job in jobs_missing_packages:
log_prefix = "Missing Packages: "
+ if not dry_run and not config.suite_allow_missing_packages:
+ schedule_fail(
+ "At least one job needs packages that don't exist. "
+ "See above."
+ )
teuthology_schedule(
args=job['args'],
dry_run=dry_run,
log.info('Suite %s in %s scheduled %d jobs.' % (suite_name, path, count))
log.info('Suite %s in %s -- %d jobs were filtered out.' %
(suite_name, path, len(configs) - count))
- if dry_run:
- log.info('Suite %s in %s scheduled %d jobs with missing packages.' %
- (suite_name, path, missing_count))
+ if missing_count:
+ log.warn('Scheduled %d/%d jobs that are missing packages!',
+ missing_count, count)
return count
sleep=DEFAULT,
get_arch=lambda x: 'x86_64',
git_ls_remote=lambda *args: '12345',
- package_version_for_hash=lambda *args: 'fake-9.5',
+ package_version_for_hash=DEFAULT,
) as m:
+ m['package_version_for_hash'].return_value = 'fake-9.5'
config.suite_verify_ceph_hash = True
main(['--suite', suite_name,
'--suite-dir', 'teuthology/test',