Merge pull request #7354 from nextcloud/refacor-update-page-print

Refactor method to check if update is needed
This commit is contained in:
blizzz 2018-01-22 22:50:05 +01:00 committed by GitHub
commit c7d9e5fd63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 35 deletions

View File

@ -27,6 +27,7 @@
namespace OCA\DAV\Connector\Sabre; namespace OCA\DAV\Connector\Sabre;
use OCP\IConfig; use OCP\IConfig;
use OCP\Util;
use Sabre\DAV\Exception\ServiceUnavailable; use Sabre\DAV\Exception\ServiceUnavailable;
use Sabre\DAV\ServerPlugin; use Sabre\DAV\ServerPlugin;
@ -80,7 +81,7 @@ class MaintenancePlugin extends ServerPlugin {
if ($this->config->getSystemValue('maintenance', false)) { if ($this->config->getSystemValue('maintenance', false)) {
throw new ServiceUnavailable('System in maintenance mode.'); throw new ServiceUnavailable('System in maintenance mode.');
} }
if (\OC::checkUpgrade(false)) { if (Util::needUpgrade()) {
throw new ServiceUnavailable('Upgrade needed'); throw new ServiceUnavailable('Upgrade needed');
} }

View File

@ -39,6 +39,7 @@ use OC\Installer;
use OC\Updater; use OC\Updater;
use OCP\IConfig; use OCP\IConfig;
use OCP\ILogger; use OCP\ILogger;
use OCP\Util;
use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar; use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputInterface;
@ -87,7 +88,7 @@ class Upgrade extends Command {
*/ */
protected function execute(InputInterface $input, OutputInterface $output) { protected function execute(InputInterface $input, OutputInterface $output) {
if(\OC::checkUpgrade(false)) { if(Util::needUpgrade()) {
if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) { if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) {
// Prepend each line with a little timestamp // Prepend each line with a little timestamp
$timestampFormatter = new TimestampFormatter($this->config, $output->getFormatter()); $timestampFormatter = new TimestampFormatter($this->config, $output->getFormatter());

View File

@ -98,7 +98,7 @@ class FeedBackHandler {
} }
} }
if (OC::checkUpgrade(false)) { if (\OCP\Util::needUpgrade()) {
$config = \OC::$server->getSystemConfig(); $config = \OC::$server->getSystemConfig();
if ($config->getValue('upgrade.disable-web', false)) { if ($config->getValue('upgrade.disable-web', false)) {

View File

@ -236,7 +236,7 @@ class OC {
// Check if config is writable // Check if config is writable
$configFileWritable = is_writable($configFilePath); $configFileWritable = is_writable($configFilePath);
if (!$configFileWritable && !OC_Helper::isReadOnlyConfigEnabled() if (!$configFileWritable && !OC_Helper::isReadOnlyConfigEnabled()
|| !$configFileWritable && self::checkUpgrade(false)) { || !$configFileWritable && \OCP\Util::needUpgrade()) {
$urlGenerator = \OC::$server->getURLGenerator(); $urlGenerator = \OC::$server->getURLGenerator();
@ -289,38 +289,16 @@ class OC {
} }
} }
/**
* Checks if the version requires an update and shows
* @param bool $showTemplate Whether an update screen should get shown
* @return bool|void
*/
public static function checkUpgrade($showTemplate = true) {
if (\OCP\Util::needUpgrade()) {
if (function_exists('opcache_reset')) {
opcache_reset();
}
$systemConfig = \OC::$server->getSystemConfig();
if ($showTemplate && !$systemConfig->getValue('maintenance', false)) {
self::printUpgradePage();
exit();
} else {
return true;
}
}
return false;
}
/** /**
* Prints the upgrade page * Prints the upgrade page
*
* @param \OC\SystemConfig $systemConfig
*/ */
private static function printUpgradePage() { private static function printUpgradePage(\OC\SystemConfig $systemConfig) {
$systemConfig = \OC::$server->getSystemConfig();
$disableWebUpdater = $systemConfig->getValue('upgrade.disable-web', false); $disableWebUpdater = $systemConfig->getValue('upgrade.disable-web', false);
$tooBig = false; $tooBig = false;
if (!$disableWebUpdater) { if (!$disableWebUpdater) {
$apps = \OC::$server->getAppManager(); $apps = \OC::$server->getAppManager();
$tooBig = false;
if ($apps->isInstalled('user_ldap')) { if ($apps->isInstalled('user_ldap')) {
$qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
@ -724,7 +702,7 @@ class OC {
); );
//setup extra user backends //setup extra user backends
if (!self::checkUpgrade(false)) { if (!\OCP\Util::needUpgrade()) {
OC_User::setupBackends(); OC_User::setupBackends();
} else { } else {
// Run upgrades in incognito mode // Run upgrades in incognito mode
@ -807,7 +785,7 @@ class OC {
*/ */
public static function registerCleanupHooks() { public static function registerCleanupHooks() {
//don't try to do this before we are properly setup //don't try to do this before we are properly setup
if (\OC::$server->getSystemConfig()->getValue('installed', false) && !self::checkUpgrade(false)) { if (\OC::$server->getSystemConfig()->getValue('installed', false) && !\OCP\Util::needUpgrade()) {
// NOTE: This will be replaced to use OCP // NOTE: This will be replaced to use OCP
$userSession = self::$server->getUserSession(); $userSession = self::$server->getUserSession();
@ -925,7 +903,7 @@ class OC {
if (!$systemConfig->getValue('installed', false)) { if (!$systemConfig->getValue('installed', false)) {
\OC::$server->getSession()->clear(); \OC::$server->getSession()->clear();
$setupHelper = new OC\Setup( $setupHelper = new OC\Setup(
\OC::$server->getSystemConfig(), $systemConfig,
\OC::$server->getIniWrapper(), \OC::$server->getIniWrapper(),
\OC::$server->getL10N('lib'), \OC::$server->getL10N('lib'),
\OC::$server->query(\OCP\Defaults::class), \OC::$server->query(\OCP\Defaults::class),
@ -945,7 +923,16 @@ class OC {
} }
if (substr($requestPath, -3) !== '.js') { // we need these files during the upgrade if (substr($requestPath, -3) !== '.js') { // we need these files during the upgrade
self::checkMaintenanceMode(); self::checkMaintenanceMode();
self::checkUpgrade();
if (\OCP\Util::needUpgrade()) {
if (function_exists('opcache_reset')) {
opcache_reset();
}
if (!$systemConfig->getValue('maintenance', false)) {
self::printUpgradePage($systemConfig);
exit();
}
}
} }
// emergency app disabling // emergency app disabling
@ -968,7 +955,7 @@ class OC {
OC_App::loadApps(['authentication']); OC_App::loadApps(['authentication']);
// Load minimum set of apps // Load minimum set of apps
if (!self::checkUpgrade(false) if (!\OCP\Util::needUpgrade()
&& !$systemConfig->getValue('maintenance', false)) { && !$systemConfig->getValue('maintenance', false)) {
// For logged-in users: Load everything // For logged-in users: Load everything
if(\OC::$server->getUserSession()->isLoggedIn()) { if(\OC::$server->getUserSession()->isLoggedIn()) {
@ -982,7 +969,7 @@ class OC {
if (!self::$CLI) { if (!self::$CLI) {
try { try {
if (!$systemConfig->getValue('maintenance', false) && !self::checkUpgrade(false)) { if (!$systemConfig->getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
OC_App::loadApps(array('filesystem', 'logging')); OC_App::loadApps(array('filesystem', 'logging'));
OC_App::loadApps(); OC_App::loadApps();
} }