. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 PipoCanaja * @author PipoCanaja */ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; class UpsmgUtilityRestored implements SnmptrapHandler { /** * Handle snmptrap. * Data is pre-parsed and delivered as a Trap. * * @param Device $device * @param Trap $trap * @return void */ public function handle(Device $device, Trap $trap) { $sensor = $device->sensors()->where('sensor_type', 'upsmgInputBadStatus')->first(); if (!$sensor) { Log::warning("Snmptrap UpsmgUtilityRestored: Could not find matching sensor upsmgInputBadStatus for device: " . $device->hostname); return; } $sensor->sensor_current = 2; $sensor->save(); $device_array = $device->toArray(); log_event("UPS power restored, state sensor " . $sensor->sensor_descr . " has changed to ".$sensor->sensor_current . ".", $device_array, "Power", 1); } }