On 7/21/20 12:46 PM, Eric Blake wrote:
> (2) The --run option no longer sets $exportname (to -e) nor puts
the
> export name into the $uri. However this was always the wrong
> thing to do since export names are per connection, not per server.
> Existing --run scripts will see $exportname expand to "" which is
> most likely what they saw before and overwhelmingly more likely to
> be correct than if the -e option had been used.
>
The more I think about it, the more I disagree with disabling this. Or,
put another way, I think that the _only_ time -e makes sense is _when_
you are using --run. Consider:
nbdkit -U - -e foo info --run 'nbdsh -u $uri -c "print(h.pread(3, 0))"'
nbdkit -U - -e bar info --run 'nbdsh -u $uri -c "print(h.pread(3, 0))"'
Of course, you can accomplish the same with:
nbdkit -U - info --run 'nbdsh -u nbd+unix:///foo\?socket=$unixsocket \
-c "print(h.pread(3, 0))"'
but that's a lot more painful to write.
We _don't_ need to advertise 'foo' or 'bar' over NBD_OPT_INFO (at
least,
not for plugins that don't implement the forthcoming .export_list
callback), but _do_ need a way for the captive application (nbdsh in
this case) to know _which_ export the captive should connect to.
And, if we reinstate _just_ that usage of -e,...
> (4) I have temporarily disabled tests/test-long-name.sh. This
is
> still a valid test, but we will have to rewrite it to use
> (probably) sh or eval plugins once we have an implementation of
> list_exports.
> ---
...we may not have to disable this test after all.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org