. * * @link https://www.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', ]; } }