. * * @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\ValidationResult; class CheckMemcached implements Validation { /** * @inheritDoc */ public function validate(): ValidationResult { if (! Config::get('distributed_poller_memcached_host')) { return ValidationResult::fail(trans('validation.validations.distributedpoller.CheckMemcached.not_configured_host'), 'lnms config:set distributed_poller_memcached_host '); } if (! Config::get('distributed_poller_memcached_port')) { return ValidationResult::fail(trans('validation.validations.distributedpoller.CheckMemcached.not_configured_port'), 'lnms config:set distributed_poller_memcached_port '); } $connection = @fsockopen(Config::get('distributed_poller_memcached_host'), Config::get('distributed_poller_memcached_port')); if (! is_resource($connection)) { return ValidationResult::fail(trans('validation.validations.distributedpoller.CheckMemcached.could_not_connect')); } fclose($connection); return ValidationResult::ok(trans('validation.validations.distributedpoller.CheckMemcached.ok')); } /** * @inheritDoc */ public function enabled(): bool { return Config::get('distributed_poller') && env('CACHE_DRIVER') == 'memcached'; } }