Francois Gouget : testbot/VMs: Shut down VMs before reverting them.
Module: tools Branch: master Commit: d07df9daf9e3e2bc1ec27bd5140f9c99245f6088 URL: http://source.winehq.org/git/tools.git/?a=commit;h=d07df9daf9e3e2bc1ec27bd51... Author: Francois Gouget <fgouget(a)codeweavers.com> Date: Fri Sep 27 20:01:22 2013 +0200 testbot/VMs: Shut down VMs before reverting them. This is a workaround for a bug in some QEmu/KVM versions. --- testbot/bin/RevertVM.pl | 11 +++++++++++ testbot/lib/WineTestBot/VMs.pm | 7 ++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/testbot/bin/RevertVM.pl b/testbot/bin/RevertVM.pl index acd3b5b..5f98191 100755 --- a/testbot/bin/RevertVM.pl +++ b/testbot/bin/RevertVM.pl @@ -97,6 +97,17 @@ if (defined($ErrMessage)) FatalError "Can't change status for VM $VMKey: $ErrMessage", $VM; } +if ($VM->IsPoweredOn()) +{ + # Some QEmu/KVM versions are buggy and cannot revert a running VM + $ErrMessage = $VM->PowerOff(1); + if (defined $ErrMessage) + { + LogMsg "Could not shut down $VMKey: $ErrMessage\n"; + LogMsg "Trying the revert anyway\n"; + } +} + $ErrMessage = $VM->RevertToSnapshot($VM->IdleSnapshot); if (defined($ErrMessage)) { diff --git a/testbot/lib/WineTestBot/VMs.pm b/testbot/lib/WineTestBot/VMs.pm index c92b534..37d1c4f 100644 --- a/testbot/lib/WineTestBot/VMs.pm +++ b/testbot/lib/WineTestBot/VMs.pm @@ -362,9 +362,9 @@ sub PowerOn return $self->UpdateStatus($Domain); } -sub PowerOff +sub PowerOff($$) { - my ($self) = @_; + my ($self, $NoStatus) = @_; my ($ErrMessage, $Domain) = $self->_GetDomain(); return $ErrMessage if (defined $ErrMessage); @@ -372,7 +372,8 @@ sub PowerOff eval { $Domain->destroy() }; return $@->message() if ($@); - return $self->UpdateStatus($Domain); + return $self->UpdateStatus($Domain) if (!$NoStatus); + return undef; } sub GetAgent($)
participants (1)
-
Alexandre Julliard