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__)
]
)
+@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"""
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),
])