From 1dd49e921f24177de8cd8dfae32f2f77701343f8 Mon Sep 17 00:00:00 2001
From: Justin Clift
These bindings depend upon the libvirt libraries being installed.
+
In the .NET case, this is libvirt-0.dll, produced from
compiling libvirt for windows.
- The class library exposes the LibvirtBindings namespace.
- This namespace exposes all of the needed types (enum, struct),
- and 2 main classes, libVirt and libvirtError.
+ The libvirt C# bindings class library exposes the Libvirt
+ namespace. This namespace exposes all of the needed types (enum,
+ struct), plus many classes exposing the libvirt API methods.
- The libVirt class exposes all of the interfaces of the
- libvirt library for handling virtualized domains.
+ These classes are grouped into functional areas, with each class
+ exposing libvirt methods related to that area.
- The libvirtError class exposes all of the interfaces of
- the libvirt library for handling errors raised while using the library.
+ For example, the libvirt methods related to connections, such as
+ virConnectOpenAuth and virConnectNumOfDomains, are in
+ the Connect class.
+
+ In the same manner, the other class name mappings are:
+
+ There are some additions as well:
+
- Windows testing is performed on Windows 7, with .NET 4, Visual Studio 2010, and MonoDevelop 2.4.
-
- Linux testing is performed on Fedora 13 i686, with MonoDevelop 2.2.
+ Testing is performed using the following configurations:
Usage
+ They are accessed as Connect.OpenAuth, and
+ Connect.NumOfDomains respectively.
+
+
+ Name of libvirt function C# class name
+ virDomain... Domain
+ virEvent... Event
+ virInterface... Interface
+ virNetwork... Network
+ virNode... Node
+ virSecret... Secret
+ virStoragePool... StoragePool
+ virStorageVolume... StorageVolume
+ virStream... Stream
+
Notes on testing
+ Test Configuration
+
Type | Name | Binding? | Tested? | Sample Code? | Works? | Tested .Net/Windows Works? | Tested Mono/Windows Works? | Tested Mono/Linux Works? |
---|---|---|---|---|---|---|---|---|
Type | Name | Binding? | Tested? | Sample Code? | Works? | Tested .Net/Windows Works? | Tested Mono (32-bit)/Windows Works? | Tested Mono (64-bit)/Linux Works? |
enum | virCPUCompareResult | No | ||||||
struct | virConnect | Yes, an IntPtr as the struct is not public | Yes | Yes | ||||
struct | virConnectAuth | Yes | Yes | virConnectOpenAuth | Yes | Yes | Yes | Yes |
enum | virDomainCoreDumpFlags | No | ||||||
enum | virDomainCreateFlags | No | ||||||
enum | virDomainDeviceModifyFlags | No | ||||||
enum | virDomainEventDefinedDetailType | Yes | Yes | Yes | ||||
enum | virDomainEventDefinedDetailType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
struct | virDomainEventGraphicsAddress | No | ||||||
enum | virDomainEventGraphicsAddressType | No | ||||||
enum | virDomainEventGraphicsPhase | No | ||||||
struct | virDomainEventGraphicsSubjectIdentity | No | ||||||
enum | virDomainEventID | No | ||||||
enum | virDomainEventIOErrorAction | No | ||||||
enum | virDomainEventResumedDetailType | Yes | Yes | Yes | ||||
enum | virDomainEventStartedDetailType | Yes | Yes | Yes | ||||
enum | virDomainEventStoppedDetailType | Yes | Yes | Yes | ||||
enum | virDomainEventSuspendedDetailType | Yes | Yes | Yes | ||||
enum | virDomainEventType | Yes | Yes | Yes | ||||
enum | virDomainEventUndefinedDetailType | Yes | Yes | Yes | ||||
enum | virDomainEventResumedDetailType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
enum | virDomainEventStartedDetailType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
enum | virDomainEventStoppedDetailType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
enum | virDomainEventSuspendedDetailType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
enum | virDomainEventType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
enum | virDomainEventUndefinedDetailType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
enum | virDomainEventWatchdogAction | No | ||||||
struct | virDomainInfo | Yes | Yes | Yes | ||||
struct | virDomainInterfaceStatsStruct | Yes | No | Maybe | ||||
enum | virDomainSnapshotDeleteFlags | |||||||
enum | virDomainState | Yes | Yes | Yes | ||||
enum | virDomainXMLFlags | Yes | Yes | Yes | ||||
enum | virEventHandleType | Yes | Yes | Yes | ||||
enum | virEventHandleType | Yes | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
struct | virInterface | Yes, an IntPtr as the struct is not public | ||||||
enum | virInterfaceXMLFlags | No | ||||||
struct | virNWFilter | No | ||||||
enum | virSecretUsageType | No | ||||||
struct | virSecurityLabel | No | ||||||
struct | virSecurityModel | No | ||||||
struct | virStoragePool | Yes, an IntPtr as the struct is not public | ||||||
enum | virStoragePoolBuildFlags | Yes | No | Maybe | ||||
enum | virStoragePoolDeleteFlags | Yes | No | Maybe | ||||
struct | virStoragePoolInfo | Yes | Yes | Yes | ||||
struct | virStoragePool | Yes, an IntPtr as the struct is not public | ||||||
enum | virStoragePoolState | Yes | Yes | Yes | ||||
struct | virStorageVol | Yes, an IntPtr as the struct is not public | ||||||
enum | virStorageVolDeleteFlags | No |
Name | Binding? | Type? | Tested? | Sample Code? | Working? | Tested .Net/Windows Works? | Tested Mono/Windows Works? | Tested Mono/Linux Works? |
---|---|---|---|---|---|---|---|---|
virConnectAuthCallbackPtr | Yes | delegate | Yes | virConnectOpenAuth | Yes | Yes | Yes | |
Name | Binding? | Type? | Tested? | Sample Code? | Working? | Tested .Net/Windows Works? | Tested Mono (32-bit)/Windows Works? | Tested Mono (64-bit)/Linux Works? |
virConnectAuthCallback | Yes | delegate | Yes | virConnectOpenAuth | Yes | Yes | Yes | Yes |
virConnectBaselineCPU | No | function | ||||||
virConnectClose | Yes | function | Yes | virConnectOpenAuth | Yes | Yes | Yes | |
virConnectClose | Yes | function | Yes | virConnectOpenAuth | Yes | Yes | Yes | Yes |
virConnectCompareCPU | No | function | ||||||
virConnectDomainEventCallback | Yes | delegate | Yes | Yes | ||||
virConnectDomainEventDeregister | No | function | ||||||
virConnectDomainEventIOErrorCallback | No | delegate | ||||||
virConnectDomainEventIOErrorReasonCallback | No | delegate | ||||||
virConnectDomainEventRTCChangeCallback | No | delegate | ||||||
virConnectDomainEventRegister | Yes | function | Yes | Yes | ||||
virConnectDomainEventRegister | Yes | function | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
virConnectDomainEventRegisterAny | No | function | ||||||
virConnectDomainEventWatchdogCallback | No | delegate | ||||||
virConnectDomainXMLFromNative | No | function | ||||||
virConnectListDefinedNetworks | Yes | function | Yes | Yes | ||||
virConnectListDefinedStoragePools | Yes | function | Yes | Yes | ||||
virConnectListDomains | Yes | function | Yes | virConnectOpenAuth | Yes | Yes | Yes | Yes |
virConnectListInterfaces | Yes | function | Yes | Yes, if the host handles the method | ||||
virConnectListInterfaces | Yes | function | Yes | Yes, if the host handle the method | ||||
virConnectListNWFilters | No | function | ||||||
virConnectListNetworks | Yes | function | Yes | Yes | ||||
virConnectListSecrets | Yes | function | No | Maybe | ||||
virConnectListStoragePools | Yes | function | Yes | Yes | ||||
virConnectListStoragePools | Yes | function | Yes | virConnectOpen | Yes | Yes | Yes | Yes |
virConnectNumOfDefinedDomains | Yes | function | Yes | virConnectOpenAuth | Yes | Yes | Yes | Yes |
virConnectNumOfDefinedInterfaces | Yes | function | No | Maybe | ||||
virConnectNumOfDefinedNetworks | Yes | function | Yes | Yes | ||||
virConnectNumOfNWFilters | No | function | ||||||
virConnectNumOfNetworks | Yes | function | Yes | Yes | ||||
virConnectNumOfSecrets | Yes | function | No | Maybe | ||||
virConnectNumOfStoragePools | Yes | function | Yes | Yes | ||||
virConnectOpen | Yes | function | Yes | Yes | ||||
virConnectNumOfStoragePools | Yes | function | Yes | virConnectOpen | Yes | Yes | Yes | Yes |
virConnectOpen | Yes | function | Yes | virConnectOpen, virEventRegisterImpl | Yes | Yes | Yes | Yes |
virConnectOpenAuth | Yes | function | Yes | virConnectOpenAuth | Yes | Yes | Yes | Yes |
virConnectOpenReadOnly | Yes | function | No | Maybe | ||||
virConnectRef | Yes | function | No | Maybe | ||||
virDomainGetXMLDesc | Yes | function | Yes | Yes | ||||
virDomainHasCurrentSnapshot | No | function | ||||||
virDomainHasManagedSaveImage | No | function | ||||||
virDomainInterfaceStats | No | function | ||||||
virDomainInterfaceStats | No | function | ||||||
virDomainIsActive | Yes | function | Yes | Yes | ||||
virDomainIsPersistent | Yes | function | No | Maybe | ||||
virDomainLookupByID | Yes | function | Yes | virConnectOpenAuth | Yes | Yes | Yes | Yes |
virDomainLookupByName | Yes | function | Yes | Yes | ||||
virDomainLookupByUUID | Yes | function | No | Maybe | ||||
virDomainLookupByUUIDString | Yes | function | No | Maybe | ||||
virDomainManagedSave | No | function | ||||||
virDomainManagedSave | No | function | ||||||
virDomainManagedSaveRemove | No | function | ||||||
virDomainMemoryPeek | No | function | ||||||
virDomainMemoryStats | No | function | ||||||
virDomainMigrate | No | function | ||||||
virDomainMigrateSetMaxDowntime | No | function | ||||||
virDomainMigrateToURI | No | function | ||||||
virDomainMigrateToURI | No | function | ||||||
virDomainPinVcpu | No | function | ||||||
virDomainReboot | Yes | function | Yes | Yes | ||||
virDomainRef | Yes | function | No | Maybe | ||||
virDomainRef | Yes | function | No | Maybe | ||||
virDomainRestore | Yes | function | No | Maybe | ||||
virDomainResume | Yes | function | Yes | Yes | ||||
virDomainResume | Yes | function | Yes | Yes | ||||
virDomainRevertToSnapshot | No | function | ||||||
virDomainSave | Yes | function | No | Maybe | ||||
virDomainSetAutostart | Yes | function | No | Maybe | ||||
virDomainSetMaxMemory | Yes | function | No | Maybe | ||||
virDomainSetMaxMemory | Yes | function | No | Maybe | ||||
virDomainSetMemory | Yes | function | No | Maybe | ||||
virDomainSetSchedulerParameters | No | function | ||||||
virDomainSetVcpus | Yes | function | No | Maybe | ||||
virDomainUpdateDeviceFlags | No | function | ||||||
virEventAddHandleFunc | Yes | delegate | Yes | Yes | ||||
virEventAddTimeoutFunc | Yes | delegate | Yes | Yes | ||||
virEventHandleCallback | Yes | delegate | Yes | Yes | ||||
virEventRegisterImpl | Yes | function | Yes | Yes | ||||
virEventHandleCallback | Yes | delegate | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
virEventRegisterImpl | Yes | function | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
virEventRemoveHandleFunc | Yes | delegate | Yes | Yes | ||||
virEventRemoveTimeoutFunc | Yes | delegate | Yes | Yes | ||||
virEventTimeoutCallback | Yes | delegate | Yes | Yes | ||||
virEventTimeoutCallback | Yes | delegate | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
virEventUpdateHandleFunc | Yes | delegate | Yes | Yes | ||||
virEventUpdateTimeoutFunc | Yes | delegate | Yes | Yes | ||||
virFreeCallback | Yes | function | Yes | Yes | ||||
virFreeCallback | Yes | function | Yes | virEventRegisterImpl | Yes | Yes | Yes | Yes |
virGetVersion | Yes | function | Yes | Yes | ||||
virInitialize | Yes | function | Yes | Yes | ||||
virInterfaceCreate | No | function | ||||||
virInterfaceIsActive | No | function | ||||||
virInterfaceLookupByMACString | No | function | ||||||
virInterfaceLookupByName | No | function | ||||||
virInterfaceRef | No | function | ||||||
virInterfaceRef | No | function | ||||||
virInterfaceUndefine | No | function | ||||||
virNWFilterDefineXML | No | function | ||||||
virNWFilterFree | No | function | ||||||
virNWFilterLookupByName | No | function | ||||||
virNWFilterLookupByUUID | No | function | ||||||
virNWFilterLookupByUUIDString | No | function | ||||||
virNWFilterRef | No | function | ||||||
virNWFilterRef | No | function | ||||||
virNWFilterUndefine | No | function | ||||||
virNetworkCreate | Yes | function | Yes | Yes | ||||
virNetworkCreateXML | Yes | function | No | Maybe | ||||
virNodeListDevices | Yes | function | Yes | Yes | ||||
virNodeNumOfDevices | Yes | function | Yes | Yes | ||||
virSecretDefineXML | No | function | ||||||
virSecretFree | No | function | ||||||
virSecretFree | No | function | ||||||
virSecretGetConnect | No | function | ||||||
virSecretGetUUID | No | function | ||||||
virSecretGetUUIDString | No | function | ||||||
virSecretGetUUIDString | No | function | ||||||
virSecretGetUsageID | No | function | ||||||
virSecretGetUsageType | No | function | ||||||
virSecretGetValue | No | function | ||||||
virStorageVolLookupByPath | Yes | function | Yes | Yes | ||||
virStorageVolRef | Yes | function | No | No | ||||
virStorageVolWipe | No | function | ||||||
virStreamAbort | No | function | ||||||
virStreamAbort | No | function | ||||||
virStreamEventAddCallback | No | function | ||||||
virStreamEventCallback | No | delegate | ||||||
virStreamEventRemoveCallback | No | function | ||||||
virStreamEventUpdateCallback | No | function | ||||||
virStreamFinish | No | function | ||||||
virStreamFree | No | function | ||||||
virStreamFree | No | function | ||||||
virStreamNew | No | function | ||||||
virStreamRecv | No | function | ||||||
virStreamRecvAll | No | function |