]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/suites/rbd: install qemu-utils in addition to qemu-block-extra on Ubuntu 51059/head
authorIlya Dryomov <idryomov@gmail.com>
Tue, 11 Apr 2023 20:43:58 +0000 (22:43 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 13 Apr 2023 10:08:20 +0000 (12:08 +0200)
qemu-utils is usually pre-installed but, due to what appears to be
a Ubuntu packaging bug, it's not upgraded when qemu-block-extra is
installed:

  The following NEW packages will be installed:
    qemu-block-extra
  The following packages will be upgraded:
    qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86

However, the version of the block driver must match exactly the version
of the qemu-img tool, so the above leads to:

  $ qemu-img convert -f qcow2 -O raw /home/ubuntu/cephtest/qemu/base.client.0.0.qcow2 rbd:rbd/client.0.0
  Failed to initialize module: /usr/lib/x86_64-linux-gnu/qemu/block-rbd.so
  Note: only modules from the same build can be loaded.
  qemu: module block-block-rbd not found, do you want to install qemu-block-extra package?
  qemu-img: Unknown protocol 'rbd'

Fixes: https://tracker.ceph.com/issues/59431
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit c529fdd63a5aae2c598078df05fe9bbef40042dc)

qa/suites/rbd/singleton/all/qemu-iotests-no-cache.yaml
qa/suites/rbd/singleton/all/qemu-iotests-writearound.yaml
qa/suites/rbd/singleton/all/qemu-iotests-writeback.yaml
qa/suites/rbd/singleton/all/qemu-iotests-writethrough.yaml
qa/tasks/qemu.py

index 25d124a34f46ccb89a269fd6156b7d91a5ff18b8..364dd8810479b80a46105d7e77a16c3203687099 100644 (file)
@@ -8,6 +8,7 @@ tasks:
       - qemu-kvm-block-rbd
       deb:
       - qemu-block-extra
+      - qemu-utils
 - ceph:
     fs: xfs
     conf:
index 908d457e999bd2ae520bc84fa694c4c30e931289..9757083855205139e29739a7db28b9050d09d3ac 100644 (file)
@@ -8,6 +8,7 @@ tasks:
       - qemu-kvm-block-rbd
       deb:
       - qemu-block-extra
+      - qemu-utils
 - ceph:
     fs: xfs
     conf:
index 9fabbeccfd6ad8a2b212f948d72179b2e6321346..9d078c33d691ac512ab9e3b4824a8c84c287605f 100644 (file)
@@ -8,6 +8,7 @@ tasks:
       - qemu-kvm-block-rbd
       deb:
       - qemu-block-extra
+      - qemu-utils
 - ceph:
     fs: xfs
     conf:
index fedb3cfc5e80e213a033b137e90c644d66e22109..c5250bb906b88cf74c365935843cdee37cc555e6 100644 (file)
@@ -8,6 +8,7 @@ tasks:
       - qemu-kvm-block-rbd
       deb:
       - qemu-block-extra
+      - qemu-utils
 - ceph:
     fs: xfs
     conf:
index d4802d0cd55377e9a0e04f85e030e95f6d041fe1..b5923b285a73f9d72b77934510713fc00992eaf6 100644 (file)
@@ -164,19 +164,22 @@ 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():
+    packages = {}
+    for client, _ in config.items():
         (remote,) = ctx.cluster.only(client).remotes.keys()
         if remote.os.package_type == 'rpm':
-            block_rbd_pkg = 'qemu-kvm-block-rbd'
+            packages[client] = ['qemu-kvm-block-rbd']
         else:
-            block_rbd_pkg = 'qemu-block-extra'
-        install_package(block_rbd_pkg, remote)
+            packages[client] = ['qemu-block-extra', 'qemu-utils']
+        for pkg in packages[client]:
+            install_package(pkg, remote)
     try:
         yield
     finally:
-        for client, client_config in config.items():
+        for client, _ in config.items():
             (remote,) = ctx.cluster.only(client).remotes.keys()
-            remove_package(block_rbd_pkg, remote)
+            for pkg in packages[client]:
+                remove_package(pkg, remote)
 
 @contextlib.contextmanager
 def generate_iso(ctx, config):