[PATCH v2 01/10] hyperv: make Msvm_ComputerSystem WQL queries locale agnostic

Neal Gompa ngompa13 at gmail.com
Tue Oct 6 00:54:11 UTC 2020


On Mon, Oct 5, 2020 at 12:21 PM Matt Coleman <mcoleman at datto.com> wrote:
>
> There are two specific WQL queries we're using to get either a list of
> virtual machines or the hypervisor host itself from Msvm_ComputerSystem.
> Those queries rely on filtering results based on the "Description"
> field. Since the "Description" field is locale sensitive, the queries
> will fail if the Windows host is using a language pack. While the WSMAN
> spec allows the client to set the requested locale (and it is supported
> since openwsman 2.6.x), the Windows WinRM service does not respect this
> setting: it returns non-English strings despite the WSMAN request
> properly setting the locale to 'en-US'. Therefore, this patch changes
> the WQL query to make use of the "__SERVER" field to stop relying on
> English strings in queries and side step the issue.
>
> Co-authored-by: Dawid Zamirski <dzamirski at datto.com>
> Signed-off-by: Matt Coleman <matt at datto.com>
> ---
>  src/hyperv/hyperv_wmi_classes.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/hyperv/hyperv_wmi_classes.h b/src/hyperv/hyperv_wmi_classes.h
> index a19b6a656d..7465684d6e 100644
> --- a/src/hyperv/hyperv_wmi_classes.h
> +++ b/src/hyperv/hyperv_wmi_classes.h
> @@ -44,10 +44,10 @@
>   */
>
>  #define MSVM_COMPUTERSYSTEM_WQL_VIRTUAL \
> -    "Description = \"Microsoft Virtual Machine\" "
> +    "Name != __SERVER "
>
>  #define MSVM_COMPUTERSYSTEM_WQL_PHYSICAL \
> -    "Description = \"Microsoft Hosting Computer System\" "
> +    "Name = __SERVER "
>
>  #define MSVM_COMPUTERSYSTEM_WQL_ACTIVE \
>      "(EnabledState != 0 and EnabledState != 3 and EnabledState != 32769) "
> --
> 2.27.0
>
>

Should we require a bump to openwsman 2.6 for this?


-- 
真実はいつも一つ!/ Always, there's only one truth!





More information about the libvir-list mailing list