Make the 'name' parameter optional and return all processors from the
host if name is not specified.
---
src/hyperv/hyperv_driver.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
index 1031076a28..7cd83e7565 100644
--- a/src/hyperv/hyperv_driver.c
+++ b/src/hyperv/hyperv_driver.c
@@ -56,15 +56,20 @@ VIR_LOG_INIT("hyperv.hyperv_driver");
*/
static int
-hypervGetProcessorsByName(hypervPrivate *priv, const char *name,
- Win32_Processor **processorList)
+hypervGetProcessorList(hypervPrivate *priv, const char *computer_name,
+ Win32_Processor **processorList)
{
g_auto(virBuffer) query = VIR_BUFFER_INITIALIZER;
- virBufferEscapeSQL(&query,
- "ASSOCIATORS OF {Win32_ComputerSystem.Name='%s'} "
- "WHERE AssocClass = Win32_ComputerSystemProcessor "
- "ResultClass = Win32_Processor",
- name);
+ if (computer_name) {
+ virBufferEscapeSQL(&query,
+ "ASSOCIATORS OF {Win32_ComputerSystem.Name='%s'} "
+ "WHERE AssocClass = Win32_ComputerSystemProcessor "
+ "ResultClass = Win32_Processor",
+ computer_name);
+
+ } else {
+ virBufferAddLit(&query, WIN32_PROCESSOR_WQL_SELECT);
+ }
if (hypervGetWmiClass(Win32_Processor, processorList) < 0)
return -1;
@@ -72,7 +77,7 @@ hypervGetProcessorsByName(hypervPrivate *priv, const char
*name,
if (!*processorList) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Could not look up processor(s) on '%1$s'"),
- name);
+ computer_name);
return -1;
}
@@ -1933,7 +1938,7 @@ hypervNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info)
if (hypervGetPhysicalSystemList(priv, &computerSystem) < 0)
return -1;
- if (hypervGetProcessorsByName(priv, computerSystem->data->Name,
&processorList) < 0) {
+ if (hypervGetProcessorList(priv, computerSystem->data->Name,
&processorList) < 0) {
return -1;
}
--
2.54.0