From f7959ed37565c5f3e6b5ca376629678ad4550fc3 Mon Sep 17 00:00:00 2001 From: Nathan Cutler Date: Thu, 8 Sep 2016 13:00:35 +0200 Subject: [PATCH] install: use --capability with zypper {install,remove} Otherwise we pick up python-ceph 0.80.9 from the distro repo instead of a newer python-ceph-compat from the test repo. References: https://bugzilla.opensuse.org/show_bug.cgi?id=997751 Signed-off-by: Nathan Cutler --- teuthology/task/install.py | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/teuthology/task/install.py b/teuthology/task/install.py index 247bb8b60..b02fef838 100644 --- a/teuthology/task/install.py +++ b/teuthology/task/install.py @@ -235,7 +235,9 @@ def _update_rpm_package_list_and_install(ctx, remote, rpm, config): base_url = "{start_of_url}/noarch/{rpm_name}".format( start_of_url=start_of_url, rpm_name=rpm_name) if dist_release == 'opensuse': - remote.run(args=['sudo', 'zypper', '-n', 'install', base_url]) + remote.run(args=[ + 'sudo', 'zypper', '-n', 'install', '--capability', rpm_name + ]) else: remote.run(args=['sudo', 'yum', '-y', 'install', base_url]) @@ -261,9 +263,11 @@ def _update_rpm_package_list_and_install(ctx, remote, rpm, config): if dist_release == 'opensuse': pkg_mng_cmd = 'zypper' pkg_mng_opts = '-n' + pkg_mng_subcommand_opts = '--capability' else: pkg_mng_cmd = 'yum' pkg_mng_opts = '-y' + pkg_mng_subcommand_opts = '' for cpack in rpm: pkg = None @@ -275,18 +279,24 @@ def _update_rpm_package_list_and_install(ctx, remote, rpm, config): remote.run( args = ['if', 'test', '-e', run.Raw(pkg), run.Raw(';'), 'then', - 'sudo', pkg_mng_cmd, pkg_mng_opts, 'remove', pkg, run.Raw(';'), - 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install', pkg, - run.Raw(';'), 'fi'] + 'sudo', pkg_mng_cmd, pkg_mng_opts, 'remove', + pkg_mng_subcommand_opts, pkg, run.Raw(';'), + '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', cpack]) + remote.run(args=[ + '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', cpack, - run.Raw(';'), 'fi']) + 'sudo', pkg_mng_cmd, pkg_mng_opts, 'install', + pkg_mng_subcommand_opts, cpack, run.Raw(';'), + 'fi']) def verify_package_version(ctx, config, remote): @@ -460,9 +470,11 @@ def _remove_rpm(ctx, config, remote, rpm): if dist_release == 'opensuse': pkg_mng_cmd = 'zypper' pkg_mng_opts = '-n' + pkg_mng_subcommand_opts = '--capability' else: pkg_mng_cmd = 'yum' pkg_mng_opts = '-y' + pkg_mng_subcommand_opts = '' remote.run( args=[ @@ -470,11 +482,9 @@ def _remove_rpm(ctx, config, remote, rpm): ] + rpm + [ run.Raw(';'), 'do', - 'sudo', pkg_mng_cmd, pkg_mng_opts, 'remove', - run.Raw('$d'), - run.Raw('||'), - 'true', - run.Raw(';'), + 'sudo', + pkg_mng_cmd, pkg_mng_opts, 'remove', pkg_mng_subcommand_opts, + run.Raw('$d'), run.Raw('||'), 'true', run.Raw(';'), 'done', ]) if dist_release == 'opensuse': @@ -933,9 +943,11 @@ def _upgrade_rpm_packages(ctx, config, remote, pkgs): # Actually upgrade the project packages if gitbuilder.dist_release == 'opensuse': pkg_mng_opts = '-n' + pkg_mng_subcommand_opts = '--capability' else: pkg_mng_opts = '-y' - args = ['sudo', pkg_mng_cmd, pkg_mng_opts, 'install'] + pkg_mng_subcommand_opts = '' + args = ['sudo', pkg_mng_cmd, pkg_mng_opts, 'install', pkg_mng_subcommand_opts] args += pkgs remote.run(args=args) -- 2.47.3