2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-29 17:23:08 +00:00

Modify pdu error message and check pdu version for different OID

This commit is contained in:
Casandra Qiu 2017-05-22 15:27:11 -04:00
parent 515895941c
commit ea2d22887b

View File

@ -287,11 +287,11 @@ sub powerpduoutlet {
my ($pdu, $outlet) = split /:/, $pdu_outlet;
my $session = connectTopdu($pdu,$callback);
if (!$session) {
$callback->({ errorcode => [1],error => "Couldn't connect to $pdu"});
$callback->({ errorcode => [1],error => "$node: Couldn't connect to $pdu"});
next;
}
if ($outlet > $pdunodes->{$pdu}->{outlet} ) {
$callback->({ errorcode => [1],error => "outlet number $outlet is invalid for $pdu"});
$callback->({ error => "$node: $pdu outlet number $outlet is invalid"});
next;
}
my $cmd;
@ -314,7 +314,7 @@ sub powerpduoutlet {
}
if ($session->{ErrorStr}) {
$callback->({ errorcode => [1],error => "$session->{ErrorStr} for $pdu outlet $outlet"});
$callback->({ errorcode => [1],error => "$node: $pdu outlet $outlet has error = $session->{ErrorStr}"});
} else {
$output = "$pdu outlet $outlet is $statstr";
xCAT::SvrUtils::sendmsg($output, $callback, $node, %allerrornodes);
@ -341,7 +341,8 @@ sub outletpower {
my $type = "INTEGER";
if ($session->{newmib}) {
$oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.13";
}
}
my $varbind = new SNMP::Varbind([ $oid, $outlet, $value, $type ]);
return $session->set($varbind);
@ -425,6 +426,7 @@ sub connectTopdu {
my $community = "public";
my $session;
my $msg = "connectTopdu";
my $versionoid = ".1.3.6.1.4.1.2.6.223.7.3.0";
$session = new SNMP::Session(
DestHost => $pdu,
@ -435,14 +437,17 @@ sub connectTopdu {
unless ($session) {
return;
}
$session->{newmib} = 0;
my $pduversion = $session->get(".1.3.6.1.4.1.2.6.223.7.3.0");
if ($pduversion =~ /(\d+)\.(\d+)_(\d+)/) {
if ($1 >= 1 and $2 >= 3 and $3 >= 3) {
$session->{newmib} = 1;
}
my $varbind = new SNMP::Varbind([ $versionoid, '' ]);
my $pduversion = $session->get($varbind);
if ($session->{ErrorStr}) {
return;
}
$session->{newmib} = 0;
if ($pduversion =~ /sLEN/) {
$session->{newmib} = 1;
}
return $session;
@ -450,6 +455,4 @@ sub connectTopdu {
1;