From 525ff61cfc8516b4d7bed6f819b00a0b6cb7be0a Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Tue, 15 Feb 2022 14:57:51 +0100 Subject: [PATCH] qa/tasks/qemu: make sure block-rbd.so is installed Fixes: https://tracker.ceph.com/issues/54286 Signed-off-by: Ilya Dryomov --- qa/tasks/qemu.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/qa/tasks/qemu.py b/qa/tasks/qemu.py index 0d984e75bfa..3fe8049b72f 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), ]) -- 2.47.3