[libvirt] [PATCHv4 1/7] interface: new public API for network config change transactions
Daniel P. Berrange
berrange at redhat.com
Fri May 27 13:07:58 UTC 2011
On Thu, May 26, 2011 at 12:17:39PM -0400, Laine Stump wrote:
> From: Michal Privoznik <mprivozn at redhat.com>
>
> No change from previously ACKed patch.
>
> This is the API agreed on in:
>
> https://www.redhat.com/archives/libvir-list/2011-May/msg00026.html
>
> (with a slight name change to use "...begin" rather than
> "...start"). This implements transactional changes to the host network
> config. When a transaction is begun with ncf_change_begin(), all other
> netcf APIs will continue to work as they always have, but a snapshot
> of the existing config will be taken, allowing reversion (rollback,
> using ncf_change_rollback()) to the exact state of config at the time
> ncf_change_begin() was called. Alternately, if it's determined that
> the new changes are acceptable, ncf_change_commit() can be called,
> which will eliminate the snapshot and make the changes permanent.
>
> As a failsafe measure, if neither ncf_change_commit() or
> ncf_change_rollback() is called by the next time the system reboots,
> the netcf-transaction initscript will be automatically called to
> rollback the changes.
> ---
> include/libvirt/libvirt.h.in | 7 +++++++
> src/libvirt_public.syms | 3 +++
> 2 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
> index 7cd6e13..4a45390 100644
> --- a/include/libvirt/libvirt.h.in
> +++ b/include/libvirt/libvirt.h.in
> @@ -1405,6 +1405,13 @@ int virInterfaceDestroy (virInterfacePtr iface,
> int virInterfaceRef (virInterfacePtr iface);
> int virInterfaceFree (virInterfacePtr iface);
>
> +int virInterfaceChangeBegin (virConnectPtr conn,
> + unsigned int flags);
> +int virInterfaceChangeCommit (virConnectPtr conn,
> + unsigned int flags);
> +int virInterfaceChangeRollback(virConnectPtr conn,
> + unsigned int flags);
> +
> /**
> * virStoragePool:
> *
> diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
> index 0590535..f4f8262 100644
> --- a/src/libvirt_public.syms
> +++ b/src/libvirt_public.syms
> @@ -442,6 +442,9 @@ LIBVIRT_0.9.2 {
> virDomainInjectNMI;
> virDomainScreenshot;
> virDomainSetSchedulerParametersFlags;
> + virInterfaceChangeBegin;
> + virInterfaceChangeCommit;
> + virInterfaceChangeRollback;
> } LIBVIRT_0.9.0;
>
> # .... define new API here using predicted next version number ....
ACK
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