RELEASE = "1-0"
-def _get_gitbuilder_project(ctx, remote, config):
- return packaging.GitbuilderProject(
+def _get_builder_project(ctx, remote, config):
+ return packaging.get_builder_project()(
config.get('project', 'ceph'),
config,
remote=remote,
stdout=StringIO(),
)
- gitbuilder = _get_gitbuilder_project(ctx, remote, config)
+ builder = _get_builder_project(ctx, remote, config)
log.info("Installing packages: {pkglist} on remote deb {arch}".format(
- pkglist=", ".join(debs), arch=gitbuilder.arch)
+ pkglist=", ".join(debs), arch=builder.arch)
)
# get baseurl
- log.info('Pulling from %s', gitbuilder.base_url)
+ log.info('Pulling from %s', builder.base_url)
- version = gitbuilder.version
+ version = builder.version
log.info('Package version is %s', version)
remote.run(
args=[
- 'echo', 'deb', gitbuilder.base_url, gitbuilder.distro, 'main',
+ 'echo', 'deb', builder.base_url, builder.distro, 'main',
run.Raw('|'),
'sudo', 'tee', '/etc/apt/sources.list.d/{proj}.list'.format(
proj=config.get('project', 'ceph')),
"""
Update the hostname to reflect the gitbuilder_host setting.
"""
+ # Skip this bit if we're not using gitbuilder
+ if not isinstance(packaging.get_builder_project(),
+ packaging.GitbuilderProject):
+ return
old_host = teuth_config._defaults['gitbuilder_host']
new_host = teuth_config.gitbuilder_host
if new_host == old_host:
:param config: the config dict
"""
rpm = _rpm_package_overrides(rpm, remote.os)
- gitbuilder = _get_gitbuilder_project(ctx, remote, config)
- log.info('Pulling from %s', gitbuilder.base_url)
- log.info('Package version is %s', gitbuilder.version)
+ builder = _get_builder_project(ctx, remote, config)
+ log.info('Pulling from %s', builder.base_url)
+ log.info('Package version is %s', builder.version)
log.info("Installing packages: {pkglist} on remote rpm {arch}".format(
- pkglist=", ".join(rpm), arch=gitbuilder.arch))
- dist_release = gitbuilder.dist_release
- project = gitbuilder.project
- start_of_url = gitbuilder.base_url
+ pkglist=", ".join(rpm), arch=builder.arch))
+ dist_release = builder.dist_release
+ project = builder.project
+ start_of_url = builder.base_url
if dist_release == 'opensuse':
proj_release = '{proj}-release-{release}.noarch'.format(
proj=project, release=RELEASE)
remote.run(args=['sudo', 'yum', '-y', 'install', base_url])
if dist_release != 'opensuse':
- uri = gitbuilder.uri_reference
+ uri = builder.uri_reference
_yum_fix_repo_priority(remote, project, uri)
_yum_fix_repo_host(remote, project)
_yum_set_check_obsoletes(remote)
remote.run(
args = ['if', 'test', '-e',
run.Raw(pkg), run.Raw(';'), 'then',
- 'sudo', pkg_mng_cmd, pkg_mng_opts, 'remove',
+ 'sudo', pkg_mng_cmd, pkg_mng_opts, 'remove',
pkg_mng_subcommand_opts, pkg, run.Raw(';'),
- 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
+ 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
pkg_mng_subcommand_opts, pkg, run.Raw(';'),
'fi']
)
if pkg is None:
remote.run(args=[
- 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
+ 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
pkg_mng_subcommand_opts, cpack
])
else:
remote.run(
args = ['if', 'test', run.Raw('!'), '-e',
run.Raw(pkg), run.Raw(';'), 'then',
- 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
- pkg_mng_subcommand_opts, cpack, run.Raw(';'),
+ 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
+ pkg_mng_subcommand_opts, cpack, run.Raw(';'),
'fi'])
if config.get("extras"):
log.info("Skipping version verification...")
return True
- gitbuilder = _get_gitbuilder_project(ctx, remote, config)
- version = gitbuilder.version
- pkg_to_check = gitbuilder.project
+ builder = _get_builder_project(ctx, remote, config)
+ version = builder.version
+ pkg_to_check = builder.project
installed_ver = packaging.get_package_version(remote, pkg_to_check)
if installed_ver and version in installed_ver:
msg = "The correct {pkg} version {ver} is installed.".format(
rpm = _rpm_package_overrides(rpm, remote.os)
log.info("Removing packages: {pkglist} on rpm system.".format(
pkglist=", ".join(rpm)))
- gitbuilder = _get_gitbuilder_project(ctx, remote, config)
- dist_release = gitbuilder.dist_release
+ builder = _get_builder_project(ctx, remote, config)
+ dist_release = builder.dist_release
if dist_release == 'opensuse':
pkg_mng_cmd = 'zypper'
] + rpm + [
run.Raw(';'),
'do',
- 'sudo',
+ 'sudo',
pkg_mng_cmd, pkg_mng_opts, 'remove', pkg_mng_subcommand_opts,
run.Raw('$d'), run.Raw('||'), 'true', run.Raw(';'),
'done',
stdout=StringIO(),
)
- gitbuilder = _get_gitbuilder_project(ctx, remote, config)
+ builder = _get_builder_project(ctx, remote, config)
# get distro name and arch
- dist = gitbuilder.distro
- base_url = gitbuilder.base_url
+ dist = builder.distro
+ base_url = builder.base_url
log.info('Pulling from %s', base_url)
- version = gitbuilder.version
+ version = builder.version
log.info('Package version is %s', version)
remote.run(
:param pkgs: the RPM packages to be installed
:param branch: the branch of the project to be used
"""
- gitbuilder = _get_gitbuilder_project(ctx, remote, config)
+ builder = _get_builder_project(ctx, remote, config)
log.info(
"Host {host} is: {distro} {ver} {arch}".format(
host=remote.shortname,
- distro=gitbuilder.os_type,
- ver=gitbuilder.os_version,
- arch=gitbuilder.arch,)
+ distro=builder.os_type,
+ ver=builder.os_version,
+ arch=builder.arch,)
)
- base_url = gitbuilder.base_url
+ base_url = builder.base_url
log.info('Repo base URL: %s', base_url)
- project = gitbuilder.project
+ project = builder.project
# Remove the -release package before upgrading it
args = ['sudo', 'rpm', '-ev', '%s-release' % project]
remote.run(args=args)
# Build the new -release package path
- if (gitbuilder.dist_release == 'opensuse'):
+ if (builder.dist_release == 'opensuse'):
release_rpm = "{base}/noarch/{proj}-release-{release}.noarch.rpm".format(
base=base_url,
proj=project,
base=base_url,
proj=project,
release=RELEASE,
- dist_release=gitbuilder.dist_release,
+ dist_release=builder.dist_release,
)
# Upgrade the -release package
args = ['sudo', 'rpm', '-Uv', release_rpm]
remote.run(args=args)
- if gitbuilder.dist_release != 'opensuse':
- uri = gitbuilder.uri_reference
+ if builder.dist_release != 'opensuse':
+ uri = builder.uri_reference
_yum_fix_repo_priority(remote, project, uri)
_yum_fix_repo_host(remote, project)
_yum_set_check_obsoletes(remote)
- if gitbuilder.dist_release == 'opensuse':
+ if builder.dist_release == 'opensuse':
pkg_mng_cmd = 'zypper'
pkg_mng_opts = '-a'
else:
])
# Actually upgrade the project packages
- if gitbuilder.dist_release == 'opensuse':
+ if builder.dist_release == 'opensuse':
pkg_mng_opts = '-n'
pkg_mng_subcommand_opts = '--capability'
else:
def get_flavor(config):
"""
Determine the flavor to use.
-
- Flavor tells us what gitbuilder to fetch the prebuilt software
- from. It's a combination of possible keywords, in a specific
- order, joined by dashes. It is used as a URL path name. If a
- match is not found, the teuthology run fails. This is ugly,
- and should be cleaned up at some point.
"""
config = config or dict()
flavor = config.get('flavor', 'basic')