From f438e1b43277417af9d4ba0d17a1300c1d26470b Mon Sep 17 00:00:00 2001 From: Casandra Qiu Date: Fri, 5 Jan 2018 13:29:37 -0500 Subject: [PATCH 1/4] Add rvitals support for Infrastructure PDUs --- xCAT-server/lib/xcat/plugins/pdu.pm | 54 +++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/xCAT-server/lib/xcat/plugins/pdu.pm b/xCAT-server/lib/xcat/plugins/pdu.pm index 8d1b618c2..e6003b073 100644 --- a/xCAT-server/lib/xcat/plugins/pdu.pm +++ b/xCAT-server/lib/xcat/plugins/pdu.pm @@ -988,7 +988,6 @@ sub rinv_for_irpdu if ($output) { xCAT::SvrUtils::sendmsg("PDU Description: $output", $callback,$pdu); } - } @@ -1021,7 +1020,16 @@ sub showMonitorData { foreach my $pdu (@$noderange) { unless ($pduhash->{$pdu}->[0]->{pdutype} eq "crpdu") { - xCAT::SvrUtils::sendmsg("This command only supports CONSTELLATION PDU with pdutype=crpdu", $callback,$pdu); + my $session = connectTopdu($pdu,$callback); + if (!$session) { + $callback->({ errorcode => [1],error => "Couldn't connect to $pdu"}); + next; + } + my $count = $pduhash->{$pdu}->[0]->{outlet}; + unless ($count) { + $count = fill_outletCount($session, $pdu, $callback); + } + rvitals_for_irpdu($pdu, $count, $session, $callback); next; } @@ -1050,6 +1058,48 @@ sub showMonitorData { } } + +sub rvitals_for_irpdu +{ + my $pdu = shift; + my $count = shift; + my $session = shift; + my $callback = shift; + my $output; + + + # get power info for each outlet + # starts oid .2.6.223.8.2.2.1.7 to .2.6.223.8.2.2.1.14 + my $oid; + #ibmPduVoltageWarning: (voltageNormal(0),voltageOutOfRange(1)) + $oid = ".1.3.6.1.4.1.2.6.223..0.1.1.7.0"; + $output = $session->get("$oid"); + xCAT::SvrUtils::sendmsg("ibmPduVoltageWarning: $output", $callback,$pdu); + for (my $outlet = 1; $outlet <= $count; $outlet++) { + #ibmPduOutletCurrent + $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.7"; + $output = $session->get("$oid.$outlet"); + xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrent: $output", $callback,$pdu); + #ibmPduOutletMaxCapacity + $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.8"; + $output = $session->get("$oid.$outlet"); + xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletMaxCapacity: $output", $callback,$pdu); + #ibmPduOutletCurrentThresholdWarning + $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.9"; + $output = $session->get("$oid.$outlet"); + xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrentThresholdWarning: $output", $callback,$pdu); + #ibmPduOutletCurrentThresholdCritical + $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.10"; + $output = $session->get("$oid.$outlet"); + xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrentThresholdCritical: $output", $callback,$pdu); + #ibmPduOutletLastPowerReading + $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.13"; + $output = $session->get("$oid.$outlet"); + xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletLastPowerReading: $output", $callback,$pdu); + } + +} + #------------------------------------------------------- =head3 relaystat From 96ff31599e4c3382b2e9ee652bbe7367a0a2c354 Mon Sep 17 00:00:00 2001 From: Casandra Qiu Date: Mon, 8 Jan 2018 14:16:10 -0500 Subject: [PATCH 2/4] pre-defined variables for the OIDs --- xCAT-server/lib/xcat/plugins/pdu.pm | 43 +++++++++++++++-------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/xCAT-server/lib/xcat/plugins/pdu.pm b/xCAT-server/lib/xcat/plugins/pdu.pm index e6003b073..a6d4c893c 100644 --- a/xCAT-server/lib/xcat/plugins/pdu.pm +++ b/xCAT-server/lib/xcat/plugins/pdu.pm @@ -1029,7 +1029,9 @@ sub showMonitorData { unless ($count) { $count = fill_outletCount($session, $pdu, $callback); } - rvitals_for_irpdu($pdu, $count, $session, $callback); + if ($count > 0) { + rvitals_for_irpdu($pdu, $count, $session, $callback); + } next; } @@ -1067,34 +1069,33 @@ sub rvitals_for_irpdu my $callback = shift; my $output; + #ibmPduVoltageWarning: (voltageNormal(0),voltageOutOfRange(1)) + my $voltagewarning = ".1.3.6.1.4.1.2.6.223.0.1.1.7.0"; + $output = $session->get("$voltagewarning"); + xCAT::SvrUtils::sendmsg("ibmPduVoltageWarning: $output", $callback,$pdu); # get power info for each outlet # starts oid .2.6.223.8.2.2.1.7 to .2.6.223.8.2.2.1.14 - my $oid; - #ibmPduVoltageWarning: (voltageNormal(0),voltageOutOfRange(1)) - $oid = ".1.3.6.1.4.1.2.6.223..0.1.1.7.0"; - $output = $session->get("$oid"); - xCAT::SvrUtils::sendmsg("ibmPduVoltageWarning: $output", $callback,$pdu); + #ibmPduOutletCurrent + my $outletcurrent = ".1.3.6.1.4.1.2.6.223.8.2.2.1.7"; + #ibmPduOutletMaxCapacity + my $outletmaxcap = ".1.3.6.1.4.1.2.6.223.8.2.2.1.8"; + #ibmPduOutletCurrentThresholdWarning + my $currentthrewarning = ".1.3.6.1.4.1.2.6.223.8.2.2.1.9"; + #ibmPduOutletCurrentThresholdCritical + my $currentthrecrit = ".1.3.6.1.4.1.2.6.223.8.2.2.1.10"; + #ibmPduOutletLastPowerReading + my $lastpowerreading = ".1.3.6.1.4.1.2.6.223.8.2.2.1.13"; for (my $outlet = 1; $outlet <= $count; $outlet++) { - #ibmPduOutletCurrent - $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.7"; - $output = $session->get("$oid.$outlet"); + $output = $session->get("$outletcurrent.$outlet"); xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrent: $output", $callback,$pdu); - #ibmPduOutletMaxCapacity - $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.8"; - $output = $session->get("$oid.$outlet"); + $output = $session->get("$outletmaxcap.$outlet"); xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletMaxCapacity: $output", $callback,$pdu); - #ibmPduOutletCurrentThresholdWarning - $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.9"; - $output = $session->get("$oid.$outlet"); + $output = $session->get("$currentthrewarning.$outlet"); xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrentThresholdWarning: $output", $callback,$pdu); - #ibmPduOutletCurrentThresholdCritical - $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.10"; - $output = $session->get("$oid.$outlet"); + $output = $session->get("$currentthrecrit.$outlet"); xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrentThresholdCritical: $output", $callback,$pdu); - #ibmPduOutletLastPowerReading - $oid = ".1.3.6.1.4.1.2.6.223.8.2.2.1.13"; - $output = $session->get("$oid.$outlet"); + $output = $session->get("$lastpowerreading.$outlet"); xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletLastPowerReading: $output", $callback,$pdu); } From 13882e69ff8d42c528dc51ed46e70c506e58be45 Mon Sep 17 00:00:00 2001 From: Casandra Qiu Date: Tue, 9 Jan 2018 09:30:05 -0500 Subject: [PATCH 3/4] add message in the fill_outletCount --- xCAT-server/lib/xcat/plugins/pdu.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xCAT-server/lib/xcat/plugins/pdu.pm b/xCAT-server/lib/xcat/plugins/pdu.pm index a6d4c893c..c59d58579 100644 --- a/xCAT-server/lib/xcat/plugins/pdu.pm +++ b/xCAT-server/lib/xcat/plugins/pdu.pm @@ -251,6 +251,8 @@ sub fill_outletCount { my $count = $session->get("$outletoid"); if ($count) { $pdutab->setNodeAttribs($pdu, {outlet => $count}); + } else { + xCAT::SvrUtils::sendmsg("Invalid Outlet number ", $callback,$pdu); } return $count; From d694ac96833926450a5ba41ab577de37efd2949c Mon Sep 17 00:00:00 2001 From: Casandra Qiu Date: Wed, 10 Jan 2018 15:27:53 -0500 Subject: [PATCH 4/4] Modify rvitals output --- xCAT-server/lib/xcat/plugins/pdu.pm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/xCAT-server/lib/xcat/plugins/pdu.pm b/xCAT-server/lib/xcat/plugins/pdu.pm index c59d58579..eca4553bf 100644 --- a/xCAT-server/lib/xcat/plugins/pdu.pm +++ b/xCAT-server/lib/xcat/plugins/pdu.pm @@ -1074,7 +1074,7 @@ sub rvitals_for_irpdu #ibmPduVoltageWarning: (voltageNormal(0),voltageOutOfRange(1)) my $voltagewarning = ".1.3.6.1.4.1.2.6.223.0.1.1.7.0"; $output = $session->get("$voltagewarning"); - xCAT::SvrUtils::sendmsg("ibmPduVoltageWarning: $output", $callback,$pdu); + xCAT::SvrUtils::sendmsg("Voltage Warning: $output", $callback,$pdu); # get power info for each outlet # starts oid .2.6.223.8.2.2.1.7 to .2.6.223.8.2.2.1.14 @@ -1090,15 +1090,15 @@ sub rvitals_for_irpdu my $lastpowerreading = ".1.3.6.1.4.1.2.6.223.8.2.2.1.13"; for (my $outlet = 1; $outlet <= $count; $outlet++) { $output = $session->get("$outletcurrent.$outlet"); - xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrent: $output", $callback,$pdu); + xCAT::SvrUtils::sendmsg("outlet $outlet Current: $output mA", $callback,$pdu); $output = $session->get("$outletmaxcap.$outlet"); - xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletMaxCapacity: $output", $callback,$pdu); + xCAT::SvrUtils::sendmsg("outlet $outlet Max Capacity of the current: $output mA", $callback,$pdu); $output = $session->get("$currentthrewarning.$outlet"); - xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrentThresholdWarning: $output", $callback,$pdu); + xCAT::SvrUtils::sendmsg("outlet $outlet Current Threshold Warning: $output mA", $callback,$pdu); $output = $session->get("$currentthrecrit.$outlet"); - xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletCurrentThresholdCritical: $output", $callback,$pdu); + xCAT::SvrUtils::sendmsg("outlet $outlet Current Threshold Critical: $output mA", $callback,$pdu); $output = $session->get("$lastpowerreading.$outlet"); - xCAT::SvrUtils::sendmsg("outlet $outlet ibmPduOutletLastPowerReading: $output", $callback,$pdu); + xCAT::SvrUtils::sendmsg("outlet $outlet Last Power Reading: $output Watts", $callback,$pdu); } }