. * * @link https://www.librenms.org * * @copyright 2020 Tony Murray * @author Tony Murray */ namespace LibreNMS\OS; use App\Models\Device; use LibreNMS\Interfaces\Discovery\OSDiscovery; use LibreNMS\Interfaces\Polling\OSPolling; use LibreNMS\OS; use LibreNMS\RRD\RrdDefinition; class Barracudangfirewall extends OS implements OSDiscovery, OSPolling { public function discoverOS(Device $device): void { if ($device->sysObjectID == '.1.3.6.1.4.1.10704.1.10') { $device->hardware = $device->sysName; } } public function pollOS(): void { // TODO move to count sensor $sessions = snmp_get($this->getDeviceArray(), 'firewallSessions64.8.102.119.83.116.97.116.115.0', '-OQv', 'PHION-MIB'); if (is_numeric($sessions)) { $rrd_def = RrdDefinition::make()->addDataset('fw_sessions', 'GAUGE', 0); $fields = ['fw_sessions' => $sessions]; $tags = compact('rrd_def'); app('Datastore')->put($this->getDeviceArray(), 'barracuda_firewall_sessions', $tags, $fields); $this->enableGraph('barracuda_firewall_sessions'); } } }