Hi Phil,<div><br></div><div>May I ask which libvirt version are you patching against?</div><div>I'm trying to apply this patches to libvirt 2.2.0 but some of them are failing (for example patch 7).</div><div><br></div><div>Thanks.</div><div><br></div><div>Fer<br><br>On jue, sep 8, 2016 at 12:28 , Philipp Heckel <pheckel@datto.com> wrote:<br>
<blockquote type="cite"><div dir="ltr">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). <br><br>Again, if you need test infrastructure, contact me or Jason.<br><br>Here's what we have so far:<br><br>2012<br>----<br>hypervHypervisorDriver.connectGetCapabilities = hypervConnectGetCapabilities; /* 2008 & 2012 */<br>hypervHypervisorDriver.connectGetHostname = hypervConnectGetHostname; /* 2008 & 2012 */<br>hypervHypervisorDriver.connectGetType = hypervConnectGetType; /* 2008 & 2012 */<br>hypervHypervisorDriver.connectIsAlive = hypervConnectIsAlive; /* 2008 & 2012 */<br>hypervHypervisorDriver.connectListAllDomains = hypervConnectListAllDomains2012;<br>hypervHypervisorDriver.connectListDefinedDomains = hypervConnectListDefinedDomains2012;<br>hypervHypervisorDriver.connectListDomains = hypervConnectListDomains2012;<br>hypervHypervisorDriver.connectNumOfDefinedDomains = hypervConnectNumOfDefinedDomains2012;<br>hypervHypervisorDriver.connectNumOfDomains = hypervConnectNumOfDomains2012;<br>hypervHypervisorDriver.domainCreate = hypervDomainCreate2012;<br>hypervHypervisorDriver.domainCreateWithFlags = hypervDomainCreateWithFlags2012;<br>hypervHypervisorDriver.domainDefineXML = hypervDomainDefineXML2012;<br>hypervHypervisorDriver.domainDestroyFlags = hypervDomainDestroyFlags2012;<br>hypervHypervisorDriver.domainDestroy = hypervDomainDestroy2012;<br>hypervHypervisorDriver.domainGetInfo = hypervDomainGetInfo2012;<br>hypervHypervisorDriver.domainGetState = hypervDomainGetState2012;<br>hypervHypervisorDriver.domainGetXMLDesc = hypervDomainGetXMLDesc2012;<br>hypervHypervisorDriver.domainIsActive = hypervDomainIsActive2012;<br>hypervHypervisorDriver.domainLookupByID = hypervDomainLookupByID2012;<br>hypervHypervisorDriver.domainLookupByName = hypervDomainLookupByName2012;<br>hypervHypervisorDriver.domainLookupByUUID = hypervDomainLookupByUUID2012;<br>hypervHypervisorDriver.domainReboot = hypervDomainReboot2012;<br>hypervHypervisorDriver.domainSendKey = hypervDomainSendKey2012;<br>hypervHypervisorDriver.domainSetMemoryFlags = hypervDomainSetMemoryFlags2012;<br>hypervHypervisorDriver.domainSetMemory = hypervDomainSetMemory2012;<br>hypervHypervisorDriver.domainShutdownFlags = hypervDomainShutdownFlags2012;<br>hypervHypervisorDriver.domainShutdown = hypervDomainShutdown2012;       <br>hypervHypervisorDriver.domainUndefineFlags = hypervDomainUndefineFlags2012;<br>hypervHypervisorDriver.domainUndefine = hypervDomainUndefine2012;<br>hypervHypervisorDriver.nodeGetFreeMemory = hypervNodeGetFreeMemory; /* 2008 & 2012 */<br>hypervHypervisorDriver.nodeGetInfo = hypervNodeGetInfo; /* 2008 & 2012 */<br><br>2008<br>----<br>hypervHypervisorDriver.connectGetCapabilities = hypervConnectGetCapabilities; /* 1.2.10 */<br>hypervHypervisorDriver.connectGetHostname = hypervConnectGetHostname; /* 0.9.5 */<br>hypervHypervisorDriver.connectGetMaxVcpus = hypervConnectGetMaxVcpus; /* 1.2.10 */<br>hypervHypervisorDriver.connectGetType = hypervConnectGetType; /* 0.9.5 */<br>hypervHypervisorDriver.connectGetVersion = hypervConnectGetVersion; /* 1.2.10 */<br>hypervHypervisorDriver.connectIsAlive = hypervConnectIsAlive; /* 0.9.8 */<br>hypervHypervisorDriver.connectIsEncrypted = hypervConnectIsEncrypted; /* 0.9.5 */<br>hypervHypervisorDriver.connectIsSecure = hypervConnectIsSecure; /* 0.9.5 */<br>hypervHypervisorDriver.connectListAllDomains = hypervConnectListAllDomains; /* 0.10.2 */<br>hypervHypervisorDriver.connectListDefinedDomains = hypervConnectListDefinedDomains; /* 0.9.5 */<br>hypervHypervisorDriver.connectListDomains = hypervConnectListDomains; /* 0.9.5 */<br>hypervHypervisorDriver.connectNumOfDefinedDomains = hypervConnectNumOfDefinedDomains; /* 0.9.5 */<br>hypervHypervisorDriver.connectNumOfDomains = hypervConnectNumOfDomains; /* 0.9.5 */<br>hypervHypervisorDriver.domainAttachDeviceFlags = hypervDomainAttachDeviceFlags; /* 1.2.10 */<br>hypervHypervisorDriver.domainAttachDevice = hypervDomainAttachDevice; /* 1.2.10 */<br>hypervHypervisorDriver.domainCreate = hypervDomainCreate; /* 0.9.5 */<br>hypervHypervisorDriver.domainCreateWithFlags = hypervDomainCreateWithFlags; /* 0.9.5 */<br>hypervHypervisorDriver.domainCreateXML = hypervDomainCreateXML; /* 1.2.10 */<br>hypervHypervisorDriver.domainDefineXML = hypervDomainDefineXML; /* 1.2.10 */<br>hypervHypervisorDriver.domainDestroyFlags = hypervDomainDestroyFlags; /* 0.9.5 */<br>hypervHypervisorDriver.domainDestroy = hypervDomainDestroy; /* 0.9.5 */<br>hypervHypervisorDriver.domainGetAutostart = hypervDomainGetAutostart; /* 1.2.10 */<br>hypervHypervisorDriver.domainGetInfo = hypervDomainGetInfo; /* 0.9.5 */<br>hypervHypervisorDriver.domainGetMaxVcpus = hypervDomainGetMaxVcpus; /* 1.2.10 */<br>hypervHypervisorDriver.domainGetOSType = hypervDomainGetOSType; /* 0.9.5 */<br>hypervHypervisorDriver.domainGetSchedulerParametersFlags = hypervDomainGetSchedulerParametersFlags; /* 1.2.10 */<br>hypervHypervisorDriver.domainGetSchedulerParameters = hypervDomainGetSchedulerParameters; /* 1.2.10 */<br>hypervHypervisorDriver.domainGetSchedulerType = hypervDomainGetSchedulerType; /* 1.2.10 */<br>hypervHypervisorDriver.domainGetState = hypervDomainGetState; /* 0.9.5 */<br>hypervHypervisorDriver.domainGetVcpusFlags = hypervDomainGetVcpusFlags; /* 1.2.10 */<br>hypervHypervisorDriver.domainGetVcpus = hypervDomainGetVcpus; /* 1.2.10 */<br>hypervHypervisorDriver.domainGetXMLDesc = hypervDomainGetXMLDesc; /* 0.9.5 */<br>hypervHypervisorDriver.domainHasManagedSaveImage = hypervDomainHasManagedSaveImage; /* 0.9.5 */<br>hypervHypervisorDriver.domainIsActive = hypervDomainIsActive; /* 0.9.5 */<br>hypervHypervisorDriver.domainIsPersistent = hypervDomainIsPersistent; /* 0.9.5 */<br>hypervHypervisorDriver.domainIsUpdated = hypervDomainIsUpdated; /* 0.9.5 */<br>hypervHypervisorDriver.domainLookupByID = hypervDomainLookupByID; /* 0.9.5 */<br>hypervHypervisorDriver.domainLookupByName = hypervDomainLookupByName; /* 0.9.5 */<br>hypervHypervisorDriver.domainLookupByUUID = hypervDomainLookupByUUID; /* 0.9.5 */<br>hypervHypervisorDriver.domainManagedSave = hypervDomainManagedSave; /* 0.9.5 */<br>hypervHypervisorDriver.domainManagedSaveRemove = hypervDomainManagedSaveRemove; /* 0.9.5 */<br>hypervHypervisorDriver.domainReboot = hypervDomainReboot; /* 1.3.x */<br>hypervHypervisorDriver.domainResume = hypervDomainResume; /* 0.9.5 */<br>hypervHypervisorDriver.domainScreenshot = hypervDomainScreenshot; /* pjr - 08/08/16 */<br>hypervHypervisorDriver.domainSendKey = hypervDomainSendKey; /* 1.3.x */<br>hypervHypervisorDriver.domainSetAutostart = hypervDomainSetAutostart; /* 1.2.10 */<br>hypervHypervisorDriver.domainSetMaxMemory = hypervDomainSetMaxMemory; /* 1.2.10 */<br>hypervHypervisorDriver.domainSetMemoryFlags = hypervDomainSetMemoryFlags; /* 1.2.10 */<br>hypervHypervisorDriver.domainSetMemory = hypervDomainSetMemory; /* 1.2.10 */<br>hypervHypervisorDriver.domainSetVcpusFlags = hypervDomainSetVcpusFlags; /* 1.2.10 */<br>hypervHypervisorDriver.domainSetVcpus = hypervDomainSetVcpus; /* 1.2.10 */<br>hypervHypervisorDriver.domainShutdownFlags = hypervDomainShutdownFlags; /* 1.2.10 */<br>hypervHypervisorDriver.domainShutdown = hypervDomainShutdown; /* 1.2.10 */<br>hypervHypervisorDriver.domainSuspend = hypervDomainSuspend; /* 0.9.5 */<br>hypervHypervisorDriver.domainUndefineFlags = hypervDomainUndefineFlags; /* 1.2.10 */<br>hypervHypervisorDriver.domainUndefine = hypervDomainUndefine; /* 1.2.10 */<br>hypervHypervisorDriver.nodeGetFreeMemory = hypervNodeGetFreeMemory; /* 1.2.10 */<br>hypervHypervisorDriver.nodeGetInfo = hypervNodeGetInfo; /* 0.9.5 */<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 7, 2016 at 6:17 PM, Matthias Bolte <span dir="ltr"><<a href="mailto:matthias.bolte@googlemail.com" target="_blank">matthias.bolte@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">2016-09-07 23:14 GMT+02:00 Fernando Casas Schössow <<a href="mailto:casasfernando@hotmail.com">casasfernando@hotmail.com</a>>:<br>
> Hi there,<br>
><br>
> I was wondering if any of these patches actually made it into libvirt code.<br>
> I'm really looking forward hyper-v support improvement and features like<br>
> shutdown VM (not destroy/turn off but clean shutdown) implemented.<br>
> Especially interested in 2012/2012 R2 since 2008 is getting old and 2016 is<br>
> right around the corner.<br>
><br>
> I'm already using libvirt 2.1.0 with some patches I found in<br>
> <a href="https://github.com/vikhyath/libvirt-hyperv-r2-2012" rel="noreferrer" target="_blank">https://github.com/vikhyath/<wbr>libvirt-hyperv-r2-2012</a> but it would be great to<br>
> have the code reviewed and merged into libvirt releases.<br>
><br>
> Thanks.<br>
><br>
> Fer<br>
><br>
> The following patches include work originally done by Yves Vinter back<br>
> in 2014. The last patch introduces support for Hyper-V 2012, while still<br>
> supporting 2008. I am not sure that the method I used to include the 2012<br>
> support is the best approach, mainly due to code duplication, but I am<br>
> open to suggestions on how to do this better.<br>
><br>
> Jason Miesionczek (16):<br>
>   hyperv: additional server 2008 wmi classes<br>
>   hyperv: add cim types support to code generator<br>
>   hyperv: add get capabilities<br>
>   hyperv: implement connectGetVersion<br>
>   hyperv: implement vcpu functions<br>
>   hyperv: implement nodeGetFreeMemory<br>
>   hyperv: implement ability to send xml soap requests<br>
>   hyperv: introduce basic network driver<br>
>   hyperv: add domain shutdown function<br>
>   hyperv: add get scheduler functions<br>
>   hyperv: add set memory functions<br>
>   hyperv: set vpcu functions<br>
>   hyperv: domain undefine functions<br>
>   hyperv: domain define and associated functions<br>
>   hyperv: network list functions<br>
>   hyperv: introduce 2012 support<br>
<br>
</div></div>I had a quick look at these patches a while ago, but didn't get around<br>
to review them in detail yet.<br>
<br>
Adding 2012 support while keeping 2008 supported is a bit tricky but<br>
doable I think.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Matthias Bolte<br>
<a href="http://photron.blogspot.com" rel="noreferrer" target="_blank">http://photron.blogspot.com</a><br>
<br>
--<br>
libvir-list mailing list<br>
<a href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/libvir-list" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/libvir-list</a></font></span></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span></span><table dir="ltr" border="0" cellpadding="0" cellspacing="0" width="270"><tbody><tr style="min-height:16pt" height="16"><td style="min-height:16pt;padding-bottom:0in;padding-top:0in" height="16"><b>Philipp Heckel</b><br>Principal Engineer & Team Lead<br>Datto, Inc.<br>+1-475-288-1277<br></td></tr><tr style="min-height:16pt" height="16"><td style="min-height:16pt;padding-bottom:0in;padding-top:0in" height="16"><span><font style="color:rgb(17,85,204)"><a href="http://www.datto.com" target="_blank">www.datto.com</a><br></font></span></td></tr><tr style="min-height:16pt" height="16"><td style="min-height:16pt;padding-bottom:0in;padding-top:0in" height="16"><br></td></tr><tr style="min-height:16pt" height="16"><td style="min-height:16pt;padding-bottom:0in;padding-top:0in" height="16"><a href="http://dattobackup.com/emea-email-signature" style="color:rgb(17,85,204)" target="_blank"><img src="http://connect.dattobackup.com/rs/datto/images/emea-email-signature.png" alt="datto-email-signature" height="92" width="200"></a><br></td></tr><tr style="min-height:15pt" height="15"><td style="min-height:15pt;padding-bottom:0in;padding-top:0in" height="15"><font size="1">Join the conversation!</font> <a href="http://www.facebook.com/dattoinc" style="color:rgb(17,85,204);font-family:Verdana,Arial,Helvetica,sans-serif" target="_blank"><img alt="Facebook" src="https://s3.amazonaws.com/images.wisestamp.com/facebook.png" style="padding:0px 0px 5px;vertical-align:middle" border="0" height="16" width="16"></a><span style="font-family:Verdana,Arial,Helvetica,sans-serif"> </span><a href="https://twitter.com/dattobackup" style="color:rgb(17,85,204);font-family:Verdana,Arial,Helvetica,sans-serif" target="_blank"><img alt="Twitter" src="https://s3.amazonaws.com/images.wisestamp.com/twitter.png" style="padding:0px 0px 5px;vertical-align:middle" border="0" height="16" width="16"></a><span style="font-family:Verdana,Arial,Helvetica,sans-serif"> </span><a href="http://www.linkedin.com/company/1477873?trk=tyah" style="color:rgb(17,85,204);font-family:Verdana,Arial,Helvetica,sans-serif" target="_blank"><img alt="LinkedIn" src="https://s3.amazonaws.com/images.wisestamp.com/linkedin.png" style="padding:0px 0px 5px;vertical-align:middle" border="0" height="16" width="16"></a><span style="font-family:Verdana,Arial,Helvetica,sans-serif"> </span><a href="http://pinterest.com/dattobackup/" style="color:rgb(17,85,204);font-family:Verdana,Arial,Helvetica,sans-serif" target="_blank"><img alt="pinterest" src="https://s3.amazonaws.com/images.wisestamp.com/pinterest.png" style="padding:0px 0px 5px;vertical-align:middle" border="0" height="16" width="16"></a><span style="font-family:Verdana,Arial,Helvetica,sans-serif"> </span><a href="http://blog.dattobackup.com/blog" style="color:rgb(17,85,204);font-family:Verdana,Arial,Helvetica,sans-serif" target="_blank"><img alt="Blog RSS" src="https://s3.amazonaws.com/images.wisestamp.com/blogRSS.png" style="padding:0px 0px 5px;vertical-align:middle" border="0" height="16" width="16"></a><span style="font-family:Verdana,Arial,Helvetica,sans-serif"> </span><a href="http://www.youtube.com/user/DattoInc/featured" style="color:rgb(17,85,204);font-family:Verdana,Arial,Helvetica,sans-serif" target="_blank"><img alt="YouTube" src="https://s3.amazonaws.com/images.wisestamp.com/youtube.png" style="padding:0px 0px 5px;vertical-align:middle" border="0" height="16" width="16"></a><span style="font-family:Verdana,Arial,Helvetica,sans-serif"> </span><a href="https://plus.google.com/u/0/108292366419623632143/posts" style="color:rgb(17,85,204);font-family:Verdana,Arial,Helvetica,sans-serif" target="_blank"><img alt="Google Plus Page" src="https://s3.amazonaws.com/images.wisestamp.com/googlepluspage.png" style="padding:0px 0px 5px;vertical-align:middle" border="0" height="16" width="16"></a></td></tr></tbody></table></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>
</blockquote></div>