newdevice: Support - ICT Digital Power Supply (#6369)

* Basic support for ICT PSU, no sensors yet.

* Added current and voltage sensors

* Fixed coding style issues

* Fixed indexes
This commit is contained in:
Lorenzo Zafra
2017-04-12 14:00:54 -06:00
committed by Tony Murray
parent 457f2e9744
commit bd3fd64f3e
9 changed files with 204 additions and 1 deletions

BIN
html/images/logos/ict.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
html/images/os/ict.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

View File

@@ -0,0 +1,13 @@
os: ict-psu
text: 'ICT Digital Series Power Supply'
type: power
icon: ict
nobulk: 1
mib_dir:
- ict
over:
- { graph: device_voltage, text: Voltage }
- { graph: device_current, text: Current }
discovery:
- sysObjectId:
- .1.3.6.1.4.1.39145.11

View File

@@ -0,0 +1,39 @@
<?php
/**
* ict-psu.inc.php
*
* LibreNMS current sensor discovery module for ICT Digital Series Power Supply
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Lorenzo Zafra
* @author Lorenzo Zafra<zafra@ualberta.ca>
*/
// Output Current
// SNMPv2-SMI::enterprises.39145.11.8.0 = STRING: "0.4" -- outputCurrent
$outputCurrent = trim(snmp_get($device, 'outputCurrent.0', '-Oqv', 'ICT-MIB'), '" ');
if (!empty($outputCurrent)) {
$divisor = 1;
$index = 0;
$oid = '.1.3.6.1.4.1.39145.11.8.0';
$descr = 'Output Current';
$type = 'ict-psu';
$currentValue = $outputCurrent / $divisor;
discover_sensor($valid['sensor'], 'current', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $currentValue);
}

View File

@@ -0,0 +1,54 @@
<?php
/**
* ict-psu.inc.php
*
* LibreNMS voltage sensor discovery module for ICT Digital Series Power Supply
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Lorenzo Zafra
* @author Lorenzo Zafra<zafra@ualberta.ca>
*/
// Input Voltage
// SNMPv2-SMI::enterprises.39145.11.6.0 = STRING: "120" -- inputVoltage
$inputVoltage = trim(snmp_get($device, 'inputVoltage.0', '-Oqv', 'ICT-MIB'), '" ');
if (!empty($inputVoltage)) {
$divisor = 1;
$index = 0;
$oid = '.1.3.6.1.4.1.39145.11.6.0';
$descr = 'Input Voltage';
$type = 'ict-psu';
$currentValue = $inputVoltage / $divisor;
echo "got in\n";
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $currentValue);
}
// Output Voltage
// SNMPv2-SMI::enterprises.39145.11.7.0 = STRING: "55.2" -- outputVoltage
$outputVoltage = trim(snmp_get($device, 'outputVoltage.0', '-Oqv', 'ICT-MIB'), '" ');
if (!empty($outputVoltage)) {
$divisor = 1;
$index = 1;
$oid = '.1.3.6.1.4.1.39145.11.7.0';
$descr = 'Output Voltage';
$type = 'ict-psu';
$currentValue = $outputVoltage / $divisor;
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $currentValue);
}

View File

@@ -0,0 +1,7 @@
<?php
//SNMPv2-SMI::enterprises.39145.11.1.0 = STRING: "ICT600-48"
//SNMPv2-SMI::enterprises.39145.11.4.0 = STRING: "1.08"
$hardware = trim(snmp_get($device, '1.3.6.1.4.1.39145.11.1.0', '-OQv', '', ''), '" ');
$version = 'v' . trim(snmp_get($device, '1.3.6.1.4.1.39145.11.4.0', '-OQv', '', ''), '" ');

View File

@@ -0,0 +1,84 @@
-- ICT MIB file for ICT Digital Series.
--
-- Date Version
-- =============================
-- 10/4/12 v1.00
--
ICT-MIB DEFINITIONS ::= BEGIN
IMPORTS
enterprises, IpAddress FROM RFC1155-SMI
DisplayString FROM RFC1213-MIB
OBJECT-TYPE FROM RFC-1212
TRAP-TYPE FROM RFC-1215;
ictPower OBJECT IDENTIFIER ::= { enterprises 39145 }
digitalSeries OBJECT IDENTIFIER ::= { ictPower 11 }
deviceModel OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION "Model Number"
::= { digitalSeries 1 }
deviceName OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION "Device Name"
::= { digitalSeries 2 }
deviceHardware OBJECT-TYPE
SYNTAX INTEGER (0..127)
ACCESS read-only
STATUS mandatory
DESCRIPTION "Hardware Version"
::= { digitalSeries 3 }
deviceFirmware OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION "Firmware Version"
::= { digitalSeries 4 }
deviceMacAddress OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION "MAC Address"
::= { digitalSeries 5 }
inputVoltage OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION "Input Voltage (VAC)"
::= { digitalSeries 6 }
outputVoltage OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION "Output Voltage (VDC)"
::= { digitalSeries 7 }
outputCurrent OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION "System Current (Amps)"
::= { digitalSeries 8 }
outputEnable OBJECT-TYPE
SYNTAX INTEGER { ENABLED(1), DISABLED(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION "Output Enable Status (a value of 1 indicates Output is Enabled, and a value of 2 indicates Output is Disabled)"
::= { digitalSeries 9 }
END

View File

@@ -904,12 +904,16 @@ class DiscoveryTest extends \PHPUnit_Framework_TestCase
$this->checkOS('ibmtl');
}
public function testIctpdu()
{
$this->checkOS('ict-pdu');
}
public function testIctpsu()
{
$this->checkOS('ict-psu');
}
public function testIes()
{
$this->checkOS('ies');

View File

@@ -0,0 +1,2 @@
1.3.6.1.2.1.1.1.0|4|ICT Digital Series
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.39145.11