hyperv: fix domainManagedSave on Hyper-V V2

Signed-off-by: Matt Coleman <matt@datto.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Matt Coleman 2020-10-21 04:46:12 -04:00 committed by Michal Privoznik
parent a9f1a798fd
commit 747e0888a0
2 changed files with 12 additions and 2 deletions

View File

@ -1640,9 +1640,19 @@ 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;
@ -1653,8 +1663,7 @@ hypervDomainManagedSave(virDomainPtr domain, unsigned int flags)
goto cleanup;
}
result = hypervInvokeMsvmComputerSystemRequestStateChange
(domain, MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_SUSPENDED);
result = hypervInvokeMsvmComputerSystemRequestStateChange(domain, requestedState);
cleanup:
hypervFreeObject(priv, (hypervObject *)computerSystem);

View File

@ -73,6 +73,7 @@ enum _Msvm_ComputerSystem_EnabledState {
enum _Msvm_ComputerSystem_RequestedState {
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_ENABLED = 2,
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_DISABLED = 3,
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_OFFLINE = 6,
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_QUIESCE = 9,
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_REBOOT = 10,
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_RESET = 11,