2009-01-05 14:05:29 +00:00
|
|
|
#
|
|
|
|
# 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;
|
|
|
|
|
2009-01-20 12:14:03 +00:00
|
|
|
LIBVIRT_0.6.0 {
|
|
|
|
global:
|
|
|
|
virConnectRef;
|
|
|
|
virDomainRef;
|
|
|
|
virNetworkRef;
|
|
|
|
virStoragePoolRef;
|
|
|
|
virStorageVolRef;
|
|
|
|
virNodeDeviceRef;
|
|
|
|
|
|
|
|
} LIBVIRT_0.5.0;
|
|
|
|
|
2009-02-09 14:16:23 +00:00
|
|
|
LIBVIRT_0.6.1 {
|
|
|
|
global:
|
|
|
|
virFreeError;
|
|
|
|
virSaveLastError;
|
2009-03-02 16:25:13 +00:00
|
|
|
virNodeDeviceDettach;
|
|
|
|
virNodeDeviceReAttach;
|
|
|
|
virNodeDeviceReset;
|
2009-03-03 09:09:00 +00:00
|
|
|
virDomainGetSecurityLabel;
|
|
|
|
virNodeGetSecurityModel;
|
2009-02-09 14:16:23 +00:00
|
|
|
} LIBVIRT_0.6.0;
|
|
|
|
|
2009-04-24 13:11:23 +00:00
|
|
|
LIBVIRT_0.6.3 {
|
|
|
|
global:
|
|
|
|
virNodeDeviceCreateXML;
|
|
|
|
virNodeDeviceDestroy;
|
|
|
|
} LIBVIRT_0.6.1;
|
|
|
|
|
2009-05-12 20:10:50 +00:00
|
|
|
LIBVIRT_0.6.4 {
|
|
|
|
global:
|
2009-05-20 14:26:49 +00:00
|
|
|
virInterfaceGetConnect;
|
|
|
|
virConnectNumOfInterfaces;
|
|
|
|
virConnectListInterfaces;
|
|
|
|
virInterfaceLookupByName;
|
|
|
|
virInterfaceLookupByMACString;
|
|
|
|
virInterfaceGetName;
|
|
|
|
virInterfaceGetMACString;
|
|
|
|
virInterfaceGetXMLDesc;
|
|
|
|
virInterfaceRef;
|
|
|
|
virInterfaceFree;
|
|
|
|
virInterfaceDefineXML;
|
|
|
|
virInterfaceUndefine;
|
|
|
|
virInterfaceCreate;
|
|
|
|
virInterfaceDestroy;
|
2009-05-12 20:10:50 +00:00
|
|
|
virStorageVolCreateXMLFrom;
|
2009-05-21 13:46:35 +00:00
|
|
|
virConnectDomainXMLFromNative;
|
|
|
|
virConnectDomainXMLToNative;
|
2009-05-12 20:10:50 +00:00
|
|
|
} LIBVIRT_0.6.3;
|
2009-05-21 13:46:35 +00:00
|
|
|
|
2009-07-16 15:49:50 +00:00
|
|
|
LIBVIRT_0.7.0 {
|
|
|
|
global:
|
|
|
|
virConnectNumOfDefinedInterfaces;
|
|
|
|
virConnectListDefinedInterfaces;
|
|
|
|
} LIBVIRT_0.6.4;
|
|
|
|
|
2009-07-28 00:39:48 +00:00
|
|
|
LIBVIRT_0.7.1 {
|
|
|
|
global:
|
|
|
|
virSecretGetConnect;
|
|
|
|
virConnectNumOfSecrets;
|
|
|
|
virConnectListSecrets;
|
Fix UUID handling in secrets/storage encryption APIs
Convert all the secret/storage encryption APIs / wire format to
handle UUIDs in raw format instead of non-canonical printable
format. Guarentees data format correctness.
* docs/schemas/storageencryption.rng: Make UUID mandatory for a secret
and validate fully
* docs/schemas/secret.rng: Fully validate UUID
* include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add
virSecretLookupByUUID and virSecretGetUUID. Make
virSecretGetUUIDString follow normal API design pattern
* python/generator.py: Skip generation of virSecretGetUUID,
virSecretGetUUIDString and virSecretLookupByUUID
* python/libvir.c, python/libvirt-python-api.xml: Manual impl
of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID
* qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/
Fix get_nonnull_secret/make_nonnull_secret to use unsigned char
* qemud/remote_protocol.x: Fix remote_nonnull_secret to use a
remote_uuid instead of remote_nonnull_string for UUID field.
Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to
REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an
remote_uuid value
* qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
* src/datatypes.h, src/datatypes.c: Store UUID in raw format instead
of printable. Change virGetSecret to use raw format UUID
* src/driver.h: Rename virDrvSecretLookupByUUIDString to
virDrvSecretLookupByUUID and use raw format UUID
* src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID
and re-implement virSecretLookupByUUIDString and
virSecretGetUUIDString in terms of those
* src/libvirt_public.syms: Add virSecretLookupByUUID and
virSecretGetUUID
* src/remote_internal.c: Rename remoteSecretLookupByUUIDString
to remoteSecretLookupByUUID. Fix typo in args for
remoteSecretDefineXML impl. Use raw UUID format for
get_nonnull_secret and make_nonnull_secret
* src/storage_encryption_conf.c, src/storage_encryption_conf.h:
Storage UUID in raw format, and require it to be present in
XML. Use UUID parser to validate.
* secret_conf.h, secret_conf.c: Generate a UUID if none is provided.
Storage UUID in raw format.
* src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets
in a filed with printable UUID, instead of base64 UUID.
* src/virsh.c: Adjust for changed public API contract of
virSecretGetUUIDString.
* src/storage_Backend.c: DOn't undefine secret we just generated
upon successful volume creation. Fix to handle raw UUIDs. Generate
a non-clashing UUID
* src/qemu_driver.c: Change to use lookupByUUID instead of
lookupByUUIDString
2009-09-10 16:44:12 +00:00
|
|
|
virSecretLookupByUUID;
|
2009-07-28 00:39:48 +00:00
|
|
|
virSecretLookupByUUIDString;
|
Add usage type/id as a public API property of virSecret
* include/libvirt/libvirt.h, include/libvirt/libvirt.h.in: Add
virSecretGetUsageType, virSecretGetUsageID and virLookupSecretByUsage
* python/generator.py: Mark virSecretGetUsageType, virSecretGetUsageID
as not throwing exceptions
* qemud/remote.c: Implement dispatch for virLookupSecretByUsage
* qemud/remote_protocol.x: Add usage type & ID as attributes of
remote_nonnull_secret. Add RPC calls for new public APIs
* qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
* src/datatypes.c, src/datatypes.h: Add usageType and usageID as
properties of virSecretPtr
* src/driver.h: Add virLookupSecretByUsage driver entry point
* src/libvirt.c: Implement virSecretGetUsageType, virSecretGetUsageID
and virLookupSecretByUsage
* src/libvirt_public.syms: Export virSecretGetUsageType, virSecretGetUsageID
and virLookupSecretByUsage
* src/remote_internal.c: Implement virLookupSecretByUsage entry
* src/secret_conf.c, src/secret_conf.h: Remove the
virSecretUsageType enum, now in public API. Make volume
path mandatory when parsing XML
* src/secret_driver.c: Enforce usage uniqueness when defining secrets.
Implement virSecretLookupByUsage api method
* src/virsh.c: Include usage for secret-list command
2009-09-11 13:06:15 +00:00
|
|
|
virSecretLookupByUsage;
|
2009-07-28 00:39:48 +00:00
|
|
|
virSecretDefineXML;
|
Fix UUID handling in secrets/storage encryption APIs
Convert all the secret/storage encryption APIs / wire format to
handle UUIDs in raw format instead of non-canonical printable
format. Guarentees data format correctness.
* docs/schemas/storageencryption.rng: Make UUID mandatory for a secret
and validate fully
* docs/schemas/secret.rng: Fully validate UUID
* include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add
virSecretLookupByUUID and virSecretGetUUID. Make
virSecretGetUUIDString follow normal API design pattern
* python/generator.py: Skip generation of virSecretGetUUID,
virSecretGetUUIDString and virSecretLookupByUUID
* python/libvir.c, python/libvirt-python-api.xml: Manual impl
of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID
* qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/
Fix get_nonnull_secret/make_nonnull_secret to use unsigned char
* qemud/remote_protocol.x: Fix remote_nonnull_secret to use a
remote_uuid instead of remote_nonnull_string for UUID field.
Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to
REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an
remote_uuid value
* qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
* src/datatypes.h, src/datatypes.c: Store UUID in raw format instead
of printable. Change virGetSecret to use raw format UUID
* src/driver.h: Rename virDrvSecretLookupByUUIDString to
virDrvSecretLookupByUUID and use raw format UUID
* src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID
and re-implement virSecretLookupByUUIDString and
virSecretGetUUIDString in terms of those
* src/libvirt_public.syms: Add virSecretLookupByUUID and
virSecretGetUUID
* src/remote_internal.c: Rename remoteSecretLookupByUUIDString
to remoteSecretLookupByUUID. Fix typo in args for
remoteSecretDefineXML impl. Use raw UUID format for
get_nonnull_secret and make_nonnull_secret
* src/storage_encryption_conf.c, src/storage_encryption_conf.h:
Storage UUID in raw format, and require it to be present in
XML. Use UUID parser to validate.
* secret_conf.h, secret_conf.c: Generate a UUID if none is provided.
Storage UUID in raw format.
* src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets
in a filed with printable UUID, instead of base64 UUID.
* src/virsh.c: Adjust for changed public API contract of
virSecretGetUUIDString.
* src/storage_Backend.c: DOn't undefine secret we just generated
upon successful volume creation. Fix to handle raw UUIDs. Generate
a non-clashing UUID
* src/qemu_driver.c: Change to use lookupByUUID instead of
lookupByUUIDString
2009-09-10 16:44:12 +00:00
|
|
|
virSecretGetUUID;
|
2009-07-28 00:39:48 +00:00
|
|
|
virSecretGetUUIDString;
|
Add usage type/id as a public API property of virSecret
* include/libvirt/libvirt.h, include/libvirt/libvirt.h.in: Add
virSecretGetUsageType, virSecretGetUsageID and virLookupSecretByUsage
* python/generator.py: Mark virSecretGetUsageType, virSecretGetUsageID
as not throwing exceptions
* qemud/remote.c: Implement dispatch for virLookupSecretByUsage
* qemud/remote_protocol.x: Add usage type & ID as attributes of
remote_nonnull_secret. Add RPC calls for new public APIs
* qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
* src/datatypes.c, src/datatypes.h: Add usageType and usageID as
properties of virSecretPtr
* src/driver.h: Add virLookupSecretByUsage driver entry point
* src/libvirt.c: Implement virSecretGetUsageType, virSecretGetUsageID
and virLookupSecretByUsage
* src/libvirt_public.syms: Export virSecretGetUsageType, virSecretGetUsageID
and virLookupSecretByUsage
* src/remote_internal.c: Implement virLookupSecretByUsage entry
* src/secret_conf.c, src/secret_conf.h: Remove the
virSecretUsageType enum, now in public API. Make volume
path mandatory when parsing XML
* src/secret_driver.c: Enforce usage uniqueness when defining secrets.
Implement virSecretLookupByUsage api method
* src/virsh.c: Include usage for secret-list command
2009-09-11 13:06:15 +00:00
|
|
|
virSecretGetUsageType;
|
|
|
|
virSecretGetUsageID;
|
2009-07-28 00:39:48 +00:00
|
|
|
virSecretGetXMLDesc;
|
|
|
|
virSecretSetValue;
|
|
|
|
virSecretGetValue;
|
|
|
|
virSecretUndefine;
|
|
|
|
virSecretRef;
|
|
|
|
virSecretFree;
|
|
|
|
} LIBVIRT_0.7.0;
|
2009-09-15 12:24:51 +00:00
|
|
|
|
2009-07-10 11:18:12 +00:00
|
|
|
LIBVIRT_0.7.2 {
|
|
|
|
global:
|
|
|
|
virStreamNew;
|
|
|
|
virStreamRef;
|
|
|
|
virStreamSend;
|
|
|
|
virStreamRecv;
|
|
|
|
virStreamSendAll;
|
|
|
|
virStreamRecvAll;
|
|
|
|
virStreamEventAddCallback;
|
|
|
|
virStreamEventUpdateCallback;
|
|
|
|
virStreamEventRemoveCallback;
|
|
|
|
virStreamFinish;
|
|
|
|
virStreamAbort;
|
|
|
|
virStreamFree;
|
2009-09-17 17:10:04 +00:00
|
|
|
virDomainMigrateToURI;
|
2009-07-10 11:18:12 +00:00
|
|
|
} LIBVIRT_0.7.1;
|
|
|
|
|
New APIs for checking some object properties
Introduce a number of new APIs to expose some boolean properties
of objects, which cannot otherwise reliably determined, nor are
aspects of the XML configuration.
* virDomainIsActive: Checking virDomainGetID is not reliable
since it is not possible to distinguish between error condition
and inactive domain for ID of -1.
* virDomainIsPersistent: Check whether a persistent config exists
for the domain
* virNetworkIsActive: Check whether the network is active
* virNetworkIsPersistent: Check whether a persistent config exists
for the network
* virStoragePoolIsActive: Check whether the storage pool is active
* virStoragePoolIsPersistent: Check whether a persistent config exists
for the storage pool
* virInterfaceIsActive: Check whether the host interface is active
* virConnectIsSecure: whether the communication channel to the
hypervisor is secure
* virConnectIsEncrypted: whether any network based commnunication
channels are encrypted
NB, a channel can be secure, even if not encrypted, eg if it does
not involve the network, like a UNIX socket, or pipe.
* include/libvirt/libvirt.h.in: Define public API
* src/driver.h: Define internal driver API
* src/libvirt.c: Implement public API entry point
* src/libvirt_public.syms: Export API symbols
* src/esx/esx_driver.c, src/lxc/lxc_driver.c,
src/interface/netcf_driver.c, src/network/bridge_driver.c,
src/opennebula/one_driver.c, src/openvz/openvz_driver.c,
src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
src/remote/remote_driver.c, src/test/test_driver.c,
src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/xen/xen_driver.c: Stub out driver tables
2009-10-21 10:49:05 +00:00
|
|
|
LIBVIRT_0.7.3 {
|
|
|
|
global:
|
2009-11-12 15:53:26 +00:00
|
|
|
virConnectGetLibVersion;
|
New APIs for checking some object properties
Introduce a number of new APIs to expose some boolean properties
of objects, which cannot otherwise reliably determined, nor are
aspects of the XML configuration.
* virDomainIsActive: Checking virDomainGetID is not reliable
since it is not possible to distinguish between error condition
and inactive domain for ID of -1.
* virDomainIsPersistent: Check whether a persistent config exists
for the domain
* virNetworkIsActive: Check whether the network is active
* virNetworkIsPersistent: Check whether a persistent config exists
for the network
* virStoragePoolIsActive: Check whether the storage pool is active
* virStoragePoolIsPersistent: Check whether a persistent config exists
for the storage pool
* virInterfaceIsActive: Check whether the host interface is active
* virConnectIsSecure: whether the communication channel to the
hypervisor is secure
* virConnectIsEncrypted: whether any network based commnunication
channels are encrypted
NB, a channel can be secure, even if not encrypted, eg if it does
not involve the network, like a UNIX socket, or pipe.
* include/libvirt/libvirt.h.in: Define public API
* src/driver.h: Define internal driver API
* src/libvirt.c: Implement public API entry point
* src/libvirt_public.syms: Export API symbols
* src/esx/esx_driver.c, src/lxc/lxc_driver.c,
src/interface/netcf_driver.c, src/network/bridge_driver.c,
src/opennebula/one_driver.c, src/openvz/openvz_driver.c,
src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
src/remote/remote_driver.c, src/test/test_driver.c,
src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/xen/xen_driver.c: Stub out driver tables
2009-10-21 10:49:05 +00:00
|
|
|
virConnectIsEncrypted;
|
|
|
|
virConnectIsSecure;
|
|
|
|
virDomainIsActive;
|
|
|
|
virDomainIsPersistent;
|
|
|
|
virNetworkIsActive;
|
|
|
|
virNetworkIsPersistent;
|
|
|
|
virStoragePoolIsActive;
|
|
|
|
virStoragePoolIsPersistent;
|
|
|
|
virInterfaceIsActive;
|
|
|
|
} LIBVIRT_0.7.2;
|
|
|
|
|
2009-12-18 13:51:39 +00:00
|
|
|
LIBVIRT_0.7.5 {
|
|
|
|
global:
|
|
|
|
virConnectCompareCPU;
|
2009-12-20 12:34:21 +00:00
|
|
|
virDomainMemoryStats;
|
2009-12-18 13:51:39 +00:00
|
|
|
} LIBVIRT_0.7.3;
|
|
|
|
|
2010-01-14 01:29:16 +00:00
|
|
|
LIBVIRT_0.7.7 {
|
|
|
|
global:
|
|
|
|
virDomainAttachDeviceFlags;
|
|
|
|
virDomainDetachDeviceFlags;
|
2010-01-22 13:52:41 +00:00
|
|
|
virConnectBaselineCPU;
|
Stub out internal driver entry points for job processing
The internal glue layer for the new pubic API
* src/driver.h: Define internal driver API contract
* src/libvirt.c, src/libvirt_public.syms: Wire up public
API to internal driver API
* src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
src/qemu/qemu_driver.c, src/remote/remote_driver.c,
src/test/test_driver.c, src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/xen/xen_driver.c: Stub new entry point
2010-02-03 11:32:24 +00:00
|
|
|
virDomainGetJobInfo;
|
Wire up internal entry points for virDomainAbortJob API
This provides the internal glue for the driver API
* src/driver.h: Internal API contract
* src/libvirt.c, src/libvirt_public.syms: Connect public API
to driver API
* src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
src/qemu/qemu_driver.c, src/remote/remote_driver.c,
src/test/test_driver.c src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/xen/xen_driver.c: Stub out entry points
2010-02-04 16:16:35 +00:00
|
|
|
virDomainAbortJob;
|
2010-01-14 01:29:16 +00:00
|
|
|
} LIBVIRT_0.7.5;
|
|
|
|
|
2010-04-12 17:39:20 +00:00
|
|
|
LIBVIRT_0.8.0 {
|
2010-03-01 19:56:46 +00:00
|
|
|
global:
|
|
|
|
virStorageVolWipe;
|
2010-03-12 13:55:27 +00:00
|
|
|
virDomainMigrateSetMaxDowntime;
|
Introduce a new public API for domain events
The current API for domain events has a number of problems
- Only allows for domain lifecycle change events
- Does not allow the same callback to be registered multiple times
- Does not allow filtering of events to a specific domain
This introduces a new more general purpose domain events API
typedef enum {
VIR_DOMAIN_EVENT_ID_LIFECYCLE = 0, /* virConnectDomainEventCallback */
...more events later..
}
int virConnectDomainEventRegisterAny(virConnectPtr conn,
virDomainPtr dom, /* Optional, to filter */
int eventID,
virConnectDomainEventGenericCallback cb,
void *opaque,
virFreeCallback freecb);
int virConnectDomainEventDeregisterAny(virConnectPtr conn,
int callbackID);
Since different event types can received different data in the callback,
the API is defined with a generic callback. Specific events will each
have a custom signature for their callback. Thus when registering an
event it is neccessary to cast the callback to the generic signature
eg
int myDomainEventCallback(virConnectPtr conn,
virDomainPtr dom,
int event,
int detail,
void *opaque)
{
...
}
virConnectDomainEventRegisterAny(conn, NULL,
VIR_DOMAIN_EVENT_ID_LIFECYCLE,
VIR_DOMAIN_EVENT_CALLBACK(myDomainEventCallback)
NULL, NULL);
The VIR_DOMAIN_EVENT_CALLBACK() macro simply does a "bad" cast
to the generic signature
* include/libvirt/libvirt.h.in: Define new APIs for registering
domain events
* src/driver.h: Internal driver entry points for new events APIs
* src/libvirt.c: Wire up public API to driver API for events APIs
* src/libvirt_public.syms: Export new APIs
* src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
src/qemu/qemu_driver.c, src/remote/remote_driver.c,
src/test/test_driver.c, src/uml/uml_driver.c,
src/vbox/vbox_tmpl.c, src/xen/xen_driver.c,
src/xenapi/xenapi_driver.c: Stub out new API entries
2010-03-18 13:01:48 +00:00
|
|
|
virConnectDomainEventRegisterAny;
|
|
|
|
virConnectDomainEventDeregisterAny;
|
Introduce a new virDomainUpdateDeviceFlags public API
The current virDomainAttachDevice API can be (ab)used to change
the media of an existing CDROM/Floppy device. Going forward there
will be more devices that can be configured on the fly and overloading
virDomainAttachDevice for this is not too pleasant. This patch adds
a new virDomainUpdateDeviceFlags() explicitly just for modifying
existing devices.
* include/libvirt/libvirt.h.in: Add virDomainUpdateDeviceFlags
* src/driver.h: Internal API for virDomainUpdateDeviceFlags
* src/libvirt.c, src/libvirt_public.syms: Glue public API to
driver API
* src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
src/openvz/openvz_driver.c, src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
src/remote/remote_driver.c, src/test/test_driver.c, src/uml/uml_driver.c,
src/vbox/vbox_tmpl.c, src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Add
stubs for new driver entry point
2010-03-22 12:23:41 +00:00
|
|
|
virDomainUpdateDeviceFlags;
|
2010-03-25 17:46:02 +00:00
|
|
|
virConnectListNWFilters;
|
|
|
|
virConnectNumOfNWFilters;
|
|
|
|
virNWFilterLookupByName;
|
|
|
|
virNWFilterLookupByUUID;
|
|
|
|
virNWFilterLookupByUUIDString;
|
|
|
|
virNWFilterFree;
|
|
|
|
virNWFilterGetName;
|
|
|
|
virNWFilterGetUUID;
|
|
|
|
virNWFilterGetUUIDString;
|
|
|
|
virNWFilterGetXMLDesc;
|
|
|
|
virNWFilterRef;
|
|
|
|
virNWFilterDefineXML;
|
|
|
|
virNWFilterUndefine;
|
2010-04-01 08:46:28 +00:00
|
|
|
virDomainManagedSave;
|
|
|
|
virDomainHasManagedSaveImage;
|
|
|
|
virDomainManagedSaveRemove;
|
2010-03-31 20:33:13 +00:00
|
|
|
virDomainSnapshotCreateXML;
|
|
|
|
virDomainSnapshotGetXMLDesc;
|
|
|
|
virDomainSnapshotNum;
|
|
|
|
virDomainSnapshotListNames;
|
|
|
|
virDomainSnapshotLookupByName;
|
|
|
|
virDomainHasCurrentSnapshot;
|
|
|
|
virDomainSnapshotCurrent;
|
|
|
|
virDomainRevertToSnapshot;
|
|
|
|
virDomainSnapshotDelete;
|
|
|
|
virDomainSnapshotFree;
|
2010-03-01 19:56:46 +00:00
|
|
|
} LIBVIRT_0.7.7;
|
|
|
|
|
2010-03-25 17:46:09 +00:00
|
|
|
|
Internal driver API infrastructure for virDomainGetBlockInfo
This defines the internal driver API and stubs out each driver
* src/driver.h: Define virDrvDomainGetBlockInfo signature
* src/libvirt.c, src/libvirt_public.syms: Glue public API to drivers
* src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
src/test/test_driver.c, src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Stub out driver
2010-04-27 19:27:34 +00:00
|
|
|
LIBVIRT_0.8.1 {
|
|
|
|
global:
|
|
|
|
virDomainGetBlockInfo;
|
|
|
|
} LIBVIRT_0.8.0;
|
|
|
|
|
2010-06-10 13:28:05 +00:00
|
|
|
|
|
|
|
LIBVIRT_0.8.2 {
|
|
|
|
global:
|
|
|
|
virDomainCreateWithFlags;
|
|
|
|
} LIBVIRT_0.8.1;
|
|
|
|
|
2010-10-12 14:03:24 +00:00
|
|
|
LIBVIRT_0.8.5 {
|
|
|
|
global:
|
|
|
|
virDomainSetMemoryParameters;
|
|
|
|
virDomainGetMemoryParameters;
|
2010-09-24 22:48:45 +00:00
|
|
|
virDomainGetVcpusFlags;
|
|
|
|
virDomainSetVcpusFlags;
|
2010-10-12 14:03:24 +00:00
|
|
|
} LIBVIRT_0.8.2;
|
|
|
|
|
Introduce a virDomainOpenConsole API
To enable virsh console (or equivalent) to be used remotely
it is necessary to provide remote access to the /dev/pts/XXX
pseudo-TTY associated with the console/serial/parallel device
in the guest. The virStream API provide a bi-directional I/O
stream capability that can be used for this purpose. This
patch thus introduces a virDomainOpenConsole API that uses
the stream APIs.
* src/libvirt.c, src/libvirt_public.syms,
include/libvirt/libvirt.h.in, src/driver.h: Define the
new virDomainOpenConsole API
* src/esx/esx_driver.c, src/lxc/lxc_driver.c,
src/opennebula/one_driver.c, src/openvz/openvz_driver.c,
src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
src/remote/remote_driver.c, src/test/test_driver.c,
src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Stub
API entry point
2010-07-23 12:34:31 +00:00
|
|
|
LIBVIRT_0.8.6 {
|
|
|
|
global:
|
|
|
|
virDomainOpenConsole;
|
2010-11-15 03:23:32 +00:00
|
|
|
virDomainIsUpdated;
|
Introduce a virDomainOpenConsole API
To enable virsh console (or equivalent) to be used remotely
it is necessary to provide remote access to the /dev/pts/XXX
pseudo-TTY associated with the console/serial/parallel device
in the guest. The virStream API provide a bi-directional I/O
stream capability that can be used for this purpose. This
patch thus introduces a virDomainOpenConsole API that uses
the stream APIs.
* src/libvirt.c, src/libvirt_public.syms,
include/libvirt/libvirt.h.in, src/driver.h: Define the
new virDomainOpenConsole API
* src/esx/esx_driver.c, src/lxc/lxc_driver.c,
src/opennebula/one_driver.c, src/openvz/openvz_driver.c,
src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
src/remote/remote_driver.c, src/test/test_driver.c,
src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Stub
API entry point
2010-07-23 12:34:31 +00:00
|
|
|
} LIBVIRT_0.8.5;
|
|
|
|
|
2011-02-07 19:52:29 +00:00
|
|
|
LIBVIRT_0.8.8 {
|
|
|
|
global:
|
|
|
|
virConnectGetSysinfo;
|
|
|
|
} LIBVIRT_0.8.6;
|
|
|
|
|
2011-03-02 16:59:54 +00:00
|
|
|
LIBVIRT_0.9.0 {
|
|
|
|
global:
|
2011-02-22 05:31:57 +00:00
|
|
|
virDomainGetBlkioParameters;
|
Add public API for setting migration speed on the fly
It is possible to set a migration speed limit when starting
migration. This new API allows the speed limit to be changed
on the fly to adjust to changing conditions
* src/driver.h, src/libvirt.c, src/libvirt_public.syms,
include/libvirt/libvirt.h.in: Add virDomainMigrateSetMaxSpeed
* src/esx/esx_driver.c, src/lxc/lxc_driver.c,
src/opennebula/one_driver.c, src/openvz/openvz_driver.c,
src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
src/remote/remote_driver.c, src/test/test_driver.c,
src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
src/vmware/vmware_driver.c, src/xen/xen_driver.c,
src/libxl/libxl_driver.c: Stub new API
2011-02-17 13:57:53 +00:00
|
|
|
virDomainMigrateSetMaxSpeed;
|
2011-02-22 05:31:57 +00:00
|
|
|
virDomainSetBlkioParameters;
|
2011-03-02 08:07:48 +00:00
|
|
|
virDomainSetMemoryFlags;
|
2011-03-02 16:59:54 +00:00
|
|
|
virEventRegisterDefaultImpl;
|
|
|
|
virEventRunDefaultImpl;
|
2009-07-14 13:24:27 +00:00
|
|
|
virStorageVolDownload;
|
|
|
|
virStorageVolUpload;
|
2011-03-02 16:59:54 +00:00
|
|
|
} LIBVIRT_0.8.8;
|
|
|
|
|
2011-05-10 08:26:01 +00:00
|
|
|
LIBVIRT_0.9.2 {
|
|
|
|
global:
|
2011-05-17 21:17:14 +00:00
|
|
|
virDomainGetSchedulerParametersFlags;
|
2011-04-22 11:31:35 +00:00
|
|
|
virDomainGetState;
|
2011-05-10 08:26:01 +00:00
|
|
|
virDomainInjectNMI;
|
2011-05-17 21:17:14 +00:00
|
|
|
virDomainMigrate2;
|
|
|
|
virDomainMigrateToURI2;
|
2011-04-04 09:58:53 +00:00
|
|
|
virDomainScreenshot;
|
2011-05-17 06:20:00 +00:00
|
|
|
virDomainSetSchedulerParametersFlags;
|
2011-05-05 09:21:41 +00:00
|
|
|
virInterfaceChangeBegin;
|
|
|
|
virInterfaceChangeCommit;
|
|
|
|
virInterfaceChangeRollback;
|
2011-05-10 08:26:01 +00:00
|
|
|
} LIBVIRT_0.9.0;
|
|
|
|
|
2011-06-13 15:35:54 +00:00
|
|
|
LIBVIRT_0.9.3 {
|
|
|
|
global:
|
2011-05-24 08:28:50 +00:00
|
|
|
virDomainGetControlInfo;
|
2011-06-24 23:09:46 +00:00
|
|
|
virDomainGetVcpuPinInfo;
|
2011-06-07 09:11:12 +00:00
|
|
|
virDomainPinVcpuFlags;
|
|
|
|
virDomainSendKey;
|
2011-06-15 21:54:30 +00:00
|
|
|
virEventAddHandle;
|
|
|
|
virEventAddTimeout;
|
|
|
|
virEventRemoveHandle;
|
|
|
|
virEventRemoveTimeout;
|
|
|
|
virEventUpdateHandle;
|
|
|
|
virEventUpdateTimeout;
|
2011-06-07 00:58:47 +00:00
|
|
|
virNodeGetCPUStats;
|
2011-06-07 01:03:36 +00:00
|
|
|
virNodeGetMemoryStats;
|
2011-06-13 15:35:54 +00:00
|
|
|
} LIBVIRT_0.9.2;
|
|
|
|
|
2011-07-20 02:59:54 +00:00
|
|
|
LIBVIRT_0.9.4 {
|
|
|
|
global:
|
2011-07-06 18:10:11 +00:00
|
|
|
virDomainRestoreFlags;
|
|
|
|
virDomainSaveFlags;
|
2011-07-20 04:29:26 +00:00
|
|
|
virDomainSaveImageDefineXML;
|
|
|
|
virDomainSaveImageGetXMLDesc;
|
2011-07-20 02:59:54 +00:00
|
|
|
virDomainUndefineFlags;
|
2011-07-20 15:02:48 +00:00
|
|
|
virDomainDestroyFlags;
|
2011-07-22 05:18:06 +00:00
|
|
|
virDomainBlockJobAbort;
|
|
|
|
virDomainGetBlockJobInfo;
|
|
|
|
virDomainBlockJobSetSpeed;
|
|
|
|
virDomainBlockPull;
|
2011-07-20 02:59:54 +00:00
|
|
|
} LIBVIRT_0.9.3;
|
|
|
|
|
2009-09-15 12:24:51 +00:00
|
|
|
# .... define new API here using predicted next version number ....
|