[PATCH 00/55] Hyper-V: code cleanup & prep for future changes

Matt Coleman mcoleman at datto.com
Thu Jan 21 18:50:40 UTC 2021


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





More information about the libvir-list mailing list