From f3d77f0c9edd6ed4a89b41b36a442af1c87d33e7 Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Fri, 13 Mar 2020 13:57:43 +0000 Subject: [PATCH 1/3] MDL-52319 upgrade: Also run environment checks if plugins need upgrades Also perform the environment checks if a plugin triggers the upgrade. Core upgrade and CLI upgrade was doing this already. --- admin/index.php | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/admin/index.php b/admin/index.php index c95c73c10c6..e8a52b56a93 100644 --- a/admin/index.php +++ b/admin/index.php @@ -533,7 +533,10 @@ if (!$cache and $branch <> $CFG->branch) { // Update the branch if (!$cache and moodle_needs_upgrading()) { - $PAGE->set_url(new moodle_url($PAGE->url, array('confirmplugincheck' => $confirmplugins))); + $PAGE->set_url(new moodle_url($PAGE->url, array( + 'confirmrelease' => $confirmrelease, + 'confirmplugincheck' => $confirmplugins, + ))); check_upgrade_key($upgradekeyhash); @@ -543,7 +546,21 @@ if (!$cache and moodle_needs_upgrading()) { $pluginman = core_plugin_manager::instance(); $output = $PAGE->get_renderer('core', 'admin'); - if (!$confirmplugins) { + if (empty($confirmrelease)) { + require_once($CFG->libdir . '/environmentlib.php'); + + list($envstatus, $environmentresults) = check_moodle_environment($release, ENV_SELECT_RELEASE); + $strcurrentrelease = get_string('currentrelease'); + + $PAGE->navbar->add($strcurrentrelease); + $PAGE->set_title($strcurrentrelease); + $PAGE->set_heading($strcurrentrelease); + $PAGE->set_cacheable(false); + + echo $output->upgrade_environment_page($release, $envstatus, $environmentresults); + die(); + + } else if (!$confirmplugins) { $strplugincheck = get_string('plugincheck'); $PAGE->navbar->add($strplugincheck); From fb37a2d49d4a501813a2c03a00c936de267feead Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Fri, 13 Mar 2020 14:14:25 +0000 Subject: [PATCH 2/3] MDL-52319 install: Fix some coding style issues --- admin/index.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/admin/index.php b/admin/index.php index e8a52b56a93..c391089ea4b 100644 --- a/admin/index.php +++ b/admin/index.php @@ -226,7 +226,7 @@ if (!core_tables_exist()) { } if (empty($confirmrelease)) { require_once($CFG->libdir.'/environmentlib.php'); - list($envstatus, $environment_results) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE); + list($envstatus, $environmentresults) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE); $strcurrentrelease = get_string('currentrelease'); $PAGE->navbar->add($strcurrentrelease); @@ -235,7 +235,7 @@ if (!core_tables_exist()) { $PAGE->set_cacheable(false); $output = $PAGE->get_renderer('core', 'admin'); - echo $output->install_environment_page($maturity, $envstatus, $environment_results, $release); + echo $output->install_environment_page($maturity, $envstatus, $environmentresults, $release); die(); } @@ -358,9 +358,9 @@ if (!$cache and $version > $CFG->version) { // upgrade echo $output->upgrade_confirm_page($a->newversion, $maturity, $testsite); die(); - } else if (empty($confirmrelease)){ + } else if (empty($confirmrelease)) { require_once($CFG->libdir.'/environmentlib.php'); - list($envstatus, $environment_results) = check_moodle_environment($release, ENV_SELECT_RELEASE); + list($envstatus, $environmentresults) = check_moodle_environment($release, ENV_SELECT_RELEASE); $strcurrentrelease = get_string('currentrelease'); $PAGE->navbar->add($strcurrentrelease); @@ -368,7 +368,7 @@ if (!$cache and $version > $CFG->version) { // upgrade $PAGE->set_heading($strcurrentrelease); $PAGE->set_cacheable(false); - echo $output->upgrade_environment_page($release, $envstatus, $environment_results); + echo $output->upgrade_environment_page($release, $envstatus, $environmentresults); die(); } else if (empty($confirmplugins)) { @@ -819,7 +819,7 @@ $SESSION->admin_critical_warning = ($insecuredataroot==INSECURE_DATAROOT_ERROR); $adminroot = admin_get_root(); // Check if there are any new admin settings which have still yet to be set -if (any_new_admin_settings($adminroot)){ +if (any_new_admin_settings($adminroot)) { redirect('upgradesettings.php'); } From 754f641f855913d42b0ebd55d77556efdcd03f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Mudr=C3=A1k?= Date: Fri, 13 Mar 2020 18:34:16 +0100 Subject: [PATCH 3/3] MDL-52319 upgrade: Better report the environment checks in CLI scripts Before we did not display the source of the environment check failure (whether it was a core check or a plugin) and there was a missing space before the "Error" status. --- lib/environmentlib.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/environmentlib.php b/lib/environmentlib.php index 3daebaebc64..64a3a4ffed9 100644 --- a/lib/environmentlib.php +++ b/lib/environmentlib.php @@ -140,6 +140,7 @@ function environment_get_errors($environment_results) { $type = $environment_result->getPart(); $info = $environment_result->getInfo(); $status = $environment_result->getStatus(); + $plugin = $environment_result->getPluginName(); $error_code = $environment_result->getErrorCode(); $a = new stdClass(); @@ -209,7 +210,13 @@ function environment_get_errors($environment_results) { // Append the restrict if there is some $feedbacktext .= $environment_result->strToReport($environment_result->getRestrictStr(), 'error'); - $report .= html_to_text($feedbacktext); + if ($plugin === '') { + $report = '[' . get_string('coresystem') . '] ' . $report; + } else { + $report = '[' . $plugin . '] ' . $report; + } + + $report .= ' - ' . html_to_text($feedbacktext); if ($environment_result->getPart() == 'custom_check'){ $errors[] = array($info, $report);