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: v15.2.17~118^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1fdae772a74411bd579667cd8e6c56e01a8aafbc;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 06c79cb5b4f..8200ac536cf 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__) @@ -94,6 +95,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""" @@ -572,6 +592,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), ])