. * * @package LibreNMS * @link http://librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Device\Tabs; use App\Models\Device; use LibreNMS\Config; use LibreNMS\Interfaces\UI\DeviceTab; class NetflowController implements DeviceTab { public function visible(Device $device): bool { if (Config::get('nfsen_enable')) { foreach ((array)Config::get('nfsen_rrds', []) as $nfsenrrds) { if ($nfsenrrds[(strlen($nfsenrrds) - 1)] != '/') { $nfsenrrds .= '/'; } $nfsensuffix = Config::get('nfsen_suffix', ''); if (Config::get('nfsen_split_char')) { $basefilename_underscored = preg_replace('/\./', Config::get('nfsen_split_char'), $device->hostname); } else { $basefilename_underscored = $device->hostname; } $nfsen_filename = preg_replace('/'.$nfsensuffix.'/', '', $basefilename_underscored); if (is_file($nfsenrrds.$nfsen_filename.'.rrd')) { return true; } } } return false; } public function slug(): string { return 'netflow'; } public function icon(): string { return 'fa-tint'; } public function name(): string { return __('Netflow'); } public function data(Device $device): array { return [ 'tab' => 'nfsen', ]; } }