On Thu, Jul 09, 2020 at 01:51:44AM +0300, Nir Soffer wrote:
We can use now ImageioClient to communicate with ovirt-imageio
server
on oVirt host.
Using the client greatly simplifies the plugin, and enables new features
like transparent proxy support. The client will use transfer_url if
possible, or fall back to proxy_url.
Since the client implements the buffer protocol, move to version 2 of
the API for more efficient pread().
This will require nbdkit >= 1.17.3 which implies RHEL AV 8.3.0, but
that's fine since we only ship the new virt-v2v (>= 1.42) on AV 8.3.0.
Another advantage the client is maintained by oVirt, and fixes are
delivered quickly in oVirt, without depending on RHEL release schedule.
Not ready yet, we have several issues:
- The client does not support "http", so the tests will fail now. This
is good since we should test with real imageio server. I will work on
better tests later.
I think having standalone tests is still worthwhile as it's the only
way that the plugin gets tested on a regular basis. IIRC at the
moment we only test against a faked ovirt SDK. I guess this would be
easy to adjust?
To unit test against a real imageio server is difficult I think: These
tests would need to run in Fedora with minimal large dependencies. We
might create a fake web server like the one we use in nbdkit:
https://github.com/libguestfs/nbdkit/blob/master/tests/web-server.h
https://github.com/libguestfs/nbdkit/blob/master/tests/web-server.c
This only supports http but we could put stunnel in front to provide
https.
- Need to require ovirt-imageio-client, providing the client library.
That's a simple change in virt-v2v packaging. I don't see this
package in Fedora Koji. In RHEL I can see the package and the
dependencies look quite light, basically just Python and python3-six.
Why is it only available for x86_64 and ppc64le?
- params['rhv_direct'] is ignored, we always try direct
transfer now.
We should drop it from the OCaml code?
[...]
-# Modify http.client.HTTPConnection to work over a Unix domain
socket.
-# Derived from uhttplib written by Erik van Zijst under an MIT license.
-# (
https://pypi.org/project/uhttplib/)
-# Ported to Python 3 by Irit Goihman.
-
-
-class UnixHTTPConnection(HTTPConnection):
Why drop this part?
Rest of the patch looks good and as you say above both simplifies and
improves performance.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html