Am 06.11.2019 um 20:25 hat Eric Blake geschrieben: > On 11/6/19 6:51 AM, Max Reitz wrote: > > On 17.10.19 15:01, Kevin Wolf wrote: > > > Add a --nbd-server option to qemu-storage-daemon to start the built-in > > > NBD server right away. It maps the arguments for nbd-server-start to the > > > command line. > > > > Well, it doesn’t quite, because nbd-server-start takes a > > SocketAddressLegacy, and this takes a SocketAddress. > > > > On one hand I can understand why you would do it differently (especially > > for command-line options), but on the other I find it a bit problematic > > to have --nbd-server be slightly different from nbd-server-start when > > both are intended to be the same. > > > > My biggest problem though lies in the duplication in the QAPI schema. > > If NbdServerOptions.addr were a SocketAddressLegacy, we could let > > nbd-server-start’s options just be of type NbdServerOptions and thus get > > rid of the duplication. > > I would love to somehow deprecate the use of SocketAddressLegacy and get QMP > nbd-server-start to accept SocketAddress instead. Maybe it could be done by > adding a new nbd-server-begin command in 5.0 with a saner wire layout, and > deprecating nbd-server-start at that time; by the 5.2 release, we could then > drop nbd-server-start. But we're too late for 4.2.
As a replacement nbd-server-add, I envisioned adding something like a block-export-add, which would work the way that --export already does. It would also come with query-block-exports and block-export-del, and it wouldn't contain only NBD devices, but also vhost-user, FUSE, etc. exports. Now I'm wondering if the same would make sense for nbd-server-start. Maybe an API change would even allow us to start multiple NBD servers (e.g. listening on different IP addresses or using different tls-creds). Kevin