mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
hyperv: remove hypervPrivate->wmiVersion
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Matt Coleman <matt@datto.com>
This commit is contained in:
parent
6f88eb77e4
commit
a4b8722f36
@ -318,11 +318,6 @@ static int
|
||||
hypervInitConnection(virConnectPtr conn, hypervPrivate *priv,
|
||||
char *username, char *password)
|
||||
{
|
||||
g_auto(virBuffer) query = VIR_BUFFER_INITIALIZER;
|
||||
hypervWqlQuery wqlQuery = HYPERV_WQL_QUERY_INITIALIZER;
|
||||
hypervObject *computerSystem = NULL;
|
||||
int ret = -1;
|
||||
|
||||
/* Initialize the openwsman connection */
|
||||
priv->client = wsmc_create(conn->uri->server, conn->uri->port, "/wsman",
|
||||
priv->parsedUri->transport, username, password);
|
||||
@ -330,47 +325,19 @@ hypervInitConnection(virConnectPtr conn, hypervPrivate *priv,
|
||||
if (priv->client == NULL) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("Could not create openwsman client"));
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (wsmc_transport_init(priv->client, NULL) != 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("Could not initialize openwsman transport"));
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* FIXME: Currently only basic authentication is supported */
|
||||
wsman_transport_set_auth_method(priv->client, "basic");
|
||||
|
||||
wqlQuery.info = Msvm_ComputerSystem_WmiInfo;
|
||||
wqlQuery.query = &query;
|
||||
|
||||
virBufferAddLit(&query,
|
||||
MSVM_COMPUTERSYSTEM_WQL_SELECT
|
||||
"WHERE " MSVM_COMPUTERSYSTEM_WQL_PHYSICAL);
|
||||
|
||||
/* try query using V2 namespace (for Hyper-V 2012+) */
|
||||
priv->wmiVersion = HYPERV_WMI_VERSION_V2;
|
||||
|
||||
if (hypervEnumAndPull(priv, &wqlQuery, &computerSystem) < 0) {
|
||||
/* rebuild query because hypervEnumAndPull consumes it */
|
||||
virBufferAddLit(&query,
|
||||
MSVM_COMPUTERSYSTEM_WQL_SELECT
|
||||
"WHERE " MSVM_COMPUTERSYSTEM_WQL_PHYSICAL);
|
||||
|
||||
/* fall back to V1 namespace (for Hyper-V 2008) */
|
||||
priv->wmiVersion = HYPERV_WMI_VERSION_V1;
|
||||
|
||||
if (hypervEnumAndPull(priv, &wqlQuery, &computerSystem) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
hypervFreeObject(priv, computerSystem);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -774,19 +741,7 @@ hypervDomainLookupByName(virConnectPtr conn, const char *name)
|
||||
static int
|
||||
hypervDomainSuspend(virDomainPtr domain)
|
||||
{
|
||||
hypervPrivate *priv = domain->conn->privateData;
|
||||
int requestedState = -1;
|
||||
|
||||
switch (priv->wmiVersion) {
|
||||
case HYPERV_WMI_VERSION_V1:
|
||||
requestedState = MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_PAUSED;
|
||||
break;
|
||||
case HYPERV_WMI_VERSION_V2:
|
||||
requestedState = MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_QUIESCE;
|
||||
break;
|
||||
}
|
||||
|
||||
return hypervRequestStateChange(domain, requestedState);
|
||||
return hypervRequestStateChange(domain, MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_QUIESCE);
|
||||
}
|
||||
|
||||
|
||||
@ -796,21 +751,11 @@ hypervDomainResume(virDomainPtr domain)
|
||||
int result = -1;
|
||||
hypervPrivate *priv = domain->conn->privateData;
|
||||
Msvm_ComputerSystem *computerSystem = NULL;
|
||||
int expectedState = -1;
|
||||
|
||||
switch (priv->wmiVersion) {
|
||||
case HYPERV_WMI_VERSION_V1:
|
||||
expectedState = MSVM_COMPUTERSYSTEM_ENABLEDSTATE_PAUSED;
|
||||
break;
|
||||
case HYPERV_WMI_VERSION_V2:
|
||||
expectedState = MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_QUIESCE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
||||
return -1;
|
||||
|
||||
if (computerSystem->data.common->EnabledState != expectedState) {
|
||||
if (computerSystem->data.common->EnabledState != MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_QUIESCE) {
|
||||
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
|
||||
_("Domain is not paused"));
|
||||
goto cleanup;
|
||||
@ -867,7 +812,7 @@ hypervDomainShutdownFlags(virDomainPtr domain, unsigned int flags)
|
||||
"SystemCreationClassName=\"Msvm_ComputerSystem\"&SystemName=\"%s\"",
|
||||
shutdown->data.common->DeviceID, uuid);
|
||||
|
||||
params = hypervCreateInvokeParamsList(priv, "InitiateShutdown", selector,
|
||||
params = hypervCreateInvokeParamsList("InitiateShutdown", selector,
|
||||
Msvm_ShutdownComponent_WmiInfo);
|
||||
if (!params)
|
||||
goto cleanup;
|
||||
@ -1096,10 +1041,7 @@ hypervDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
|
||||
|
||||
def->name = g_strdup(computerSystem->data.common->ElementName);
|
||||
|
||||
if (priv->wmiVersion == HYPERV_WMI_VERSION_V1) {
|
||||
def->description = g_strdup(virtualSystemSettingData->data.v1->Notes);
|
||||
} else if (priv->wmiVersion == HYPERV_WMI_VERSION_V2 &&
|
||||
virtualSystemSettingData->data.v2->Notes.data != NULL) {
|
||||
if (virtualSystemSettingData->data.v2->Notes.data) {
|
||||
char **notes = (char **)virtualSystemSettingData->data.v2->Notes.data;
|
||||
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
|
||||
size_t i = 0;
|
||||
@ -1259,32 +1201,17 @@ hypervDomainGetAutostart(virDomainPtr domain, int *autostart)
|
||||
int result = -1;
|
||||
char uuid_string[VIR_UUID_STRING_BUFLEN];
|
||||
hypervPrivate *priv = domain->conn->privateData;
|
||||
g_auto(virBuffer) query = VIR_BUFFER_INITIALIZER;
|
||||
Msvm_VirtualSystemGlobalSettingData *vsgsd = NULL;
|
||||
Msvm_VirtualSystemSettingData *vssd = NULL;
|
||||
|
||||
virUUIDFormat(domain->uuid, uuid_string);
|
||||
|
||||
if (priv->wmiVersion == HYPERV_WMI_VERSION_V1) {
|
||||
virBufferEscapeSQL(&query,
|
||||
MSVM_VIRTUALSYSTEMGLOBALSETTINGDATA_WQL_SELECT
|
||||
"WHERE SystemName = '%s'", uuid_string);
|
||||
|
||||
if (hypervGetWmiClass(Msvm_VirtualSystemGlobalSettingData, &vsgsd) < 0)
|
||||
goto cleanup;
|
||||
|
||||
*autostart = vsgsd->data.common->AutomaticStartupAction == 2;
|
||||
result = 0;
|
||||
} else {
|
||||
if (hypervGetMsvmVirtualSystemSettingDataFromUUID(priv, uuid_string, &vssd) < 0)
|
||||
goto cleanup;
|
||||
|
||||
*autostart = vssd->data.v2->AutomaticStartupAction == 4;
|
||||
result = 0;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
hypervFreeObject(priv, (hypervObject *)vsgsd);
|
||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
||||
|
||||
return result;
|
||||
@ -1299,64 +1226,32 @@ hypervDomainSetAutostart(virDomainPtr domain, int autostart)
|
||||
hypervPrivate *priv = domain->conn->privateData;
|
||||
Msvm_VirtualSystemSettingData *vssd = NULL;
|
||||
g_autoptr(hypervInvokeParamsList) params = NULL;
|
||||
g_auto(virBuffer) eprQuery = VIR_BUFFER_INITIALIZER;
|
||||
g_autoptr(GHashTable) autostartParam = NULL;
|
||||
const char *methodName = NULL;
|
||||
hypervWmiClassInfoListPtr embeddedParamClass = NULL;
|
||||
const char *enabledValue = NULL, *disabledValue = NULL;
|
||||
const char *embeddedParamName = NULL;
|
||||
|
||||
switch (priv->wmiVersion) {
|
||||
case HYPERV_WMI_VERSION_V1:
|
||||
methodName = "ModifyVirtualSystem";
|
||||
embeddedParamClass = Msvm_VirtualSystemGlobalSettingData_WmiInfo;
|
||||
enabledValue = "2";
|
||||
disabledValue = "0";
|
||||
embeddedParamName = "SystemSettingData";
|
||||
break;
|
||||
case HYPERV_WMI_VERSION_V2:
|
||||
methodName = "ModifySystemSettings";
|
||||
embeddedParamClass = Msvm_VirtualSystemSettingData_WmiInfo;
|
||||
enabledValue = "4";
|
||||
disabledValue = "2";
|
||||
embeddedParamName = "SystemSettings";
|
||||
break;
|
||||
}
|
||||
|
||||
virUUIDFormat(domain->uuid, uuid_string);
|
||||
|
||||
if (hypervGetMsvmVirtualSystemSettingDataFromUUID(priv, uuid_string, &vssd) < 0)
|
||||
goto cleanup;
|
||||
|
||||
params = hypervCreateInvokeParamsList(priv, methodName,
|
||||
params = hypervCreateInvokeParamsList("ModifySystemSettings",
|
||||
MSVM_VIRTUALSYSTEMMANAGEMENTSERVICE_SELECTOR,
|
||||
Msvm_VirtualSystemManagementService_WmiInfo);
|
||||
|
||||
if (!params)
|
||||
goto cleanup;
|
||||
|
||||
if (priv->wmiVersion == HYPERV_WMI_VERSION_V1) {
|
||||
virBufferEscapeSQL(&eprQuery,
|
||||
MSVM_COMPUTERSYSTEM_WQL_SELECT "WHERE Name = '%s'",
|
||||
uuid_string);
|
||||
|
||||
if (hypervAddEprParam(params, "ComputerSystem", priv, &eprQuery,
|
||||
Msvm_ComputerSystem_WmiInfo) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
autostartParam = hypervCreateEmbeddedParam(priv, embeddedParamClass);
|
||||
autostartParam = hypervCreateEmbeddedParam(Msvm_VirtualSystemSettingData_WmiInfo);
|
||||
|
||||
if (hypervSetEmbeddedProperty(autostartParam, "AutomaticStartupAction",
|
||||
autostart ? enabledValue : disabledValue) < 0)
|
||||
autostart ? "4" : "2") < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (hypervSetEmbeddedProperty(autostartParam, "InstanceID",
|
||||
vssd->data.common->InstanceID) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (hypervAddEmbeddedParam(params, priv, embeddedParamName,
|
||||
&autostartParam, embeddedParamClass) < 0)
|
||||
if (hypervAddEmbeddedParam(params, "SystemSettings",
|
||||
&autostartParam, Msvm_VirtualSystemSettingData_WmiInfo) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (hypervInvokeMethod(priv, ¶ms, NULL) < 0)
|
||||
@ -1480,19 +1375,9 @@ hypervDomainManagedSave(virDomainPtr domain, unsigned int flags)
|
||||
hypervPrivate *priv = domain->conn->privateData;
|
||||
Msvm_ComputerSystem *computerSystem = NULL;
|
||||
bool in_transition = false;
|
||||
int requestedState = -1;
|
||||
|
||||
virCheckFlags(0, -1);
|
||||
|
||||
switch (priv->wmiVersion) {
|
||||
case HYPERV_WMI_VERSION_V1:
|
||||
requestedState = MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_SUSPENDED;
|
||||
break;
|
||||
case HYPERV_WMI_VERSION_V2:
|
||||
requestedState = MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_OFFLINE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -1503,7 +1388,7 @@ hypervDomainManagedSave(virDomainPtr domain, unsigned int flags)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
result = hypervInvokeMsvmComputerSystemRequestStateChange(domain, requestedState);
|
||||
result = hypervInvokeMsvmComputerSystemRequestStateChange(domain, MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_OFFLINE);
|
||||
|
||||
cleanup:
|
||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
||||
@ -1749,7 +1634,7 @@ hypervDomainSendKey(virDomainPtr domain, unsigned int codeset,
|
||||
for (i = 0; i < nkeycodes; i++) {
|
||||
g_snprintf(keycodeStr, sizeof(keycodeStr), "%d", translatedKeycodes[i]);
|
||||
|
||||
params = hypervCreateInvokeParamsList(priv, "PressKey", selector,
|
||||
params = hypervCreateInvokeParamsList("PressKey", selector,
|
||||
Msvm_Keyboard_WmiInfo);
|
||||
|
||||
if (!params)
|
||||
@ -1769,7 +1654,7 @@ hypervDomainSendKey(virDomainPtr domain, unsigned int codeset,
|
||||
/* release the keys */
|
||||
for (i = 0; i < nkeycodes; i++) {
|
||||
g_snprintf(keycodeStr, sizeof(keycodeStr), "%d", translatedKeycodes[i]);
|
||||
params = hypervCreateInvokeParamsList(priv, "ReleaseKey", selector,
|
||||
params = hypervCreateInvokeParamsList("ReleaseKey", selector,
|
||||
Msvm_Keyboard_WmiInfo);
|
||||
|
||||
if (!params)
|
||||
@ -1805,7 +1690,6 @@ hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory,
|
||||
unsigned long memory_mb = VIR_ROUND_UP(VIR_DIV_UP(memory, 1024), 2);
|
||||
Msvm_VirtualSystemSettingData *vssd = NULL;
|
||||
Msvm_MemorySettingData *memsd = NULL;
|
||||
g_auto(virBuffer) eprQuery = VIR_BUFFER_INITIALIZER;
|
||||
g_autoptr(GHashTable) memResource = NULL;
|
||||
|
||||
virCheckFlags(0, -1);
|
||||
@ -1820,31 +1704,14 @@ hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory,
|
||||
if (hypervGetMemorySD(priv, vssd->data.common->InstanceID, &memsd) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (priv->wmiVersion == HYPERV_WMI_VERSION_V1) {
|
||||
params = hypervCreateInvokeParamsList(priv, "ModifyVirtualSystemResources",
|
||||
params = hypervCreateInvokeParamsList("ModifyResourceSettings",
|
||||
MSVM_VIRTUALSYSTEMMANAGEMENTSERVICE_SELECTOR,
|
||||
Msvm_VirtualSystemManagementService_WmiInfo);
|
||||
|
||||
if (!params)
|
||||
goto cleanup;
|
||||
|
||||
virBufferEscapeSQL(&eprQuery,
|
||||
MSVM_COMPUTERSYSTEM_WQL_SELECT
|
||||
"WHERE Name = '%s'", uuid_string);
|
||||
|
||||
if (hypervAddEprParam(params, "ComputerSystem", priv, &eprQuery,
|
||||
Msvm_ComputerSystem_WmiInfo) < 0)
|
||||
goto cleanup;
|
||||
} else if (priv->wmiVersion == HYPERV_WMI_VERSION_V2) {
|
||||
params = hypervCreateInvokeParamsList(priv, "ModifyResourceSettings",
|
||||
MSVM_VIRTUALSYSTEMMANAGEMENTSERVICE_SELECTOR,
|
||||
Msvm_VirtualSystemManagementService_WmiInfo);
|
||||
|
||||
if (!params)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
memResource = hypervCreateEmbeddedParam(priv, Msvm_MemorySettingData_WmiInfo);
|
||||
memResource = hypervCreateEmbeddedParam(Msvm_MemorySettingData_WmiInfo);
|
||||
if (!memResource)
|
||||
goto cleanup;
|
||||
|
||||
@ -1856,19 +1723,11 @@ hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (priv->wmiVersion == HYPERV_WMI_VERSION_V1) {
|
||||
if (hypervAddEmbeddedParam(params, priv, "ResourceSettingData",
|
||||
&memResource, Msvm_MemorySettingData_WmiInfo) < 0) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
} else if (priv->wmiVersion == HYPERV_WMI_VERSION_V2) {
|
||||
if (hypervAddEmbeddedParam(params, priv, "ResourceSettings",
|
||||
if (hypervAddEmbeddedParam(params, "ResourceSettings",
|
||||
&memResource, Msvm_MemorySettingData_WmiInfo) < 0) {
|
||||
hypervFreeEmbeddedParam(memResource);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
if (hypervInvokeMethod(priv, ¶ms, NULL) < 0)
|
||||
goto cleanup;
|
||||
|
@ -29,16 +29,9 @@
|
||||
#include "hyperv_util.h"
|
||||
#include "capabilities.h"
|
||||
|
||||
typedef enum _hypervWmiVersion hypervWmiVersion;
|
||||
enum _hypervWmiVersion {
|
||||
HYPERV_WMI_VERSION_V1,
|
||||
HYPERV_WMI_VERSION_V2,
|
||||
};
|
||||
|
||||
typedef struct _hypervPrivate hypervPrivate;
|
||||
struct _hypervPrivate {
|
||||
hypervParsedUri *parsedUri;
|
||||
WsManClient *client;
|
||||
hypervWmiVersion wmiVersion;
|
||||
virCapsPtr caps;
|
||||
};
|
||||
|
@ -48,10 +48,8 @@
|
||||
VIR_LOG_INIT("hyperv.hyperv_wmi");
|
||||
|
||||
static int
|
||||
hypervGetWmiClassInfo(hypervPrivate *priv, hypervWmiClassInfoListPtr list,
|
||||
hypervWmiClassInfoPtr *info)
|
||||
hypervGetWmiClassInfo(hypervWmiClassInfoListPtr list, hypervWmiClassInfoPtr *info)
|
||||
{
|
||||
const char *version = "v2";
|
||||
size_t i;
|
||||
|
||||
if (list->count == 0) {
|
||||
@ -66,19 +64,15 @@ hypervGetWmiClassInfo(hypervPrivate *priv, hypervWmiClassInfoListPtr list,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (priv->wmiVersion == HYPERV_WMI_VERSION_V1)
|
||||
version = "v1";
|
||||
|
||||
for (i = 0; i < list->count; i++) {
|
||||
if (STRCASEEQ(list->objs[i]->version, version)) {
|
||||
if (STRCASEEQ(list->objs[i]->version, "v2")) {
|
||||
*info = list->objs[i];
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Could not match WMI class info for version %s"),
|
||||
version);
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("Could not match WMI class info for version v2"));
|
||||
|
||||
return -1;
|
||||
}
|
||||
@ -158,7 +152,6 @@ hypervVerifyResponse(WsManClient *client, WsXmlDocH response,
|
||||
|
||||
/*
|
||||
* hypervCreateInvokeParamsList:
|
||||
* @priv: hypervPrivate object associated with the connection.
|
||||
* @method: The name of the method you are calling
|
||||
* @selector: The selector for the object you are invoking the method on
|
||||
* @obj: The WmiInfo of the object class you are invoking the method on.
|
||||
@ -169,13 +162,14 @@ hypervVerifyResponse(WsManClient *client, WsXmlDocH response,
|
||||
* be freed by hypervInvokeMethod. Otherwise returns NULL.
|
||||
*/
|
||||
hypervInvokeParamsListPtr
|
||||
hypervCreateInvokeParamsList(hypervPrivate *priv, const char *method,
|
||||
const char *selector, hypervWmiClassInfoListPtr obj)
|
||||
hypervCreateInvokeParamsList(const char *method,
|
||||
const char *selector,
|
||||
hypervWmiClassInfoListPtr obj)
|
||||
{
|
||||
hypervInvokeParamsListPtr params = NULL;
|
||||
hypervWmiClassInfoPtr info = NULL;
|
||||
|
||||
if (hypervGetWmiClassInfo(priv, obj, &info) < 0)
|
||||
if (hypervGetWmiClassInfo(obj, &info) < 0)
|
||||
return NULL;
|
||||
|
||||
params = g_new0(hypervInvokeParamsList, 1);
|
||||
@ -285,14 +279,15 @@ hypervAddSimpleParam(hypervInvokeParamsListPtr params, const char *name,
|
||||
* Adds an EPR param to the params list. Returns -1 on failure, 0 on success.
|
||||
*/
|
||||
int
|
||||
hypervAddEprParam(hypervInvokeParamsListPtr params, const char *name,
|
||||
hypervPrivate *priv, virBufferPtr query,
|
||||
hypervAddEprParam(hypervInvokeParamsListPtr params,
|
||||
const char *name,
|
||||
virBufferPtr query,
|
||||
hypervWmiClassInfoListPtr eprInfo)
|
||||
{
|
||||
hypervParamPtr p = NULL;
|
||||
hypervWmiClassInfoPtr classInfo = NULL;
|
||||
|
||||
if (hypervGetWmiClassInfo(priv, eprInfo, &classInfo) < 0 ||
|
||||
if (hypervGetWmiClassInfo(eprInfo, &classInfo) < 0 ||
|
||||
hypervCheckParams(params) < 0)
|
||||
return -1;
|
||||
|
||||
@ -309,7 +304,6 @@ hypervAddEprParam(hypervInvokeParamsListPtr params, const char *name,
|
||||
|
||||
/*
|
||||
* hypervCreateEmbeddedParam:
|
||||
* @priv: hypervPrivate object associated with the connection
|
||||
* @info: WmiInfo of the object type to serialize
|
||||
*
|
||||
* Instantiates a GHashTable pre-filled with all the properties pre-added
|
||||
@ -319,7 +313,7 @@ hypervAddEprParam(hypervInvokeParamsListPtr params, const char *name,
|
||||
* Returns a pointer to the GHashTable on success, otherwise NULL.
|
||||
*/
|
||||
GHashTable *
|
||||
hypervCreateEmbeddedParam(hypervPrivate *priv, hypervWmiClassInfoListPtr info)
|
||||
hypervCreateEmbeddedParam(hypervWmiClassInfoListPtr info)
|
||||
{
|
||||
size_t i;
|
||||
size_t count;
|
||||
@ -328,7 +322,7 @@ hypervCreateEmbeddedParam(hypervPrivate *priv, hypervWmiClassInfoListPtr info)
|
||||
hypervWmiClassInfoPtr classInfo = NULL;
|
||||
|
||||
/* Get the typeinfo out of the class info list */
|
||||
if (hypervGetWmiClassInfo(priv, info, &classInfo) < 0)
|
||||
if (hypervGetWmiClassInfo(info, &classInfo) < 0)
|
||||
return NULL;
|
||||
|
||||
typeinfo = classInfo->serializerInfo;
|
||||
@ -377,7 +371,6 @@ hypervSetEmbeddedProperty(GHashTable *table,
|
||||
/*
|
||||
* hypervAddEmbeddedParam:
|
||||
* @params: Params list to add to
|
||||
* @priv: hypervPrivate object associated with the connection
|
||||
* @name: Name of the parameter
|
||||
* @table: pointer to table of properties to add
|
||||
* @info: WmiInfo of the object to serialize
|
||||
@ -391,7 +384,6 @@ hypervSetEmbeddedProperty(GHashTable *table,
|
||||
*/
|
||||
int
|
||||
hypervAddEmbeddedParam(hypervInvokeParamsListPtr params,
|
||||
hypervPrivate *priv,
|
||||
const char *name,
|
||||
GHashTable **table,
|
||||
hypervWmiClassInfoListPtr info)
|
||||
@ -403,7 +395,7 @@ hypervAddEmbeddedParam(hypervInvokeParamsListPtr params,
|
||||
return -1;
|
||||
|
||||
/* Get the typeinfo out of the class info list */
|
||||
if (hypervGetWmiClassInfo(priv, info, &classInfo) < 0)
|
||||
if (hypervGetWmiClassInfo(info, &classInfo) < 0)
|
||||
return -1;
|
||||
|
||||
p = ¶ms->params[params->nbParams];
|
||||
@ -1008,7 +1000,7 @@ hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (hypervGetWmiClassInfo(priv, wqlQuery->info, &wmiInfo) < 0)
|
||||
if (hypervGetWmiClassInfo(wqlQuery->info, &wmiInfo) < 0)
|
||||
goto cleanup;
|
||||
|
||||
serializerContext = wsmc_get_serialization_context(priv->client);
|
||||
@ -1260,16 +1252,12 @@ hypervInvokeMsvmComputerSystemRequestStateChange(virDomainPtr domain,
|
||||
g_auto(virBuffer) query = VIR_BUFFER_INITIALIZER;
|
||||
Msvm_ConcreteJob *concreteJob = NULL;
|
||||
bool completed = false;
|
||||
const char *resourceUri = MSVM_COMPUTERSYSTEM_V2_RESOURCE_URI;
|
||||
|
||||
virUUIDFormat(domain->uuid, uuid_string);
|
||||
|
||||
selector = g_strdup_printf("Name=%s&CreationClassName=Msvm_ComputerSystem", uuid_string);
|
||||
properties = g_strdup_printf("RequestedState=%d", requestedState);
|
||||
|
||||
if (priv->wmiVersion == HYPERV_WMI_VERSION_V1)
|
||||
resourceUri = MSVM_COMPUTERSYSTEM_V1_RESOURCE_URI;
|
||||
|
||||
options = wsmc_options_init();
|
||||
|
||||
if (options == NULL) {
|
||||
@ -1282,7 +1270,7 @@ hypervInvokeMsvmComputerSystemRequestStateChange(virDomainPtr domain,
|
||||
wsmc_add_prop_from_str(options, properties);
|
||||
|
||||
/* Invoke method */
|
||||
response = wsmc_action_invoke(priv->client, resourceUri,
|
||||
response = wsmc_action_invoke(priv->client, MSVM_COMPUTERSYSTEM_V2_RESOURCE_URI,
|
||||
options, "RequestStateChange", NULL);
|
||||
|
||||
if (hypervVerifyResponse(priv->client, response, "invocation") < 0)
|
||||
|
@ -131,8 +131,7 @@ typedef struct _hypervInvokeParamsList hypervInvokeParamsList;
|
||||
typedef hypervInvokeParamsList *hypervInvokeParamsListPtr;
|
||||
|
||||
|
||||
hypervInvokeParamsListPtr hypervCreateInvokeParamsList(hypervPrivate *priv,
|
||||
const char *method,
|
||||
hypervInvokeParamsListPtr hypervCreateInvokeParamsList(const char *method,
|
||||
const char *selector,
|
||||
hypervWmiClassInfoListPtr obj);
|
||||
|
||||
@ -142,19 +141,18 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(hypervInvokeParamsList, hypervFreeInvokeParams);
|
||||
int hypervAddSimpleParam(hypervInvokeParamsListPtr params, const char *name,
|
||||
const char *value);
|
||||
|
||||
int hypervAddEprParam(hypervInvokeParamsListPtr params, const char *name,
|
||||
hypervPrivate *priv, virBufferPtr query,
|
||||
int hypervAddEprParam(hypervInvokeParamsListPtr params,
|
||||
const char *name,
|
||||
virBufferPtr query,
|
||||
hypervWmiClassInfoListPtr eprInfo);
|
||||
|
||||
GHashTable *hypervCreateEmbeddedParam(hypervPrivate *priv,
|
||||
hypervWmiClassInfoListPtr info);
|
||||
GHashTable *hypervCreateEmbeddedParam(hypervWmiClassInfoListPtr info);
|
||||
|
||||
int hypervSetEmbeddedProperty(GHashTable *table,
|
||||
const char *name,
|
||||
const char *value);
|
||||
|
||||
int hypervAddEmbeddedParam(hypervInvokeParamsListPtr params,
|
||||
hypervPrivate *priv,
|
||||
const char *name,
|
||||
GHashTable **table,
|
||||
hypervWmiClassInfoListPtr info);
|
||||
|
Loading…
x
Reference in New Issue
Block a user