From: Ilya Dryomov Date: Tue, 15 Feb 2022 13:57:51 +0000 (+0100) Subject: qa/tasks/qemu: make sure block-rbd.so is installed X-Git-Tag: v17.1.0~8^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6ecf8cf91c4464cca42d1949ee40055d6fb53ae2;p=ceph.git qa/tasks/qemu: make sure block-rbd.so is installed Fixes: https://tracker.ceph.com/issues/54286 Signed-off-by: Ilya Dryomov (cherry picked from commit 525ff61cfc8516b4d7bed6f819b00a0b6cb7be0a) --- diff --git a/qa/tasks/qemu.py b/qa/tasks/qemu.py index 0d984e75bfa2..3fe8049b72f0 100644 --- a/qa/tasks/qemu.py +++ b/qa/tasks/qemu.py @@ -14,6 +14,7 @@ from teuthology import contextutil from teuthology import misc as teuthology from teuthology.config import config as teuth_config from teuthology.orchestra import run +from teuthology.packaging import install_package, remove_package log = logging.getLogger(__name__) @@ -158,6 +159,25 @@ def create_dirs(ctx, config): ] ) +@contextlib.contextmanager +def install_block_rbd_driver(ctx, config): + """ + Make sure qemu rbd block driver (block-rbd.so) is installed + """ + for client, client_config in config.items(): + (remote,) = ctx.cluster.only(client).remotes.keys() + if remote.os.package_type == 'rpm': + block_rbd_pkg = 'qemu-kvm-block-rbd' + else: + block_rbd_pkg = 'qemu-block-extra' + install_package(block_rbd_pkg, remote) + try: + yield + finally: + for client, client_config in config.items(): + (remote,) = ctx.cluster.only(client).remotes.keys() + remove_package(block_rbd_pkg, remote) + @contextlib.contextmanager def generate_iso(ctx, config): """Execute system commands to generate iso""" @@ -660,6 +680,7 @@ def task(ctx, config): create_images(ctx=ctx, config=config, managers=managers) managers.extend([ lambda: create_dirs(ctx=ctx, config=config), + lambda: install_block_rbd_driver(ctx=ctx, config=config), lambda: generate_iso(ctx=ctx, config=config), lambda: download_image(ctx=ctx, config=config), ])