On Tue, Jul 31, 2018 at 05:48:50PM +0300, Nir Soffer wrote:
> Thanks everyone for the good input on
> http://lists.nongnu.org/archive/html/qemu-block/2018-07/msg00168.html
> 
> I'm convinced that the best direction for oVirt is having NBD client instead
> of using the kernel nbd client. I think a C library would be best, but a
> python
> version is faster to implement and may be good enough for oVirt, so I'm
> starting in this direction.

I think clients in all languages are welcome, though I agree that
eventually we're going to need a C client (and not the Curl track
which I was headed down, which was the wrong direction).

> If you like to check the prototype, see:
> https://gerrit.ovirt.org/c/93384/
> 
> qemu's nbd/client.c was very helpful so far, since NBD doc
> https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md
> is not very clear.

I agree the protocol spec has evolved by accretion so that it no
longer has a coherent narrative.  Anyway some general comments on your
client in no particular order:

- Be nice if it was a separate Python library.

- It should support TCP sockets too.  In fact those are probably more
  important than Unix sockets in the bigger picture.  Is there not a
  Python "socket client" class you can subclass from which does all
  the socket machinery?

- It looks as if you're only handling fixed new-style.  Good!  Don't
  bother implementing anything else.

I would test against ‘qemu-nbd -x’ primarily, then secondarily against
nbd-server and nbdkit.  Once it interoperates with all 3 then you're
good to go :-)

> Not sure that imageio is the best place for this. Do you have a better idea
> about a better home for this library?

A separate Python library in PyPi or wherever would be my preference.
I don't know what the policy is in imageio about dependencies though.

[...]

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org

Reply via email to