[libvirt] [PATCH 2/5] Add public APIs for storage volume upload/download
Daniel P. Berrange
berrange at redhat.com
Fri Mar 18 15:17:21 UTC 2011
On Tue, Mar 15, 2011 at 10:37:01AM -0600, Eric Blake wrote:
> On 03/15/2011 06:30 AM, Daniel P. Berrange wrote:
> > New APIs are added allowing streaming of content to/from
> > storage volumes. A new API for creating volumes is also
> > added allowing the content to be provided immediately at
> > time of creation
> >
> > * include/libvirt/libvirt.h.in: Add virStorageVolUpload and
> > virStorageVolDownload, virStorageVolCreateUpload APIs
>
> I see virStorageVol{Up,Down}load, but not virStorageVolCreateUpload in
> this patch.
As per previous posting, I removed VolCreateUpload since it isn't
needed and is complex to support.
> > +++ b/src/libvirt.c
> > @@ -9059,6 +9059,126 @@ error:
> >
> >
> > /**
> > + * virStorageVolDownload:
> > + * @pool: pointer to volume to download
> > + * @stream: stream to use as output
> > + * @offset: position to start reading from
> > + * @length: limit on amount of data to download
>
> Does 0 (or UINT64_MAX) have a special meaning of read-to-end? If so,
> document that.
I've added docs about '0'
> > +
> > + if (vol->conn->flags & VIR_CONNECT_RO ||
> > + stream->conn->flags & VIR_CONNECT_RO) {
> > + virLibConnError(VIR_ERR_OPERATION_DENIED, __FUNCTION__);
> > + goto error;
> > + }
>
> Why is reading a volume prohibited on a RO connection?
The data inside a storage volume may be security sensitive. Thus
we don't want readonly users to be able to read guest disks.
> > +/**
> > + * virStorageVolUpload:
> > + * @pool: pointer to volume to download
> > + * @stream: stream to use as output
> > + * @offset: position to start writing to
> > + * @length: limit on amount of data to upload
>
> Again, is there any special meaning of length 0, or a directive to
> easily specify to end of input?
Added docs here.
> > + * @flags: flags for creation (unused, pass 0)
>
> Do we need a flag to allow for expansion of the volume if the input
> stream (and length) are larger than the current size of the volume, for
> volumes that can be expanded in size?
I prefer to keep this side-effect free. We should have a separate
API for enlarging storage, particularly since everything except
plain raw files cannot do grow-on-demand.
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list