Module: tools
Branch: master
Commit: 604683507c18dbd865730b32d4d5deae9bf21cc2
URL: http://source.winehq.org/git/tools.git/?a=commit;h=604683507c18dbd865730b32…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Oct 19 14:54:35 2017 +0200
testbot: Remove LibvirtDomain::_UpdateStatus().
It was needed to resynchronize the VM status field during the Engine
initialization. However nowadays the Engine delegates this to
LibvirtTool which does not want the VM status to be changed behind this
back and thus bypasses _UpdateStatus().
The bypass is explicit in the case of PowerOff(), $NoStatus=1, and
implicit in the RevertToSnapshot() case: _UpdateStatus() does nothing if
get_state() == STATE_RUNNING (which is the case for our VMs) and
$VM->Status ne "off".
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/bin/LibvirtTool.pl | 4 ++--
testbot/lib/WineTestBot/LibvirtDomain.pm | 35 ++++----------------------------
2 files changed, 6 insertions(+), 33 deletions(-)
diff --git a/testbot/bin/LibvirtTool.pl b/testbot/bin/LibvirtTool.pl
index ab97261..51f03b4 100755
--- a/testbot/bin/LibvirtTool.pl
+++ b/testbot/bin/LibvirtTool.pl
@@ -305,7 +305,7 @@ sub PowerOff()
{
# Power off VMs no matter what their initial status is
$CurrentStatus = $VM->Status;
- my $ErrMessage = $VM->GetDomain()->PowerOff(1);
+ my $ErrMessage = $VM->GetDomain()->PowerOff();
FatalError("$ErrMessage\n") if (defined $ErrMessage);
return ChangeStatus(undef, "off", "done");
@@ -338,7 +338,7 @@ sub Revert()
# Some QEmu/KVM versions are buggy and cannot revert a running VM
Debug(Elapsed($Start), " Powering off the VM\n");
my $Domain = $VM->GetDomain();
- my $ErrMessage = $Domain->PowerOff(1);
+ my $ErrMessage = $Domain->PowerOff();
if (defined $ErrMessage)
{
LogMsg "Could not power off $VMKey: $ErrMessage\n";
diff --git a/testbot/lib/WineTestBot/LibvirtDomain.pm b/testbot/lib/WineTestBot/LibvirtDomain.pm
index 1b74315..f8caffa 100644
--- a/testbot/lib/WineTestBot/LibvirtDomain.pm
+++ b/testbot/lib/WineTestBot/LibvirtDomain.pm
@@ -151,32 +151,6 @@ sub _GetDomain($)
return (undef, $Domain);
}
-sub _UpdateStatus($$)
-{
- my ($self, $Domain) = @_;
-
- return undef if ($self->{VM}->Status eq "offline");
-
- my ($State, $Reason);
- eval { ($State, $Reason) = $Domain->get_state() };
- return $self->_Reset(_eval_err()) if ($@);
-
- if ($State == Sys::Virt::Domain::STATE_SHUTDOWN or
- $State == Sys::Virt::Domain::STATE_SHUTOFF or
- $State == Sys::Virt::Domain::STATE_CRASHED)
- {
- $self->{VM}->Status("off");
- $self->{VM}->Save();
- }
- elsif ($self->{VM}->Status eq "off")
- {
- $self->{VM}->Status("dirty");
- $self->{VM}->Save();
- }
-
- return undef;
-}
-
sub _GetSnapshot($$)
{
my ($self, $SnapshotName) = @_;
@@ -233,7 +207,7 @@ sub RevertToSnapshot($)
# Note that if the snapshot was of a powered off domain, this boots it up
eval { $Snapshot->revert_to(Sys::Virt::DomainSnapshot::REVERT_RUNNING) };
- return $@ ? $self->_Reset(_eval_err()) : $self->_UpdateStatus($Domain);
+ return $@ ? $self->_Reset(_eval_err()) : undef;
}
sub CreateSnapshot($)
@@ -279,9 +253,9 @@ sub IsPoweredOn($)
return ($State == Sys::Virt::Domain::STATE_RUNNING);
}
-sub PowerOff($$)
+sub PowerOff($)
{
- my ($self, $NoStatus) = @_;
+ my ($self) = @_;
my ($ErrMessage, $Domain) = $self->_GetDomain();
return $ErrMessage if (defined $ErrMessage);
@@ -298,9 +272,8 @@ sub PowerOff($$)
$ErrMessage = "The VM is still active";
}
}
- $ErrMessage ||= $self->_UpdateStatus($Domain) if (!$NoStatus);
- return undef if (!defined $ErrMessage);
+ return undef if (!defined $ErrMessage);
return $self->_Reset("Could not power off ". $self->{VM}->Name .": $ErrMessage");
}
Module: tools
Branch: master
Commit: bfb23ab81b1bd15ba180fcc05a9d4ef0624134f8
URL: http://source.winehq.org/git/tools.git/?a=commit;h=bfb23ab81b1bd15ba180fcc0…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Oct 19 14:54:16 2017 +0200
testbot: Base LibvirtDomain::IsPoweredOn() on get_state().
is_active() returns true even if the VM is in the process of being
reverted (i.e. it uses resources) which is not what we are after.
So use get_state() which provides more detailed information.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/lib/WineTestBot/LibvirtDomain.pm | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/testbot/lib/WineTestBot/LibvirtDomain.pm b/testbot/lib/WineTestBot/LibvirtDomain.pm
index 20d619a..1b74315 100644
--- a/testbot/lib/WineTestBot/LibvirtDomain.pm
+++ b/testbot/lib/WineTestBot/LibvirtDomain.pm
@@ -273,9 +273,10 @@ sub IsPoweredOn($)
return undef;
}
- my $IsActive;
- eval { $IsActive = $Domain->is_active() };
- return $@ ? $self->_Reset(undef) : $IsActive;
+ my ($State, $_Reason);
+ eval { ($State, $_Reason) = $Domain->get_state() };
+ return $self->_Reset(undef) if ($@);
+ return ($State == Sys::Virt::Domain::STATE_RUNNING);
}
sub PowerOff($$)