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

Fernando Casas Schössow casasfernando at hotmail.com
Thu Sep 8 17:20:08 UTC 2016


Disregard my last email, it seems that while copying the patches from 
my browser some invisible chars got in. So I extracted the patches from 
the mailist txt archive.
Now they are all applied just fine.

Thanks.

On jue, sep 8, 2016 at 6:48 , Fernando Casas Schössow 
<casasfernando at hotmail.com> wrote:
> 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/d38b8eba/attachment-0001.htm>


More information about the libvir-list mailing list