From f55d98ab03f7fc1d9ba195cdedd0c41c18c75199 Mon Sep 17 00:00:00 2001 From: jackson-tim Date: Tue, 13 Mar 2018 06:59:35 -0500 Subject: [PATCH] device: Added Lenovo CNOS support (#8332) * Lenovo CNOS Discovery+Logo Update * Lenovo MIBs * Update lenovo-cnos.yaml Left example CPU Usage there. * Update lenovo-cnos.yaml * Update lenovo-cnos.yaml * Update and rename lenovo-cnos.yaml to cnos.yaml * Rename lenovo-cnos.yaml to cnos.yaml * Rename Lenovo-Env-MIB.mib to LENOVO-ENV-MIB * Rename Lenovo-Products-MIB.mib to LENOVO-PRODUCTS-MIB * Rename Lenovo-SMI-MIB.mib to LENOVO-SMI-MIB * Update lenovo.svg * Create cnos.json * Create cnos.snmprec * Update cnos.json * Update cnos.yaml --- html/images/os/lenovo.svg | 2 +- includes/definitions/cnos.yaml | 12 + includes/definitions/discovery/cnos.yaml | 55 +++ mibs/lenovo/ LENOVO-PRODUCTS-MIB | 104 +++++ mibs/lenovo/LENOVO-ENV-MIB | 476 +++++++++++++++++++++++ mibs/lenovo/LENOVO-SMI-MIB | 73 ++++ tests/data/cnos.json | 79 ++++ tests/snmpsim/cnos.snmprec | 2 + 8 files changed, 802 insertions(+), 1 deletion(-) create mode 100644 includes/definitions/cnos.yaml create mode 100644 includes/definitions/discovery/cnos.yaml create mode 100644 mibs/lenovo/ LENOVO-PRODUCTS-MIB create mode 100644 mibs/lenovo/LENOVO-ENV-MIB create mode 100644 mibs/lenovo/LENOVO-SMI-MIB create mode 100644 tests/data/cnos.json create mode 100644 tests/snmpsim/cnos.snmprec diff --git a/html/images/os/lenovo.svg b/html/images/os/lenovo.svg index 78cf175517..681214c105 100644 --- a/html/images/os/lenovo.svg +++ b/html/images/os/lenovo.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/includes/definitions/cnos.yaml b/includes/definitions/cnos.yaml new file mode 100644 index 0000000000..412ee69d42 --- /dev/null +++ b/includes/definitions/cnos.yaml @@ -0,0 +1,12 @@ +os: cnos +text: 'Lenovo Cloud Network Operating System' +type: network +icon: lenovo +group: lenovo +over: + - { graph: device_bits, text: 'Device Traffic' } + - { graph: device_processor, text: 'CPU Usage' } + - { graph: device_mempool, text: 'Memory Usage' } +discovery: + - sysObjectID: + - .1.3.6.1.4.1.19046.1.7 diff --git a/includes/definitions/discovery/cnos.yaml b/includes/definitions/discovery/cnos.yaml new file mode 100644 index 0000000000..f476fa2d2b --- /dev/null +++ b/includes/definitions/discovery/cnos.yaml @@ -0,0 +1,55 @@ +mib: LENOVO-ENV-MIB +modules: + sensors: + state: + data: + - + oid: lenovoEnvMibPowerSupplyEntry + value: lenovoEnvMibPowerSupplyState + num_oid: .1.3.6.1.4.1.19046.2.3.11.1.1.1.5. + descr: 'PS{{ $lenovoEnvMibPowerSupplyID }}' + index: 'lenovoEnvMibPowerSupplyState.{{ $index }}' + states: + - { value: 0, descr: off, graph: 1, generic: 1 } + - { value: 1, descr: on, graph: 1, generic: 0 } + - { value: 2, descr: absent, graph: 1, generic: 1 } + - { value: 3, descr: outputFault, graph: 1, generic: 2 } + - { value: -1, descr: unknown, graph: 1, generic: 3 } + - + oid: lenovoEnvMibFanEntry + value: lenovoEnvMibFanState + num_oid: .1.3.6.1.4.1.19046.2.3.11.1.2.1.1.5. + descr: lenovoEnvMibFanName + index: 'lenovoEnvMibFanState.{{ $index }}' + states: + - { value: 0, descr: ok, graph: 1, generic: 0 } + - { value: 1, descr: absent, graph: 1, generic: 1 } + - { value: 2, descr: fault, graph: 1, generic: 2 } + - { value: -1, descr: unknown, graph: 1, generic: 3 } + - + oid: lenovoEnvMibTempSensorEntry + value: lenovoEnvMibTempSensorState + num_oid: .1.3.6.1.4.1.19046.2.3.11.1.3.1.1.5. + descr: lenovoEnvMibTempSensorDesc + index: 'lenovoEnvMibTempSensorState.{{ $index }}' + states: + - { value: 0, descr: ok, graph: 1, generic: 0 } + - { value: 1, descr: fault, graph: 1, generic: 2 } + - { value: -1, descr: unknown, graph: 1, generic: 3 } + fanspeed: + data: + - + oid: lenovoEnvMibFanEntry + value: lenovoEnvMibFanSpeedRPM + num_oid: .1.3.6.1.4.1.19046.2.3.11.1.2.1.8. + index: 'lenovoEnvMibFanSpeedRPM.{{ $index }}' + descr: lenovoEnvMibFanName + + temperature: + data: + - + oid: lenovoEnvMibTempSensorEntry + value: lenovoEnvMibTempSensorTemperature + num_oid: .1.3.6.1.4.1.19046.2.3.11.1.3.1.6. + index: 'lenovoEnvTempSensorTemperature.{{ $index }}' + descr: lenovoEnvMibTempSensorName diff --git a/mibs/lenovo/ LENOVO-PRODUCTS-MIB b/mibs/lenovo/ LENOVO-PRODUCTS-MIB new file mode 100644 index 0000000000..a10009062e --- /dev/null +++ b/mibs/lenovo/ LENOVO-PRODUCTS-MIB @@ -0,0 +1,104 @@ +-- LENOVO-PRODUCTS-MIB: Lenovo product object identifier assignments +-- Copyright (c) 2014-2017 Lenovo Group Ltd. All rights reserved. + +LENOVO-PRODUCTS-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY + FROM SNMPv2-SMI + lenovoProducts, lenovoModules + FROM LENOVO-SMI-MIB; + +lenovoProductsMIB MODULE-IDENTITY + LAST-UPDATED "201705010000Z" + ORGANIZATION "Lenovo" + CONTACT-INFO + "Lenovo + + Postal: 1009 Think Place + Morrisville, NC 27560 + USA + + Tel: +1 (919) 968-4465 + + E-mail: snmp@lenovo.com" + DESCRIPTION + "This module defines the object identifiers returned as values for + sysObjectID for Lenovo hardware." + REVISION "201604200000Z" + DESCRIPTION "Initial version." + REVISION "201705010000Z" + DESCRIPTION "Add sysObjectId for G8332 CNOS product" + REVISION "201705020000Z" + DESCRIPTION "Add sysObjectIDs for NE1032, NE1032T, NE1072, and NE10032 switches." + + ::= { lenovoModules 1 } + +-- Lenovo Server Products +lenovoServerProducts OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root object identifier for Lenovo server products." + ::= { lenovoProducts 11 } + +-- Lenovo Network Flex Products +flex OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root object identifier for Lenovo Flex network products." + ::= { lenovoProducts 18} + +--Lenovo Flex System SI4091 10Gb System Interconnect Module +si4091 OBJECT IDENTIFIER ::= { flex 23} + + +-- Lenovo Network RackSwitch (ToR) Products +tor OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root object identifier for Lenovo RackSwitch network products." + ::= { lenovoProducts 7} + +-- Lenovo RackSwitch G8296 +g8296 OBJECT IDENTIFIER ::= { tor 22} + +-- Lenovo RackSwitch G8272 +g8272 OBJECT IDENTIFIER ::= { tor 24} + +-- Lenovo RackSwitch G8296 CNOS +g8296-cnos OBJECT IDENTIFIER ::= { tor 29} + +-- Lenovo RackSwitch G8272 CNOS +g8272-cnos OBJECT IDENTIFIER ::= { tor 30} + +-- Lenovo RackSwitch G8332 CNOS +g8332-cnos OBJECT IDENTIFIER ::= { tor 31} + +-- Lenovo ThinkSystem NE1032 RackSwitch +ne1032 OBJECT IDENTIFIER ::= { tor 32} + +-- Lenovo ThinkSystem NE1032T RackSwitch +ne1032t OBJECT IDENTIFIER ::= { tor 33} + +-- Lenovo ThinkSystem NE1072T RackSwitch +ne1072t OBJECT IDENTIFIER ::= { tor 34} + +-- Lenovo ThinkSystem NE10032 RackSwitch +ne10032 OBJECT IDENTIFIER ::= { tor 36} + +-- Lenovo ThinkSystem NE2572 RackSwitch +ne2572 OBJECT IDENTIFIER ::= { tor 41} + +-- Lenovo CE0128T Switch +ce0128t OBJECT IDENTIFIER ::= { tor 37} + +-- Lenovo CE0128P Switch +ce0128p OBJECT IDENTIFIER ::= { tor 38} + +-- Lenovo CE0152T Switch +ce0152t OBJECT IDENTIFIER ::= { tor 39} + +-- Lenovo ThinkSystem NE2572 RackSwitch +ne2572 OBJECT IDENTIFIER ::= { tor 41} + +END diff --git a/mibs/lenovo/LENOVO-ENV-MIB b/mibs/lenovo/LENOVO-ENV-MIB new file mode 100644 index 0000000000..8e3460982c --- /dev/null +++ b/mibs/lenovo/LENOVO-ENV-MIB @@ -0,0 +1,476 @@ +LENOVO-ENV-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION + FROM SNMPv2-TC + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB + PhysicalIndex + FROM ENTITY-MIB + network-mibs + FROM LENOVO-SMI-MIB; + +------------------------------------------------------------------------------- +-- Module Identity +------------------------------------------------------------------------------- + +lenovoEnvMIB MODULE-IDENTITY + LAST-UPDATED "201609230000Z" -- 09/23/2016 00:00GMT + ORGANIZATION "Lenovo" + CONTACT-INFO " + Lenovo + 3325 Scott Blvd. + Santa Clara, CA 95054 + " + DESCRIPTION " + Defines environmental notifications + " + REVISION "201609230000Z" -- 09/23/2016 00:00GMT + DESCRIPTION "Initial version." + + ::= { network-mibs 11 } + +------------------------------------------------------------------------------- +-- Textual Conventions +------------------------------------------------------------------------------- + +LenovoEnvMibPowerSupplyState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Status of the Power Supply" + SYNTAX INTEGER { + off(0), + on(1), + absent(2), + outputFault (3) + } + +LenovoEnvMibFanState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Status of the Fan" + SYNTAX INTEGER { + ok(0), + absent(1), + fault (2) + } + +LenovoEnvMibTempSensorState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Status of the temperature sensor" + SYNTAX INTEGER { + ok(0), + fault(1) + } + +LenovoEnvMibTempSensorThreshold ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Threshold that was crossed that generated the notification" + SYNTAX INTEGER { + warning(0), + failure(1), + ok(2) + } + +LenovoEnvMibFanAirFlow ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Air flow direction of the Fan" + SYNTAX INTEGER { + front2back(0), + back2front(1), + notinstalled(2) + } + +------------------------------------------------------------------------------- +-- Objects +------------------------------------------------------------------------------- + +lenovoEnvMibObjects OBJECT IDENTIFIER ::= { lenovoEnvMIB 1 } + +lenovoEnvMibPowerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF LenovoEnvMibPowerSupplyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains information for the + various power supplies in the switch." + ::= { lenovoEnvMibObjects 1 } + +lenovoEnvMibPowerSupplyEntry OBJECT-TYPE + SYNTAX LenovoEnvMibPowerSupplyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A single row containing information for a power supply. + The power supply description and name are derived from + values in the Entity MIB. Row is indexed using the same + index used by the Physical Table of the Entity MIB" + INDEX { lenovoEnvMibPowerSupplyIndex } + ::= { lenovoEnvMibPowerSupplyTable 1 } + +LenovoEnvMibPowerSupplyEntry ::= SEQUENCE { + lenovoEnvMibPowerSupplyIndex PhysicalIndex, + lenovoEnvMibPowerSupplyID Integer32, + lenovoEnvMibPowerSupplyDesc SnmpAdminString, + lenovoEnvMibPowerSupplyName SnmpAdminString, + lenovoEnvMibPowerSupplyState LenovoEnvMibPowerSupplyState +} + +lenovoEnvMibPowerSupplyIndex OBJECT-TYPE + SYNTAX PhysicalIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index of entry for power supply in Physical Table of Entity MIB" + ::= { lenovoEnvMibPowerSupplyEntry 1 } + +lenovoEnvMibPowerSupplyID OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "ID of power supply" + ::= { lenovoEnvMibPowerSupplyEntry 2 } + +lenovoEnvMibPowerSupplyDesc OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Description of power supply" + ::= { lenovoEnvMibPowerSupplyEntry 3 } + +lenovoEnvMibPowerSupplyName OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of power supply" + ::= { lenovoEnvMibPowerSupplyEntry 4 } + +lenovoEnvMibPowerSupplyState OBJECT-TYPE + SYNTAX LenovoEnvMibPowerSupplyState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "State of the power supply" + ::= { lenovoEnvMibPowerSupplyEntry 5 } + +lenovoEnvMibFanTable OBJECT-TYPE + SYNTAX SEQUENCE OF LenovoEnvMibFanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains information for the + various fans in the switch." + ::= { lenovoEnvMibObjects 2 } + +lenovoEnvMibFanEntry OBJECT-TYPE + SYNTAX LenovoEnvMibFanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A single row containing information for a fan. + The fan description and name are derived from + values in the Entity MIB. Row is indexed using the same + index used by the Physical Table of the Entity MIB" + INDEX { lenovoEnvMibFanIndex } + ::= { lenovoEnvMibFanTable 1 } + +LenovoEnvMibFanEntry ::= SEQUENCE { + lenovoEnvMibFanIndex PhysicalIndex, + lenovoEnvMibFanID Integer32, + lenovoEnvMibFanDesc SnmpAdminString, + lenovoEnvMibFanName SnmpAdminString, + lenovoEnvMibFanState LenovoEnvMibFanState, + lenovoEnvMibFanAirFlow LenovoEnvMibFanAirFlow, + lenovoEnvMibFanModule Integer32, + lenovoEnvMibFanSpeedRPM Integer32, + lenovoEnvMibFanSpeedPercent Gauge32 +} + +lenovoEnvMibFanIndex OBJECT-TYPE + SYNTAX PhysicalIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index of entry for fan in Physical Table of Entity MIB" + ::= { lenovoEnvMibFanEntry 1 } + +lenovoEnvMibFanID OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "ID of fan" + ::= { lenovoEnvMibFanEntry 2 } + + +lenovoEnvMibFanDesc OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Description of fan" + ::= { lenovoEnvMibFanEntry 3 } + + +lenovoEnvMibFanName OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of fan" + ::= { lenovoEnvMibFanEntry 4 } + + +lenovoEnvMibFanState OBJECT-TYPE + SYNTAX LenovoEnvMibFanState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "State of the fan" + ::= { lenovoEnvMibFanEntry 5 } + + +lenovoEnvMibFanAirFlow OBJECT-TYPE + SYNTAX LenovoEnvMibFanAirFlow + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Airflow direction of the fan" + ::= { lenovoEnvMibFanEntry 6 } + + +lenovoEnvMibFanModule OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Module number of the fan" + ::= { lenovoEnvMibFanEntry 7 } + +lenovoEnvMibFanSpeedRPM OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Speed of the fan in revolutions per minute (RPM)" + ::= { lenovoEnvMibFanEntry 8 } + + +lenovoEnvMibFanSpeedPercent OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Speed of the fan as a percentage" + ::= { lenovoEnvMibFanEntry 9 } + +lenovoEnvMibTempSensorTable OBJECT-TYPE + SYNTAX SEQUENCE OF LenovoEnvMibTempSensorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains information for the + various temperature sensors in the switch." + ::= { lenovoEnvMibObjects 3 } + +lenovoEnvMibTempSensorEntry OBJECT-TYPE + SYNTAX LenovoEnvMibTempSensorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A single row containing information for a temperature sensor. + The temperature sensor description and name are derived from + values in the Entity MIB. Row is indexed using the same + index used by the Physical Table of the Entity MIB" + INDEX { lenovoEnvMibTempSensorIndex } + ::= { lenovoEnvMibTempSensorTable 1 } + +LenovoEnvMibTempSensorEntry ::= SEQUENCE { + lenovoEnvMibTempSensorIndex PhysicalIndex, + lenovoEnvMibTempSensorID Integer32, + lenovoEnvMibTempSensorDesc SnmpAdminString, + lenovoEnvMibTempSensorName SnmpAdminString, + lenovoEnvMibTempSensorState LenovoEnvMibTempSensorState, + lenovoEnvMibTempSensorTemperature Integer32 +} + +lenovoEnvMibTempSensorIndex OBJECT-TYPE + SYNTAX PhysicalIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index of entry for temperature sensor in Physical Table of Entity MIB" + ::= { lenovoEnvMibTempSensorEntry 1 } + +lenovoEnvMibTempSensorID OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "ID of temperature sensor" + ::= { lenovoEnvMibTempSensorEntry 2 } + +lenovoEnvMibTempSensorDesc OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Description of temperature sensor" + ::= { lenovoEnvMibTempSensorEntry 3 } + +lenovoEnvMibTempSensorName OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of temperature sensor" + ::= { lenovoEnvMibTempSensorEntry 4 } + +lenovoEnvMibTempSensorState OBJECT-TYPE + SYNTAX LenovoEnvMibTempSensorState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "State of the temperature sensor" + ::= { lenovoEnvMibTempSensorEntry 5 } + +lenovoEnvMibTempSensorTemperature OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Temperature of the sensor in Celcius" + ::= { lenovoEnvMibTempSensorEntry 6 } + +lenovoEnvMibTempSensorThresholds OBJECT IDENTIFIER ::= { lenovoEnvMibObjects 4 } + +lenovoEnvMIBTempSensorWarning OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System temperature sensor warning threshold value" + ::= { lenovoEnvMibTempSensorThresholds 1 } + +lenovoEnvMIBTempSensorShutdown OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System temperature sensor shutdown/failure threshold value" + ::= { lenovoEnvMibTempSensorThresholds 2 } + +lenovoEnvMIBTempSensorSetPoint OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System temperature sensor set point threshold value" + ::= { lenovoEnvMibTempSensorThresholds 3 } + +------------------------------------------------------------------------------- +-- Notifications +------------------------------------------------------------------------------- + +lenovoEnvMibNotificationPrefix OBJECT IDENTIFIER ::= { lenovoEnvMIB 3 } + +lenovoEnvMibNotifications OBJECT IDENTIFIER ::= { lenovoEnvMibNotificationPrefix 0 } + +lenovoEnvMibNotificationObjects OBJECT IDENTIFIER ::= { lenovoEnvMibNotificationPrefix 1 } + +lenovoEnvMibTempSensorThreshold OBJECT-TYPE + SYNTAX LenovoEnvMibTempSensorThreshold + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Threshold that was crossed that generated the notification" + ::= { lenovoEnvMibNotificationObjects 1 } + +lenovoEnvMibPowerSupplyFailure NOTIFICATION-TYPE + OBJECTS { + lenovoEnvMibPowerSupplyID, + lenovoEnvMibPowerSupplyName, + lenovoEnvMibPowerSupplyState + } + STATUS current + DESCRIPTION + "This trap signifies that a power supply has failed." + --#SEVERITY CRITICAL + ::= { lenovoEnvMibNotifications 1 } + +lenovoEnvMibPowerSupplyFixed NOTIFICATION-TYPE + OBJECTS { + lenovoEnvMibPowerSupplyID, + lenovoEnvMibPowerSupplyName, + lenovoEnvMibPowerSupplyState + } + STATUS current + DESCRIPTION + "This trap signifies that a power supply has been restored." + --#SEVERITY INFORMATIONAL + ::= { lenovoEnvMibNotifications 2 } + +lenovoEnvMibFanFailure NOTIFICATION-TYPE + OBJECTS { + lenovoEnvMibFanID, + lenovoEnvMibFanName, + lenovoEnvMibFanState, + lenovoEnvMibFanRPM + } + STATUS current + DESCRIPTION + "This trap signifies that a fan has failed." + --#SEVERITY CRITICAL + ::= { lenovoEnvMibNotifications 3 } + +lenovoEnvMibFanFixed NOTIFICATION-TYPE + OBJECTS { + lenovoEnvMibFanID, + lenovoEnvMibFanName, + lenovoEnvMibFanState, + lenovoEnvMibFanRPM + } + STATUS current + DESCRIPTION + "This trap signifies that a fan has been restored." + --#SEVERITY INFORMATIONAL + ::= { lenovoEnvMibNotifications 4 } + +lenovoEnvMibTempSensorFailure NOTIFICATION-TYPE + OBJECTS { + lenovoEnvMibTempSensorID, + lenovoEnvMibTempSensorName, + lenovoEnvMibTempSensorState, + lenovoEnvMibTempSensorTemperature, + lenovoEnvMibTempSensorThreshold + } + STATUS current + DESCRIPTION + "This trap signifies that a temperature sensor has failed." + --#SEVERITY CRITICAL + ::= { lenovoEnvMibNotifications 5 } + +lenovoEnvMibTempSensorFixed NOTIFICATION-TYPE + OBJECTS { + lenovoEnvMibTempSensorID, + lenovoEnvMibTempSensorName, + lenovoEnvMibTempSensorState, + lenovoEnvMibTempSensorTemperature, + lenovoEnvMibTempSensorThreshold + } + STATUS current + DESCRIPTION + "This trap signifies that a temperature sensor has been restored." + --#SEVERITY INFORMATIONAL + ::= { lenovoEnvMibNotifications 6 } + +END + diff --git a/mibs/lenovo/LENOVO-SMI-MIB b/mibs/lenovo/LENOVO-SMI-MIB new file mode 100644 index 0000000000..6722ef6225 --- /dev/null +++ b/mibs/lenovo/LENOVO-SMI-MIB @@ -0,0 +1,73 @@ +-- LENOVO-SMI-MIB: Lenovo structure of management information +-- Copyright (c) 2014-2016 Lenovo. All rights reserved. + +LENOVO-SMI-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-IDENTITY, + enterprises + FROM SNMPv2-SMI; + +lenovo MODULE-IDENTITY + LAST-UPDATED "201608150000Z" + ORGANIZATION "Lenovo Group Ltd." + CONTACT-INFO + "Lenovo + Postal: 1009 Think Place + Morrisville, NC 27560 + USA + Tel: +1 (919) 968-4465 + E-mail: snmp@lenovo.com" + DESCRIPTION + "The Structure of Management Information for the + Lenovo Enterprise Business Group." + REVISION "201610271830Z" + DESCRIPTION + "Initial version." + ::= { enterprises 19046 } -- assigned by IANA + +lenovoProducts OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root object identifier from which sysObjectID values are assigned. + Values are defined in LENOVO-PRODUCTS-MIB." + ::= { lenovo 1 } + +lenovoNetworkMibs OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root object identifier for management-related Lenovo network MIBs." + ::= { lenovo 2 } + +tor-mibs OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root for pre-10.x Lenovo RackSwitch switch MIBs." + ::= { lenovoNetworkMibs 7 } + +flex-mibs OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root for pre-10.x Lenovo Flex chassis switch MIBs." + ::= { lenovoNetworkMibs 18 } + +network-mibs OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root for Lenovo device-independent switch MIBs." + ::= { lenovoNetworkMibs 3 } + +lenovoServerMibs OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root object identifier for management-related Lenovo server MIBs." + ::= { lenovo 11 } + +lenovoModules OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Root bject identifier from which MODULE-IDENTITY values may be assigned." + ::= { lenovo 4 } + +END diff --git a/tests/data/cnos.json b/tests/data/cnos.json new file mode 100644 index 0000000000..17dd7376c0 --- /dev/null +++ b/tests/data/cnos.json @@ -0,0 +1,79 @@ +{ + "applications": { + "discovery": { + "applications": [], + "application_metrics": [] + }, + "poller": "matches discovery" + }, + "bgp-peers": { + "discovery": { + "devices": [ + { + "bgpLocalAs": null + } + ], + "bgpPeers": [], + "bgpPeers_cbgp": [] + }, + "poller": "matches discovery" + }, + "mempools": { + "discovery": { + "mempools": [] + }, + "poller": "matches discovery" + }, + "ports": { + "discovery": { + "ports": [] + }, + "poller": "matches discovery" + }, + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.19046.1.7.34", + "sysDescr": "Lenovo ThinkSystem NE1072T RackSwitch", + "sysContact": null, + "version": null, + "hardware": "", + "features": null, + "location": null, + "os": "cnos", + "type": "network", + "serial": null, + "icon": "lenovo.svg" + } + ] + }, + "poller": "matches discovery" + }, + "processors": { + "discovery": { + "processors": [] + }, + "poller": "matches discovery" + }, + "sensors": { + "discovery": { + "sensors": [], + "state_indexes": [] + }, + "poller": "matches discovery" + }, + "storage": { + "discovery": { + "storage": [] + }, + "poller": "matches discovery" + }, + "wireless": { + "discovery": { + "wireless_sensors": [] + }, + "poller": "matches discovery" + } +} diff --git a/tests/snmpsim/cnos.snmprec b/tests/snmpsim/cnos.snmprec new file mode 100644 index 0000000000..e4f35fed3f --- /dev/null +++ b/tests/snmpsim/cnos.snmprec @@ -0,0 +1,2 @@ +1.3.6.1.2.1.1.1.0|4|Lenovo ThinkSystem NE1072T RackSwitch +1.3.6.1.2.1.1.2.0|6|.1.3.6.1.4.1.19046.1.7.34