Hi Eric, On Fri, Oct 28, 2016 at 7:44 AM, Eric Blake <ebl...@redhat.com> wrote: > On 10/28/2016 02:44 AM, Ashish Mittal wrote: >> This patch adds support for a new block device type called "vxhs". >> Source code for the qnio library that this code loads can be downloaded from: >> https://github.com/MittalAshish/libqnio.git >> >> Sample command line using the JSON syntax: >> ./qemu-system-x86_64 -name instance-00000008 -S -vnc 0.0.0.0:0 -k en-us >> -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 >> -msg timestamp=on >> 'json:{"driver":"vxhs","vdisk_id":"{c3e9095a-a5ee-4dce-afeb-2a59fb387410}", >> "server":{"host":"172.172.17.4","port":"9999"}}' > > Are the {} really part of vdisk_id? That's not a usual portion of a > UUID. And it should probably be spelled vdisk-id. >
The {} are not required for qemu/libqnio or the test server. It is just some artifact that our openstack components need. Then test server does not need {} at all. I will remove it from the sample command syntax in v4. > It's a shame that port is a string and not an int, but it matches > existing practice, so that part is correct. > >> >> Sample command line using the URI syntax: >> qemu-img convert -f raw -O raw -n >> /var/lib/nova/instances/_base/0c5eacd5ebea5ed914b6a3e7b18f1ce734c386ad >> vxhs://192.168.0.1:9999/%7Bc6718f6b-0401-441d-a8c3-1f0064d75ee0%7D >> > > The URI syntax is potentially harder to use when compared to structured > usage (Kevin's work to add -blockdev, which depends on the QAPI definition). > We decided to keep both after discussion with other reviewers. Do qemu-img and qemu-io binaries support json syntax similar to qemu-system-x86_64? >> Signed-off-by: Ashish Mittal <ashish.mit...@veritas.com> >> --- >> v3 changelog: >> (1) Added QAPI schema for the VxHS driver. >> > > For this email, I'm focusing just on the QAPI. > >> +++ b/qapi/block-core.json >> @@ -1708,7 +1708,7 @@ >> ## >> { 'enum': 'BlockdevDriver', >> 'data': [ 'archipelago', 'blkdebug', 'blkverify', 'bochs', 'cloop', >> - 'dmg', 'file', 'ftp', 'ftps', 'gluster', 'host_cdrom', >> + 'dmg', 'file', 'ftp', 'ftps', 'gluster', 'host_cdrom', 'vxhs', >> 'host_device', 'http', 'https', 'luks', 'null-aio', 'null-co', > > Missing mention of the new enum value in the comments above. > Will fix in v4. >> 'parallels', 'qcow', 'qcow2', 'qed', 'quorum', 'raw', >> 'replication', 'tftp', 'vdi', 'vhdx', 'vmdk', 'vpc', 'vvfat' ] } >> @@ -2220,6 +2220,21 @@ >> 'data': { 'filename': 'str' } } >> >> ## >> +# @BlockdevOptionsVxHS >> +# >> +# Driver specific block device options for VxHS >> +# >> +# @vdisk_id: UUID of VxHS volume > > Again, this should be vdisk-id. > Will fix in v4. >> +# >> +# @server: vxhs server IP, port >> +# >> +# Since: 2.7 > > You missed 2.7; this should be 2.8 (if you make soft freeze) or even 2.9. > Will fix in v4. >> +## >> +{ 'struct': 'BlockdevOptionsVxHS', >> + 'data': { 'vdisk_id': 'str', >> + 'server': 'InetSocketAddress' } } > > Is there any way to use a Unix socket, or is this server ONLY accessible > over IPv4/IPv6? > Right now we support IPv4 only. > >> + >> +## >> # @BlockdevOptions >> # >> # Options for creating a block device. Many options are available for all >> @@ -2283,7 +2298,8 @@ >> 'vhdx': 'BlockdevOptionsGenericFormat', >> 'vmdk': 'BlockdevOptionsGenericCOWFormat', >> 'vpc': 'BlockdevOptionsGenericFormat', >> - 'vvfat': 'BlockdevOptionsVVFAT' >> + 'vvfat': 'BlockdevOptionsVVFAT', >> + 'vxhs': 'BlockdevOptionsVxHS' >> } } >> >> ## >> > > -- > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org >