diff --git a/shared/cfg/guest-hw.cfg b/shared/cfg/guest-hw.cfg index 3756ae00aa4a20d6a1fdaaedcc2a8b4ccd2a7c4f..ce16cd17f4a772be72ed27394e2107fa7aad4c7e 100644 --- a/shared/cfg/guest-hw.cfg +++ b/shared/cfg/guest-hw.cfg @@ -272,6 +272,9 @@ variants image_backend: # On an unexpected disconnect, the nbd client tries to connect again # until succeeding or encountering a serious error, optional #nbd_reconnect_delay = + # The qcow2 persistent bitmap name, expose that bitmap via the "qemu:dirty-bitmap:name", + # used for qemu-nbd, optional + #nbd_export_bitmap = - libcurl: storage_type = curl enable_curl = yes diff --git a/virttest/nbd.py b/virttest/nbd.py index c3fd9852a64b4f89857c69b637277bcbcec54e44..d1e91f2a056d066dcc880c8f4a1de24e45b8b6a3 100644 --- a/virttest/nbd.py +++ b/virttest/nbd.py @@ -55,10 +55,11 @@ def export_image(qemu_nbd, filename, local_image, params): "unix_socket": "", "filename": "", "fork": "--fork", - "pid_file": "" + "pid_file": "", + "bitmap": "" } export_cmd = ('{secret_object} {tls_creds} ' - '{export_format} {persistent} {desc} {port} ' + '{export_format} {persistent} {desc} {port} {bitmap} ' '{export_name} {fork} {pid_file} {unix_socket} {filename}') pid_file = utils_misc.generate_tmp_file_name('%s_nbd_server' % local_image, @@ -105,6 +106,9 @@ def export_image(qemu_nbd, filename, local_image, params): tls_creds=params['nbd_server_tls_creds'] ) + if params.get('nbd_export_bitmap'): + cmd_dict['bitmap'] = '-B %s' % params['nbd_export_bitmap'] + qemu_nbd_pid = None cmdline = qemu_nbd + ' ' + string.Formatter().format(export_cmd, **cmd_dict)