]> xenbits.xensource.com Git - people/royger/osstest.git/commitdiff
PowerMethod: New "nest" psuedo-method
authorIan Jackson <ian.jackson@eu.citrix.com>
Fri, 29 Jun 2018 16:29:45 +0000 (16:29 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Wed, 4 Jul 2018 15:42:46 +0000 (16:42 +0100)
If specified as the first method, it means to reverse the order when
powering off.

There don't seem to be any docs for PowerMethod, so I have not
documented this right now.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Osstest/TestSupport.pm

index 79737ea4b5df294c45d00bd984359da6eeaee246..ad877e2e864c47993f5df5904a2236dd8ef1ec71 100644 (file)
@@ -920,7 +920,11 @@ sub power_cycle_host_setup ($) {
     my ($ho) = @_;
     my $methobjs = [ ];
     foreach my $meth (split /\;\s*/, ($ho->{Power} // 'unsupported')) {
-       push @$methobjs, get_host_method_object($ho,'PDU',$meth);
+        if ($meth eq 'nest') {
+            push @$methobjs, $meth;
+        } else {
+            push @$methobjs, get_host_method_object($ho,'PDU',$meth);
+        }
     }
     $ho->{PowerMethobjs} = $methobjs;
 }
@@ -946,7 +950,12 @@ sub power_cycle ($) {
 sub power_state ($$) {
     my ($ho, $on) = @_;
     logm("power: setting $on for $ho->{Name}");
-    foreach my $mo (@{ $ho->{PowerMethobjs} }) {
+    my @methobjs = @{ $ho->{PowerMethobjs} };
+    if ($methobjs[0] eq 'nest') {
+        shift @methobjs;
+        @methobjs = reverse @methobjs if !$on;
+    }
+    foreach my $mo (@methobjs) {
        $mo->pdu_power_state($on);
     }
 }