On Wed, May 30, 2018 at 11:58 AM Richard W.M. Jones <rjones@redhat.com> wrote:
On Wed, May 30, 2018 at 12:11:21AM +0300, Nir Soffer wrote:
> Exporting images or ova files:
>
> image in any format -> qemu-img -> [qcow2 byte stream] -> imageio http
> server -> http client

You can do this with nbdkit + plugin, it's exactly what we do today
for virt-v2v:

https://github.com/libguestfs/libguestfs/blob/master/v2v/rhv-upload-plugin.py

This is not the flow we are looking for. We need a way to read qcow2 data
from a pipe.

> Importing images or ova files:
>
> http client -> imageio http server -> [qcow2 byte stream] -> qemu-img ->
> image in any format

Also could be done with nbdkit + plugin, basically the reverse of the
above.

> > If you can create a tar file that reserves space for the image file
> > without actually writing it, a possible workaround today would be using
> > the offset/size runtime options of the raw driver to convert directly
> > into a region inside the tar archive.
> >
>
> What are the offset/size runtime options? I cannot find anything about
> them in man qemu-img.

See:
https://github.com/libguestfs/libguestfs/blob/dd162d2cd56a2ecf4bcd40a7f463940eaac875b8/v2v/input_ova.ml#L161

But in any case you can just use the nbdkit tar plugin which already
does all of this.

Can it work with a tar stream read from stdin, or it requires a tar file?

Nir