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;
}
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);
}
}