]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/tasks/qemu: make sure block-rbd.so is installed
authorIlya Dryomov <idryomov@gmail.com>
Tue, 15 Feb 2022 13:57:51 +0000 (14:57 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 15 Feb 2022 13:57:51 +0000 (14:57 +0100)
Fixes: https://tracker.ceph.com/issues/54286
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
qa/tasks/qemu.py

index 0d984e75bfa2f78142ee07cda5da5e05efd4fd15..3fe8049b72f08b1cf4f657c7638b0adff73d9829 100644 (file)
@@ -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),
         ])