diff --git a/xCAT-server/lib/xcat/plugins/pdu.pm b/xCAT-server/lib/xcat/plugins/pdu.pm index 9d54d92fc..17e66f50c 100644 --- a/xCAT-server/lib/xcat/plugins/pdu.pm +++ b/xCAT-server/lib/xcat/plugins/pdu.pm @@ -271,8 +271,6 @@ sub powerpduoutlet { my $value; my $statstr; - my $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.11"; - my $type = "INTEGER"; my $tmpnodestr = join(",", @$noderange); my $nodetab = xCAT::Table->new('pduoutlet'); @@ -341,6 +339,9 @@ sub outletpower { my $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.11"; 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); @@ -392,6 +393,9 @@ sub outletstat { my $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.11"; my $output; my $statstr; + if ($session->{newmib}) { + $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.13"; + } $output = $session->get("$oid.$outlet"); if ($output eq 1) { @@ -431,6 +435,15 @@ 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; + } + } + + return $session; }