interface: new public API for network config change transactions

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.
This commit is contained in:
Michal Privoznik 2011-05-05 11:21:41 +02:00 committed by Laine Stump
parent 89fcf6f3f0
commit ba0b5934b3
2 changed files with 10 additions and 0 deletions

View File

@ -1424,6 +1424,13 @@ int virInterfaceDestroy (virInterfacePtr iface,
int virInterfaceRef (virInterfacePtr iface); int virInterfaceRef (virInterfacePtr iface);
int virInterfaceFree (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: * virStoragePool:
* *

View File

@ -444,6 +444,9 @@ LIBVIRT_0.9.2 {
virDomainSetSchedulerParametersFlags; virDomainSetSchedulerParametersFlags;
virDomainMigrate2; virDomainMigrate2;
virDomainMigrateToURI2; virDomainMigrateToURI2;
virInterfaceChangeBegin;
virInterfaceChangeCommit;
virInterfaceChangeRollback;
} LIBVIRT_0.9.0; } LIBVIRT_0.9.0;
# .... define new API here using predicted next version number .... # .... define new API here using predicted next version number ....