Have IPMI not send console data if a basic IPMI health check does not pass.

This means ipmi console backend may spend more time holding a lock when bmcs are unreachable, but it means that the service processor addresses are not pinged all at once

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12242 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
jbjohnso 2012-04-16 00:27:37 +00:00
parent db4022ec09
commit 856de8cecd

View File

@ -5628,7 +5628,20 @@ sub getipmicons {
$ipmicons->{node}->[0]->{bmcaddr}->[0]=$argr->[1];
$ipmicons->{node}->[0]->{bmcuser}->[0]=$argr->[2];
$ipmicons->{node}->[0]->{bmcpass}->[0]=$argr->[3];
$cb->($ipmicons);
my $ipmisess = xCAT::IPMI->new(bmc=>$argr->[1],userid=>$argr->[2],password=>$argr->[3]);
$ipmisess->{ipmicons} = $ipmicons;
$ipmisess->{cb} = $cb;
$ipmisess->subcmd(netfn=>0x6,command=>0x38,data=>[0x0e,0x04],callback=>\&got_channel_auth_cap_foripmicons,callback_args=>$ipmisess);
}
sub got_channel_auth_cap_foripmicons {
my $rsp = shift;
my $ipmis = shift;
if ($rsp->{error}) {
return;
}
if ($rsp->{code} != 0) { return; }
my $cb = $ipmis->{cb};
$cb->($ipmis->{ipmicons}); #ipmicons);
}
@ -5696,6 +5709,7 @@ sub process_request {
foreach (@donargs) {
getipmicons($_,$callback);
}
while (xCAT::IPMI->waitforrsp()) { yield };
return;
}