. * * @link https://www.librenms.org * * @copyright 2022 Tony Murray * @author Tony Murray */ namespace LibreNMS\Validations\DistributedPoller; use LibreNMS\Config; use LibreNMS\Interfaces\Validation; use LibreNMS\Interfaces\ValidationFixer; use LibreNMS\ValidationResult; class CheckDistributedPollerEnabled implements Validation, ValidationFixer { /** * @inheritDoc */ public function validate(): ValidationResult { if (! Config::get('distributed_poller')) { return ValidationResult::fail(trans('validation.validations.distributedpoller.CheckDistributedPollerEnabled.not_enabled')) ->setFix('lnms config:set distributed_poller true') ->setFixer(__CLASS__); } $db_config = \App\Models\Config::firstWhere('config_name', 'distributed_poller'); if ($db_config === null || ! $db_config->config_value) { return ValidationResult::fail(trans('validation.validations.distributedpoller.CheckDistributedPollerEnabled.not_enabled_globally')) ->setFix('lnms config:set distributed_poller true') ->setFixer(__CLASS__); } return ValidationResult::ok(trans('validation.validations.distributedpoller.CheckDistributedPollerEnabled.ok')); } /** * @inheritDoc */ public function enabled(): bool { return true; } public function fix(): bool { Config::persist('distributed_poller', true); return true; } }