[libvirt] [PATCH 00/16] Hyper-V: Improve 2008, Introduce 2012

Fernando Casas Schössow casasfernando at hotmail.com
Thu Sep 8 16:48:02 UTC 2016


Hi Phil,

May I ask which libvirt version are you patching against?
I'm trying to apply this patches to libvirt 2.2.0 but some of them are 
failing (for example patch 7).

Thanks.

Fer

On jue, sep 8, 2016 at 12:28 , Philipp Heckel <pheckel at datto.com> wrote:
> We have a lot more implemented, but they're not cleaned up yet or 
> properly tested. We'll submit them in the following weeks (ideally 
> next week).
> 
> Again, if you need test infrastructure, contact me or Jason.
> 
> Here's what we have so far:
> 
> 2012
> ----
> hypervHypervisorDriver.connectGetCapabilities = 
> hypervConnectGetCapabilities; /* 2008 & 2012 */
> hypervHypervisorDriver.connectGetHostname = hypervConnectGetHostname; 
> /* 2008 & 2012 */
> hypervHypervisorDriver.connectGetType = hypervConnectGetType; /* 2008 
> & 2012 */
> hypervHypervisorDriver.connectIsAlive = hypervConnectIsAlive; /* 2008 
> & 2012 */
> hypervHypervisorDriver.connectListAllDomains = 
> hypervConnectListAllDomains2012;
> hypervHypervisorDriver.connectListDefinedDomains = 
> hypervConnectListDefinedDomains2012;
> hypervHypervisorDriver.connectListDomains = 
> hypervConnectListDomains2012;
> hypervHypervisorDriver.connectNumOfDefinedDomains = 
> hypervConnectNumOfDefinedDomains2012;
> hypervHypervisorDriver.connectNumOfDomains = 
> hypervConnectNumOfDomains2012;
> hypervHypervisorDriver.domainCreate = hypervDomainCreate2012;
> hypervHypervisorDriver.domainCreateWithFlags = 
> hypervDomainCreateWithFlags2012;
> hypervHypervisorDriver.domainDefineXML = hypervDomainDefineXML2012;
> hypervHypervisorDriver.domainDestroyFlags = 
> hypervDomainDestroyFlags2012;
> hypervHypervisorDriver.domainDestroy = hypervDomainDestroy2012;
> hypervHypervisorDriver.domainGetInfo = hypervDomainGetInfo2012;
> hypervHypervisorDriver.domainGetState = hypervDomainGetState2012;
> hypervHypervisorDriver.domainGetXMLDesc = hypervDomainGetXMLDesc2012;
> hypervHypervisorDriver.domainIsActive = hypervDomainIsActive2012;
> hypervHypervisorDriver.domainLookupByID = hypervDomainLookupByID2012;
> hypervHypervisorDriver.domainLookupByName = 
> hypervDomainLookupByName2012;
> hypervHypervisorDriver.domainLookupByUUID = 
> hypervDomainLookupByUUID2012;
> hypervHypervisorDriver.domainReboot = hypervDomainReboot2012;
> hypervHypervisorDriver.domainSendKey = hypervDomainSendKey2012;
> hypervHypervisorDriver.domainSetMemoryFlags = 
> hypervDomainSetMemoryFlags2012;
> hypervHypervisorDriver.domainSetMemory = hypervDomainSetMemory2012;
> hypervHypervisorDriver.domainShutdownFlags = 
> hypervDomainShutdownFlags2012;
> hypervHypervisorDriver.domainShutdown = hypervDomainShutdown2012;
> hypervHypervisorDriver.domainUndefineFlags = 
> hypervDomainUndefineFlags2012;
> hypervHypervisorDriver.domainUndefine = hypervDomainUndefine2012;
> hypervHypervisorDriver.nodeGetFreeMemory = hypervNodeGetFreeMemory; 
> /* 2008 & 2012 */
> hypervHypervisorDriver.nodeGetInfo = hypervNodeGetInfo; /* 2008 & 
> 2012 */
> 
> 2008
> ----
> hypervHypervisorDriver.connectGetCapabilities = 
> hypervConnectGetCapabilities; /* 1.2.10 */
> hypervHypervisorDriver.connectGetHostname = hypervConnectGetHostname; 
> /* 0.9.5 */
> hypervHypervisorDriver.connectGetMaxVcpus = hypervConnectGetMaxVcpus; 
> /* 1.2.10 */
> hypervHypervisorDriver.connectGetType = hypervConnectGetType; /* 
> 0.9.5 */
> hypervHypervisorDriver.connectGetVersion = hypervConnectGetVersion; 
> /* 1.2.10 */
> hypervHypervisorDriver.connectIsAlive = hypervConnectIsAlive; /* 
> 0.9.8 */
> hypervHypervisorDriver.connectIsEncrypted = hypervConnectIsEncrypted; 
> /* 0.9.5 */
> hypervHypervisorDriver.connectIsSecure = hypervConnectIsSecure; /* 
> 0.9.5 */
> hypervHypervisorDriver.connectListAllDomains = 
> hypervConnectListAllDomains; /* 0.10.2 */
> hypervHypervisorDriver.connectListDefinedDomains = 
> hypervConnectListDefinedDomains; /* 0.9.5 */
> hypervHypervisorDriver.connectListDomains = hypervConnectListDomains; 
> /* 0.9.5 */
> hypervHypervisorDriver.connectNumOfDefinedDomains = 
> hypervConnectNumOfDefinedDomains; /* 0.9.5 */
> hypervHypervisorDriver.connectNumOfDomains = 
> hypervConnectNumOfDomains; /* 0.9.5 */
> hypervHypervisorDriver.domainAttachDeviceFlags = 
> hypervDomainAttachDeviceFlags; /* 1.2.10 */
> hypervHypervisorDriver.domainAttachDevice = hypervDomainAttachDevice; 
> /* 1.2.10 */
> hypervHypervisorDriver.domainCreate = hypervDomainCreate; /* 0.9.5 */
> hypervHypervisorDriver.domainCreateWithFlags = 
> hypervDomainCreateWithFlags; /* 0.9.5 */
> hypervHypervisorDriver.domainCreateXML = hypervDomainCreateXML; /* 
> 1.2.10 */
> hypervHypervisorDriver.domainDefineXML = hypervDomainDefineXML; /* 
> 1.2.10 */
> hypervHypervisorDriver.domainDestroyFlags = hypervDomainDestroyFlags; 
> /* 0.9.5 */
> hypervHypervisorDriver.domainDestroy = hypervDomainDestroy; /* 0.9.5 
> */
> hypervHypervisorDriver.domainGetAutostart = hypervDomainGetAutostart; 
> /* 1.2.10 */
> hypervHypervisorDriver.domainGetInfo = hypervDomainGetInfo; /* 0.9.5 
> */
> hypervHypervisorDriver.domainGetMaxVcpus = hypervDomainGetMaxVcpus; 
> /* 1.2.10 */
> hypervHypervisorDriver.domainGetOSType = hypervDomainGetOSType; /* 
> 0.9.5 */
> hypervHypervisorDriver.domainGetSchedulerParametersFlags = 
> hypervDomainGetSchedulerParametersFlags; /* 1.2.10 */
> hypervHypervisorDriver.domainGetSchedulerParameters = 
> hypervDomainGetSchedulerParameters; /* 1.2.10 */
> hypervHypervisorDriver.domainGetSchedulerType = 
> hypervDomainGetSchedulerType; /* 1.2.10 */
> hypervHypervisorDriver.domainGetState = hypervDomainGetState; /* 
> 0.9.5 */
> hypervHypervisorDriver.domainGetVcpusFlags = 
> hypervDomainGetVcpusFlags; /* 1.2.10 */
> hypervHypervisorDriver.domainGetVcpus = hypervDomainGetVcpus; /* 
> 1.2.10 */
> hypervHypervisorDriver.domainGetXMLDesc = hypervDomainGetXMLDesc; /* 
> 0.9.5 */
> hypervHypervisorDriver.domainHasManagedSaveImage = 
> hypervDomainHasManagedSaveImage; /* 0.9.5 */
> hypervHypervisorDriver.domainIsActive = hypervDomainIsActive; /* 
> 0.9.5 */
> hypervHypervisorDriver.domainIsPersistent = hypervDomainIsPersistent; 
> /* 0.9.5 */
> hypervHypervisorDriver.domainIsUpdated = hypervDomainIsUpdated; /* 
> 0.9.5 */
> hypervHypervisorDriver.domainLookupByID = hypervDomainLookupByID; /* 
> 0.9.5 */
> hypervHypervisorDriver.domainLookupByName = hypervDomainLookupByName; 
> /* 0.9.5 */
> hypervHypervisorDriver.domainLookupByUUID = hypervDomainLookupByUUID; 
> /* 0.9.5 */
> hypervHypervisorDriver.domainManagedSave = hypervDomainManagedSave; 
> /* 0.9.5 */
> hypervHypervisorDriver.domainManagedSaveRemove = 
> hypervDomainManagedSaveRemove; /* 0.9.5 */
> hypervHypervisorDriver.domainReboot = hypervDomainReboot; /* 1.3.x */
> hypervHypervisorDriver.domainResume = hypervDomainResume; /* 0.9.5 */
> hypervHypervisorDriver.domainScreenshot = hypervDomainScreenshot; /* 
> pjr - 08/08/16 */
> hypervHypervisorDriver.domainSendKey = hypervDomainSendKey; /* 1.3.x 
> */
> hypervHypervisorDriver.domainSetAutostart = hypervDomainSetAutostart; 
> /* 1.2.10 */
> hypervHypervisorDriver.domainSetMaxMemory = hypervDomainSetMaxMemory; 
> /* 1.2.10 */
> hypervHypervisorDriver.domainSetMemoryFlags = 
> hypervDomainSetMemoryFlags; /* 1.2.10 */
> hypervHypervisorDriver.domainSetMemory = hypervDomainSetMemory; /* 
> 1.2.10 */
> hypervHypervisorDriver.domainSetVcpusFlags = 
> hypervDomainSetVcpusFlags; /* 1.2.10 */
> hypervHypervisorDriver.domainSetVcpus = hypervDomainSetVcpus; /* 
> 1.2.10 */
> hypervHypervisorDriver.domainShutdownFlags = 
> hypervDomainShutdownFlags; /* 1.2.10 */
> hypervHypervisorDriver.domainShutdown = hypervDomainShutdown; /* 
> 1.2.10 */
> hypervHypervisorDriver.domainSuspend = hypervDomainSuspend; /* 0.9.5 
> */
> hypervHypervisorDriver.domainUndefineFlags = 
> hypervDomainUndefineFlags; /* 1.2.10 */
> hypervHypervisorDriver.domainUndefine = hypervDomainUndefine; /* 
> 1.2.10 */
> hypervHypervisorDriver.nodeGetFreeMemory = hypervNodeGetFreeMemory; 
> /* 1.2.10 */
> hypervHypervisorDriver.nodeGetInfo = hypervNodeGetInfo; /* 0.9.5 */
> 
> 
> On Wed, Sep 7, 2016 at 6:17 PM, Matthias Bolte 
> <matthias.bolte at googlemail.com> wrote:
>> 2016-09-07 23:14 GMT+02:00 Fernando Casas Schössow 
>> <casasfernando at hotmail.com>:
>> > Hi there,
>> >
>> > I was wondering if any of these patches actually made it into 
>> libvirt code.
>> > I'm really looking forward hyper-v support improvement and 
>> features like
>> > shutdown VM (not destroy/turn off but clean shutdown) implemented.
>> > Especially interested in 2012/2012 R2 since 2008 is getting old 
>> and 2016 is
>> > right around the corner.
>> >
>> > I'm already using libvirt 2.1.0 with some patches I found in
>> > https://github.com/vikhyath/libvirt-hyperv-r2-2012 but it would be 
>> great to
>> > have the code reviewed and merged into libvirt releases.
>> >
>> > Thanks.
>> >
>> > Fer
>> >
>> > The following patches include work originally done by Yves Vinter 
>> back
>> > in 2014. The last patch introduces support for Hyper-V 2012, while 
>> still
>> > supporting 2008. I am not sure that the method I used to include 
>> the 2012
>> > support is the best approach, mainly due to code duplication, but 
>> I am
>> > open to suggestions on how to do this better.
>> >
>> > Jason Miesionczek (16):
>> >   hyperv: additional server 2008 wmi classes
>> >   hyperv: add cim types support to code generator
>> >   hyperv: add get capabilities
>> >   hyperv: implement connectGetVersion
>> >   hyperv: implement vcpu functions
>> >   hyperv: implement nodeGetFreeMemory
>> >   hyperv: implement ability to send xml soap requests
>> >   hyperv: introduce basic network driver
>> >   hyperv: add domain shutdown function
>> >   hyperv: add get scheduler functions
>> >   hyperv: add set memory functions
>> >   hyperv: set vpcu functions
>> >   hyperv: domain undefine functions
>> >   hyperv: domain define and associated functions
>> >   hyperv: network list functions
>> >   hyperv: introduce 2012 support
>> 
>> I had a quick look at these patches a while ago, but didn't get 
>> around
>> to review them in detail yet.
>> 
>> Adding 2012 support while keeping 2008 supported is a bit tricky but
>> doable I think.
>> 
>> --
>> Matthias Bolte
>> http://photron.blogspot.com
>> 
>> --
>> libvir-list mailing list
>> libvir-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
> 
> 
> 
> --
> Philipp Heckel
> Principal Engineer & Team Lead
> Datto, Inc.
> +1-475-288-1277
> www.datto.com
> 
> 
> Join the conversation!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160908/2c413257/attachment-0001.htm>


More information about the libvir-list mailing list