░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/var/www/moodle/public/search/engine/solr/classes/check
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: connection.php
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. namespace search_solr\check; use core\check\check; use core\check\result; use core\output\html_writer; /** * Check that the connection to Solr works. * * @package search_solr * @copyright 2024 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class connection extends check { #[\Override] public function get_name(): string { return get_string('pluginname', 'search_solr'); } #[\Override] public function get_action_link(): ?\action_link { return new \action_link( new \moodle_url('/admin/settings.php', ['section' => 'searchsolr']), get_string('settings')); } #[\Override] public function get_result(): result { global $CFG; $result = result::OK; $resultstr = ''; $resultdetails = ''; try { // We do not use manager::instance as this will already try to connect to the engine, // we only want to do the specific get_status call below and nothing else. So use // search_engine_instance. We know it will be a Solr instance if we got here. /** @var \search_solr\engine $engine */ $engine = \core_search\manager::search_engine_instance(); // Get engine status. $status = $engine->get_status(5); $time = number_format($status['time'], 2) . 's'; $resultstr = get_string('check_time', 'search_solr', $time); } catch (\Throwable $t) { $status = [ 'connected' => false, 'foundcore' => false, 'error' => 'Exception when creating search manager: ' . $t->getMessage(), 'exception' => $t, ]; } if (!$status['connected']) { // No connection at all. $result = result::ERROR; $resultstr = get_string('check_notconnected', 'search_solr'); $resultdetails .= \html_writer::tag('p', s($status['error'])); } else if (!$status['foundcore']) { // There's a connection, but the core doesn't seem to exist. $result = result::ERROR; $resultstr = get_string('check_nocore', 'search_solr'); $resultdetails .= \html_writer::tag('p', s($status['error'])); } else { // Errors related to finding the core size only show if the size warning is configured. $sizelimit = get_config('search_solr', 'indexsizelimit'); if (!array_key_exists('indexsize', $status)) { if ($sizelimit) { $result = result::ERROR; $resultstr = get_string('check_nosize', 'search_solr'); $resultdetails .= \html_writer::tag('p', s($status['error'])); } } else { // Show the index size in result, even if we aren't checking it. $sizestr = get_string( 'indexsize', 'search_solr', display_size($status['indexsize']), ); $resultdetails .= \html_writer::tag('p', $sizestr); if ($sizelimit) { // Error at specified index size, warning at 90% of it. $sizewarning = ($sizelimit * 9) / 10; if ($status['indexsize'] > $sizewarning) { if ($status['indexsize'] > $sizelimit) { $resultstr = get_string('check_indextoobig', 'search_solr'); $result = result::ERROR; } else { // We don't say it's too big because it isn't yet, just show the size. $resultstr = $sizestr; $result = result::WARNING; } } } } } $ex = $status['exception'] ?? null; if ($ex) { $resultdetails .= \html_writer::tag('pre', str_replace($CFG->dirroot, '', s($ex->getTraceAsString()))); } return new result($result, $resultstr, $resultdetails); } }
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 connection.php
PHP
4.8 KB
2026-02-11 01:44
EDIT