[PATCH 00/55] Hyper-V: code cleanup & prep for future changes
Neal Gompa
ngompa13 at gmail.com
Thu Jan 21 18:59:30 UTC 2021
On Thu, Jan 21, 2021 at 1:53 PM Matt Coleman <mcoleman at datto.com> wrote:
>
> This series of patches simplifies the code in several ways and makes a
> few changes required by the next round of patches that I'll submit.
>
> Simplifications:
>
> * add a macro to cut down on repetitive SettingData code
> * enable GLib auto-cleanup for hypervObject and several OpenWSMAN types
>
> Changes:
>
> * store the version in hypervPrivate, which will be used to handle
> breaking changes in the Hyper-V API: despite 2012R2 and 2016+ all
> using Hyper-V's "V2" API, backwards-incompatible changes were made in
> 2016
> * add inheritance to the WMI generator to simplify handling of the
> backwards-incompatible changes introduced in Hyper-V 2016
>
> Matt Coleman (55):
> hyperv: add a macro for retrieving setting data
> hyperv: store the Hyper-V version when connecting
> hyperv: add inheritance to the WMI generator
> hyperv: store hypervPrivate in hypervObject
> hyperv: enable use of g_autoptr for hypervObject
> hyperv: enable use of g_autoptr for the rest of the CIM/WMI classes
> hyperv: enable automatic cleanup for OpenWSMAN types
> hyperv: use g_autoptr for Win32_OperatingSystem in hypervConnectOpen
> hyperv: use g_autoptr for Win32_ComputerSystem in
> hypervConnectGetHostname
> hyperv: use g_autoptr for Msvm_ProcessorSettingData in
> hypervConnectGetMaxVcpus
> hyperv: use g_autoptr for WMI classes in hypervNodeGetInfo
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervConnectNumOfDomains
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervConnectListDomains
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainLookupByID
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainLookupByUUID
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainLookupByName
> hyperv: use g_autoptr for Msvm_ComputerSystem in hypervDomainResume
> hyperv: use g_autoptr for WMI classes in hypervDomainShutdownFlags
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainDestroyFlags
> hyperv: use g_autoptr for WMI classes in hypervDomainGetMaxMemory
> hyperv: use g_autoptr for WMI classes in hypervDomainSetMemoryProperty
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervRequestStateChange
> hyperv: use g_autoptr for Win32_ComputerSystemProduct in
> hypervLookupHostSystemBiosUuid
> hyperv: use g_autoptr for Msvm_ResourceAllocationSettingData in
> hypervDomainAttachPhysicalDisk
> hyperv: use g_autoptr for WMI classes in hypervDomainAttachStorage
> hyperv: use g_autoptr for Msvm_DiskDrive in
> hypervDomainDefParsePhysicalDisk
> hyperv: use g_autoptr for WMI classes in hypervDomainGetInfo
> hyperv: use g_autoptr for Msvm_ComputerSystem in hypervDomainGetState
> hyperv: use g_autoptr for WMI classes in hypervDomainSetVcpusFlags
> hyperv: use g_autoptr for WMI classes in hypervDomainGetVcpusFlags
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervConnectListDefinedDomains
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervConnectNumOfDefinedDomains
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainCreateWithFlags
> hyperv: use g_autoptr for Msvm_VirtualSystemSettingData in
> hypervDomainGetAutostart
> hyperv: use g_autoptr for Msvm_VirtualSystemSettingData in
> hypervDomainSetAutostart
> hyperv: use g_autoptr for WMI classes in
> hypervDomainGetSchedulerParametersFlags
> hyperv: use g_autoptr for Msvm_ComputerSystem in hypervDomainIsActive
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainManagedSave
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainHasManagedSaveImage
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervDomainManagedSaveRemove
> hyperv: use g_autoptr for Msvm_ComputerSystem in
> hypervConnectListAllDomains
> hyperv: use GLib auto-cleanup in hypervDomainSendKey
> hyperv: use GLib auto-cleanup in hypervInvokeMethod
> hyperv: use GLib auto-cleanup in
> hypervInvokeMsvmComputerSystemRequestStateChange
> hyperv: use GLib auto-cleanup in hypervMsvmVSMSAddResourceSettings and
> hypervMsvmVSMSModifyResourceSettings
> hyperv: use g_autoptr for
> Win32_PerfRawData_HvStats_HyperVHypervisorVirtualProcessor in
> hypervDomainGetVcpus
> hyperv: use g_autoptr for Win32_OperatingSystem in
> hypervNodeGetFreeMemory
> hyperv: use GLib auto-cleanup in hypervDomainGetXMLDesc
> hyperv: use g_autoptr for WMI classes in hypervDomainAttachDeviceFlags
> hyperv: use GLib auto-cleanup in hypervSerializeEprParam
> hyperv: use GLib auto-cleanup in hypervEnumAndPull
> hyperv: use GLib auto-cleanup in hypervSerializeEmbeddedParam
> hyperv: use GLib auto-cleanup in hypervCreateInvokeXmlDoc
> hyperv: use g_auto for WsXmlDocH in hypervDomainAttachVirtualDisk
> hyperv: use g_auto for WsXmlDocH in hypervDomainAttachCDROM
>
> scripts/hyperv_wmi_generator.py | 16 +-
> src/hyperv/hyperv_driver.c | 755 +++++++++++---------------------
> src/hyperv/hyperv_private.h | 4 +-
> src/hyperv/hyperv_wmi.c | 408 +++++++----------
> src/hyperv/hyperv_wmi.h | 4 +-
> src/hyperv/hyperv_wsman.h | 28 ++
> 6 files changed, 457 insertions(+), 758 deletions(-)
> create mode 100644 src/hyperv/hyperv_wsman.h
>
> --
> 2.30.0
Quite the doozy, but looks mostly repetitious and simple...
Reviewed-by: Neal Gompa <ngompa13 at gmail.com>
--
真実はいつも一つ!/ Always, there's only one truth!
More information about the libvir-list
mailing list