|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 6/7] Nested: Make Osstest::PDU::guest idempotent
These methods are supposed to succeed, silently, if the host is
already in the required power state.
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
Osstest/PDU/guest.pm | 13 +++++++++++--
Osstest/TestSupport.pm | 3 ++-
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/Osstest/PDU/guest.pm b/Osstest/PDU/guest.pm
index b6bf9a1..b708af5 100755
--- a/Osstest/PDU/guest.pm
+++ b/Osstest/PDU/guest.pm
@@ -49,10 +49,19 @@ sub pdu_power_state {
die "$child->{Name} ?" unless $parent;
logm("power $child->{Name} nested on $parent->{Name} ".($on+0));
+
+ my $st = guest_get_state($parent, $child);
if ($on) {
- toolstack($parent)->create($child);
+ if ($st =~ m/^$guest_state_running_re$/o) {
+ } elsif (length($st)) { # exists but crashed or something ?
+ toolstack($parent)->destroy($child);
+ } else { # does not exist
+ toolstack($parent)->create($child);
+ }
} else {
- toolstack($parent)->destroy($child);
+ if (length($st)) {
+ toolstack($parent)->destroy($child);
+ }
}
}
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 6c08c6d..d1f7d36 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -97,7 +97,8 @@ BEGIN {
prepareguest_part_lvmdisk prepareguest_part_diskimg
prepareguest_part_xencfg
guest_umount_lv guest_await guest_await_dhcp_tcp
- guest_checkrunning target_check_ip guest_find_ether
+ guest_checkrunning $guest_state_running_re
+ target_check_ip guest_find_ether
guest_find_domid guest_check_up guest_check_up_quick
guest_get_state guest_await_reboot
guest_await_shutdown guest_await_destroy guest_destroy
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |