mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-02 11:21:12 +00:00
fae0da5c13
Introduces several new public API options for migration - VIR_MIGRATE_PEER2PEER: With this flag the client only invokes the virDomainMigratePerform method, expecting the source host driver to do whatever is required to complete the entire migration process. - VIR_MIGRATE_TUNNELLED: With this flag the actual data for migration will be tunnelled over the libvirtd RPC channel. This requires that VIR_MIGRATE_PEER2PEER is also set. - virDomainMigrateToURI: This is variant of the existing virDomainMigrate method which does not require any virConnectPtr for the destination host. Given suitable driver support, this allows for all the same modes as virDomainMigrate() The URI for VIR_MIGRATE_PEER2PEER must be a valid libvirt URI. For non-p2p migration a hypervisor specific migration URI is used. virDomainMigrateToURI without a PEER2PEER flag is only support for Xen currently, and it involves XenD talking directly to XenD, no libvirtd involved at all. * include/libvirt/libvirt.h.in: Add VIR_MIGRATE_PEER2PEER flag for migration * src/libvirt_internal.h: Add feature flags for peer to peer migration (VIR_FEATURE_MIGRATE_P2P) and direct migration (VIR_MIGRATE_PEER2PEER mode) * src/libvirt.c: Implement support for VIR_MIGRATE_PEER2PEER and virDomainMigrateToURI APIs. * src/xen/xen_driver.c: Advertise support for DIRECT migration * src/xen/xend_internal.c: Add TODO item for p2p migration * src/libvirt_public.syms: Export virDomainMigrateToURI method * src/qemu/qemu_driver.c: Add support for PEER2PEER and migration, and adapt TUNNELLED migration. * tools/virsh.c: Add --p2p and --direct args and use the new virDomainMigrateToURI method where possible.
333 lines
6.6 KiB
Plaintext
333 lines
6.6 KiB
Plaintext
#
|
|
# Officially exported symbols, for which header
|
|
# file definitions are installed in /usr/include/libvirt
|
|
# either from libvirt.h and virterror.h
|
|
#
|
|
# Versions here are *fixed* to match the libvirt version
|
|
# at which the symbol was introduced. This ensures that
|
|
# a new client app requiring symbol foo() can't accidentally
|
|
# run with old libvirt.so not providing foo() - the global
|
|
# soname version info can't enforce this since we never
|
|
# change the soname
|
|
#
|
|
LIBVIRT_0.0.3 {
|
|
global:
|
|
virConnectClose;
|
|
virConnectGetType;
|
|
virConnectGetVersion;
|
|
virConnectListDomains;
|
|
virConnectNumOfDomains;
|
|
virConnectOpen;
|
|
virConnectOpenReadOnly;
|
|
|
|
virDomainCreateLinux;
|
|
virDomainDestroy;
|
|
virDomainFree;
|
|
virDomainGetID;
|
|
virDomainGetInfo;
|
|
virDomainGetMaxMemory;
|
|
virDomainGetName;
|
|
virDomainGetOSType;
|
|
virDomainGetXMLDesc;
|
|
virDomainLookupByID;
|
|
virDomainLookupByName;
|
|
virDomainRestore;
|
|
virDomainResume;
|
|
virDomainSave;
|
|
virDomainSetMaxMemory;
|
|
virDomainShutdown;
|
|
virDomainSuspend;
|
|
|
|
virGetVersion;
|
|
};
|
|
|
|
LIBVIRT_0.0.5 {
|
|
global:
|
|
virDomainLookupByUUID;
|
|
virDomainGetUUID;
|
|
} LIBVIRT_0.0.3;
|
|
|
|
LIBVIRT_0.1.0 {
|
|
global:
|
|
virInitialize;
|
|
virNodeGetInfo;
|
|
virDomainReboot;
|
|
|
|
virCopyLastError;
|
|
virConnSetErrorFunc;
|
|
virResetLastError;
|
|
virResetError;
|
|
virConnGetLastError;
|
|
virGetLastError;
|
|
virSetErrorFunc;
|
|
virConnCopyLastError;
|
|
virConnResetLastError;
|
|
virDefaultErrorFunc;
|
|
} LIBVIRT_0.0.5;
|
|
|
|
LIBVIRT_0.1.1 {
|
|
global:
|
|
virDomainLookupByUUIDString;
|
|
virDomainGetUUIDString;
|
|
virDomainSetMemory;
|
|
virDomainDefineXML;
|
|
virDomainCreate;
|
|
virDomainUndefine;
|
|
virConnectListDefinedDomains;
|
|
} LIBVIRT_0.1.0;
|
|
|
|
LIBVIRT_0.1.4 {
|
|
global:
|
|
virDomainSetVcpus;
|
|
virDomainPinVcpu;
|
|
virDomainGetVcpus;
|
|
} LIBVIRT_0.1.1;
|
|
|
|
LIBVIRT_0.1.5 {
|
|
global:
|
|
virConnectNumOfDefinedDomains;
|
|
} LIBVIRT_0.1.4;
|
|
|
|
LIBVIRT_0.1.9 {
|
|
global:
|
|
virDomainCoreDump;
|
|
virDomainAttachDevice;
|
|
virDomainDetachDevice;
|
|
} LIBVIRT_0.1.5;
|
|
|
|
LIBVIRT_0.2.0 {
|
|
global:
|
|
virConnectNumOfNetworks;
|
|
virConnectListNetworks;
|
|
virConnectNumOfDefinedNetworks;
|
|
virConnectListDefinedNetworks;
|
|
virNetworkLookupByName;
|
|
virNetworkLookupByUUID;
|
|
virNetworkLookupByUUIDString;
|
|
virNetworkCreateXML;
|
|
virNetworkDefineXML;
|
|
virNetworkUndefine;
|
|
virNetworkCreate;
|
|
virNetworkDestroy;
|
|
virNetworkFree;
|
|
virNetworkGetName;
|
|
virNetworkGetUUID;
|
|
virNetworkGetUUIDString;
|
|
virNetworkGetXMLDesc;
|
|
virNetworkGetBridgeName;
|
|
} LIBVIRT_0.1.9;
|
|
|
|
LIBVIRT_0.2.1 {
|
|
global:
|
|
virConnectGetCapabilities;
|
|
virConnectGetMaxVcpus;
|
|
virDomainGetMaxVcpus;
|
|
virDomainGetAutostart;
|
|
virDomainSetAutostart;
|
|
virNetworkGetAutostart;
|
|
virNetworkSetAutostart;
|
|
} LIBVIRT_0.2.0;
|
|
|
|
LIBVIRT_0.2.3 {
|
|
global:
|
|
virDomainGetSchedulerType;
|
|
virDomainGetSchedulerParameters;
|
|
virDomainSetSchedulerParameters;
|
|
} LIBVIRT_0.2.1;
|
|
|
|
LIBVIRT_0.3.0 {
|
|
global:
|
|
virConnectGetHostname;
|
|
virConnectGetURI;
|
|
virDomainGetConnect;
|
|
virNetworkGetConnect;
|
|
} LIBVIRT_0.2.3;
|
|
|
|
LIBVIRT_0.3.2 {
|
|
global:
|
|
virDomainMigrate;
|
|
virDomainBlockStats;
|
|
virDomainInterfaceStats;
|
|
} LIBVIRT_0.3.0;
|
|
|
|
LIBVIRT_0.3.3 {
|
|
global:
|
|
virNodeGetCellsFreeMemory;
|
|
virNodeGetFreeMemory;
|
|
} LIBVIRT_0.3.2;
|
|
|
|
LIBVIRT_0.4.0 {
|
|
global:
|
|
virConnectOpenAuth;
|
|
virConnectAuthPtrDefault;
|
|
} LIBVIRT_0.3.3;
|
|
|
|
LIBVIRT_0.4.1 {
|
|
global:
|
|
virStoragePoolGetConnect;
|
|
virConnectNumOfStoragePools;
|
|
virConnectNumOfDefinedStoragePools;
|
|
virConnectListStoragePools;
|
|
virConnectListDefinedStoragePools;
|
|
virStoragePoolLookupByName;
|
|
virStoragePoolLookupByUUID;
|
|
virStoragePoolLookupByUUIDString;
|
|
virStoragePoolLookupByVolume;
|
|
virStoragePoolCreateXML;
|
|
virStoragePoolDefineXML;
|
|
virStoragePoolUndefine;
|
|
virStoragePoolCreate;
|
|
virStoragePoolBuild;
|
|
virStoragePoolDestroy;
|
|
virStoragePoolDelete;
|
|
virStoragePoolRefresh;
|
|
virStoragePoolFree;
|
|
virStoragePoolGetName;
|
|
virStoragePoolGetUUID;
|
|
virStoragePoolGetUUIDString;
|
|
virStoragePoolGetInfo;
|
|
virStoragePoolGetXMLDesc;
|
|
virStoragePoolSetAutostart;
|
|
virStoragePoolGetAutostart;
|
|
virStoragePoolNumOfVolumes;
|
|
virStoragePoolListVolumes;
|
|
|
|
virStorageVolGetConnect;
|
|
virStorageVolLookupByName;
|
|
virStorageVolLookupByKey;
|
|
virStorageVolLookupByPath;
|
|
virStorageVolCreateXML;
|
|
virStorageVolDelete;
|
|
virStorageVolFree;
|
|
virStorageVolGetName;
|
|
virStorageVolGetKey;
|
|
virStorageVolGetInfo;
|
|
virStorageVolGetXMLDesc;
|
|
virStorageVolGetPath;
|
|
} LIBVIRT_0.4.0;
|
|
|
|
LIBVIRT_0.4.2 {
|
|
global:
|
|
virDomainBlockPeek;
|
|
virDomainMemoryPeek;
|
|
} LIBVIRT_0.4.1;
|
|
|
|
LIBVIRT_0.4.5 {
|
|
global:
|
|
virConnectFindStoragePoolSources;
|
|
} LIBVIRT_0.4.2;
|
|
|
|
LIBVIRT_0.5.0 {
|
|
global:
|
|
virDomainCreateXML;
|
|
virEventRegisterImpl;
|
|
virConnectDomainEventRegister;
|
|
virConnectDomainEventDeregister;
|
|
|
|
virNodeNumOfDevices;
|
|
virNodeListDevices;
|
|
virNodeDeviceLookupByName;
|
|
virNodeDeviceFree;
|
|
virNodeDeviceGetXMLDesc;
|
|
virNodeDeviceGetName;
|
|
virNodeDeviceGetParent;
|
|
virNodeDeviceNumOfCaps;
|
|
virNodeDeviceListCaps;
|
|
|
|
} LIBVIRT_0.4.5;
|
|
|
|
LIBVIRT_0.6.0 {
|
|
global:
|
|
virConnectRef;
|
|
virDomainRef;
|
|
virNetworkRef;
|
|
virStoragePoolRef;
|
|
virStorageVolRef;
|
|
virNodeDeviceRef;
|
|
|
|
} LIBVIRT_0.5.0;
|
|
|
|
LIBVIRT_0.6.1 {
|
|
global:
|
|
virFreeError;
|
|
virSaveLastError;
|
|
virNodeDeviceDettach;
|
|
virNodeDeviceReAttach;
|
|
virNodeDeviceReset;
|
|
virDomainGetSecurityLabel;
|
|
virNodeGetSecurityModel;
|
|
} LIBVIRT_0.6.0;
|
|
|
|
LIBVIRT_0.6.3 {
|
|
global:
|
|
virNodeDeviceCreateXML;
|
|
virNodeDeviceDestroy;
|
|
} LIBVIRT_0.6.1;
|
|
|
|
LIBVIRT_0.6.4 {
|
|
global:
|
|
virInterfaceGetConnect;
|
|
virConnectNumOfInterfaces;
|
|
virConnectListInterfaces;
|
|
virInterfaceLookupByName;
|
|
virInterfaceLookupByMACString;
|
|
virInterfaceGetName;
|
|
virInterfaceGetMACString;
|
|
virInterfaceGetXMLDesc;
|
|
virInterfaceRef;
|
|
virInterfaceFree;
|
|
virInterfaceDefineXML;
|
|
virInterfaceUndefine;
|
|
virInterfaceCreate;
|
|
virInterfaceDestroy;
|
|
virStorageVolCreateXMLFrom;
|
|
virConnectDomainXMLFromNative;
|
|
virConnectDomainXMLToNative;
|
|
} LIBVIRT_0.6.3;
|
|
|
|
LIBVIRT_0.7.0 {
|
|
global:
|
|
virConnectNumOfDefinedInterfaces;
|
|
virConnectListDefinedInterfaces;
|
|
} LIBVIRT_0.6.4;
|
|
|
|
LIBVIRT_0.7.1 {
|
|
global:
|
|
virSecretGetConnect;
|
|
virConnectNumOfSecrets;
|
|
virConnectListSecrets;
|
|
virSecretLookupByUUID;
|
|
virSecretLookupByUUIDString;
|
|
virSecretLookupByUsage;
|
|
virSecretDefineXML;
|
|
virSecretGetUUID;
|
|
virSecretGetUUIDString;
|
|
virSecretGetUsageType;
|
|
virSecretGetUsageID;
|
|
virSecretGetXMLDesc;
|
|
virSecretSetValue;
|
|
virSecretGetValue;
|
|
virSecretUndefine;
|
|
virSecretRef;
|
|
virSecretFree;
|
|
} LIBVIRT_0.7.0;
|
|
|
|
LIBVIRT_0.7.2 {
|
|
global:
|
|
virStreamNew;
|
|
virStreamRef;
|
|
virStreamSend;
|
|
virStreamRecv;
|
|
virStreamSendAll;
|
|
virStreamRecvAll;
|
|
virStreamEventAddCallback;
|
|
virStreamEventUpdateCallback;
|
|
virStreamEventRemoveCallback;
|
|
virStreamFinish;
|
|
virStreamAbort;
|
|
virStreamFree;
|
|
virDomainMigrateToURI;
|
|
} LIBVIRT_0.7.1;
|
|
|
|
# .... define new API here using predicted next version number ....
|