<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 6, 2020 at 7:58 PM Peter Krempa <<a href="mailto:pkrempa@redhat.com" target="_blank">pkrempa@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Aug 06, 2020 at 19:41:44 +0800, Han Han wrote:<br>
> Ceph Nautilus supports separate image namespaces within a pool for<br>
> tenant isolation and QEMU added it as a rbd blockdev options from 5.0.0.<br>
> This optional attribute is used to access a image with namespace.<br>
> <br>
> Add unit tests for this attribute.<br>
> <br>
> <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1816909" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1816909</a><br>
> <br>
> Signed-off-by: Han Han <<a href="mailto:hhan@redhat.com" target="_blank">hhan@redhat.com</a>><br>
> ---<br>
>  src/qemu/qemu_block.c                         |  1 +<br>
>  src/qemu/qemu_command.c                       |  7 +++-<br>
>  ...k-network-rbd-namespace.x86_64-latest.args | 41 +++++++++++++++++++<br>
>  .../disk-network-rbd-namespace.xml            | 33 +++++++++++++++<br>
>  tests/qemuxml2argvtest.c                      |  1 +<br>
>  ...sk-network-rbd-namespace.x86_64-latest.xml | 41 +++++++++++++++++++<br>
>  tests/qemuxml2xmltest.c                       |  1 +<br>
>  7 files changed, 124 insertions(+), 1 deletion(-)<br>
>  create mode 100644 tests/qemuxml2argvdata/disk-network-rbd-namespace.x86_64-latest.args<br>
>  create mode 100644 tests/qemuxml2argvdata/disk-network-rbd-namespace.xml<br>
>  create mode 100644 tests/qemuxml2xmloutdata/disk-network-rbd-namespace.x86_64-latest.xml<br>
<br>
[...]<br>
<br>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c<br>
> index 01812cd39b..b6288d1308 100644<br>
> --- a/src/qemu/qemu_command.c<br>
> +++ b/src/qemu/qemu_command.c<br>
> @@ -980,7 +980,12 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src,<br>
>                  return NULL;<br>
>              }<br>
>  <br>
> -            virBufferStrcat(&buf, "rbd:", src->volume, "/", src->path, NULL);<br>
> +            virBufferStrcat(&buf, "rbd:", src->volume, "/", NULL);<br>
> +            /* The filename of image with namespace: rbd:POOL/NAMESPACE/IMAGE... */<br>
> +            if (src->namespace)<br>
> +                virBufferStrcat(&buf, src->namespace, "/", NULL);<br>
> +<br>
> +            virBufferStrcat(&buf, src->path, NULL);<br>
>  <br>
<br>
This is dead code now. qemu-5.0 will be started with -blockdev only.<br>
<br></blockquote><div>So libvirt will not confirm the functional correctness when -blockdev is disabled by <qemu:commandline></div><div>in qemu 5.0 or after, right?<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
>              if (src->snapshot)<br>
>                  virBufferEscape(&buf, '\\', ":", "@%s", src->snapshot);<br>
<br>
[...]<br>
<br>
> diff --git a/tests/qemuxml2argvdata/disk-network-rbd-namespace.xml b/tests/qemuxml2argvdata/disk-network-rbd-namespace.xml<br>
> new file mode 100644<br>
> index 0000000000..8b526c4a20<br>
> --- /dev/null<br>
> +++ b/tests/qemuxml2argvdata/disk-network-rbd-namespace.xml<br>
> @@ -0,0 +1,33 @@<br>
> +<domain type='qemu'><br>
> +  <name>QEMUGuest1</name><br>
> +  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid><br>
> +  <memory unit='KiB'>219136</memory><br>
> +  <currentMemory unit='KiB'>219136</currentMemory><br>
> +  <vcpu placement='static'>1</vcpu><br>
> +  <os><br>
> +    <type arch='x86_64' machine='pc'>hvm</type><br>
> +    <boot dev='hd'/><br>
> +  </os><br>
> +  <clock offset='utc'/><br>
> +  <on_poweroff>destroy</on_poweroff><br>
> +  <on_reboot>restart</on_reboot><br>
> +  <on_crash>destroy</on_crash><br>
> +  <devices><br>
> +    <emulator>/usr/bin/qemu-system-x86_64</emulator><br>
> +    <disk type='network' device='disk'><br>
> +      <driver name='qemu' type='raw'/><br>
> +      <source protocol='rbd' name='pool/image' namespace='ns'><br>
> +        <host name='<a href="http://mon1.example.org" rel="noreferrer" target="_blank">mon1.example.org</a>' port='6321'/><br>
> +        <host name='<a href="http://mon2.example.org" rel="noreferrer" target="_blank">mon2.example.org</a>' port='6322'/><br>
> +        <host name='<a href="http://mon3.example.org" rel="noreferrer" target="_blank">mon3.example.org</a>' port='6322'/><br>
> +      </source><br>
> +      <target dev='vda' bus='virtio'/><br>
> +    </disk><br>
> +    <controller type='usb' index='0'/><br>
> +    <controller type='ide' index='0'/><br>
> +    <controller type='pci' index='0' model='pci-root'/><br>
> +    <input type='mouse' bus='ps2'/><br>
> +    <input type='keyboard' bus='ps2'/><br>
> +    <memballoon model='none'/><br>
> +  </devices><br>
> +</domain><br>
<br>
virschematest fails after adding this file in this patch. You must add<br>
the RNG schema prior to any file using it as we invoke the schema test<br>
on all example files.<br>
<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Best regards,</div><div dir="ltr">-----------------------------------<br></div><div dir="ltr">Han Han<br>Senior Quality Engineer<br>Redhat.<br><br>Email: <a href="mailto:hhan@redhat.com" target="_blank">hhan@redhat.com</a><br>Phone: +861065339333<br></div></div></div></div></div></div></div>