diff options
author | Eric Blake <eblake@redhat.com> | 2012-01-31 21:19:51 -0700 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2012-02-01 15:21:56 -0700 |
commit | 99fd69c3dea9728e21b9dcc668290a75be3efc48 (patch) | |
tree | a69a46f115df596a46eee30a62f178af4be95552 /docs | |
parent | qemu: Add support for virDomainGetMetadata and virDomainSetMetadata (diff) | |
download | libvirt-99fd69c3dea9728e21b9dcc668290a75be3efc48.tar.gz libvirt-99fd69c3dea9728e21b9dcc668290a75be3efc48.tar.bz2 libvirt-99fd69c3dea9728e21b9dcc668290a75be3efc48.zip |
block rebase: add new API virDomainBlockRebase
Qemu is adding the ability to do a partial rebase. That is, given:
base <- intermediate <- current
virDomainBlockPull will produce:
current
but qemu now has the ability to leave base in the chain, to produce:
base <- current
Note that current qemu can only do a forward merge, and only with
the current image as the destination, which is fully described by
this API without flags. But in the future, it may be possible to
enhance this API for additional scenarios by using flags:
Merging the current image back into a previous image (that is,
undoing a live snapshot), could be done by passing base as the
destination and flags with a bit requesting a backward merge.
Merging any other part of the image chain, whether forwards (the
backing image contents are pulled into the newer file) or backwards
(the deltas recorded in the newer file are merged back into the
backing file), could also be done by passing a new flag that says
that base should be treated as an XML snippet rather than an
absolute path name, where the XML could then supply the additional
instructions of which part of the image chain is being merged into
any other part.
* include/libvirt/libvirt.h.in (virDomainBlockRebase): New
declaration.
* src/libvirt.c (virDomainBlockRebase): Implement it.
* src/libvirt_public.syms (LIBVIRT_0.9.10): Export it.
* src/driver.h (virDrvDomainBlockRebase): New driver callback.
* src/rpc/gendispatch.pl (long_legacy): Add exemption.
* docs/apibuild.py (long_legacy_functions): Likewise.
Diffstat (limited to 'docs')
-rwxr-xr-x | docs/apibuild.py | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/docs/apibuild.py b/docs/apibuild.py index c8b5994d7..1ac0281f0 100755 --- a/docs/apibuild.py +++ b/docs/apibuild.py @@ -1649,6 +1649,7 @@ class CParser: "virDomainSetMemoryFlags" : (False, ("memory")), "virDomainBlockJobSetSpeed" : (False, ("bandwidth")), "virDomainBlockPull" : (False, ("bandwidth")), + "virDomainBlockRebase" : (False, ("bandwidth")), "virDomainMigrateGetMaxSpeed" : (False, ("bandwidth")) } def checkLongLegacyFunction(self, name, return_type, signature): |