. * * @package LibreNMS * @link http://librenms.org * @copyright 2019 PipoCanaja * @author PipoCanaja */ $stacked_device = count(array_keys($pre_cache['hwStackMemberInfoTable'])); // If we have more than 1 device in the stack, then we should alert on stack ports not up if ($stacked_device > 1) { $state_name = "hwStackPortStatus"; $states = [ ['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'Up'], ['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'Down'], ]; } else { $state_name = "hwStackPortStatusNotStacked"; $states = [ ['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'Up'], ['value' => 2, 'generic' => 3, 'graph' => 0, 'descr' => 'Down'], ]; } foreach ($pre_cache['hwStackPortTable'] as $index => $data) { $subindex = explode('.', $index); $state_oid = '.1.3.6.1.4.1.2011.5.25.183.1.21.1.5.' . $index; $state_descr = "Unit " . $subindex[0] . " stack-port " . $subindex[1] . " Status"; $state = $data['hwStackPortStatus']; $state_index = $index; create_state_index($state_name, $states); discover_sensor($valid['sensor'], 'state', $device, $state_oid, $state_index, $state_name, $state_descr, '1', '1', null, null, null, null, $state, 'snmp', null, null, null, 'Stack'); create_sensor_to_state_index($device, $state_name, $state_index); }