diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-06-03 13:56:17 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-06-03 13:56:17 +0200 |
commit | 739c3f01aa32a4de6f671f72fc9cc216d02972d2 (patch) | |
tree | d0822b073d4170c517558624d1b739be78b25927 | |
parent | 69d1e7aaf4ddb85fefa17cb7bd3c57274cc428f4 (diff) | |
parent | 064f5204cc365bcf8c12ef34e6fde92175c9d6fa (diff) | |
download | nextcloud-server-739c3f01aa32a4de6f671f72fc9cc216d02972d2.tar.gz nextcloud-server-739c3f01aa32a4de6f671f72fc9cc216d02972d2.zip |
Merge pull request #16434 from owncloud/persist-maintenance-state
Persist the state of the maintenance after an upgrade
-rw-r--r-- | core/ajax/update.php | 7 | ||||
-rw-r--r-- | core/command/upgrade.php | 11 | ||||
-rw-r--r-- | lib/private/updater.php | 18 |
3 files changed, 27 insertions, 9 deletions
diff --git a/core/ajax/update.php b/core/ajax/update.php index 22133f9774c..6a29b5b1c33 100644 --- a/core/ajax/update.php +++ b/core/ajax/update.php @@ -44,12 +44,15 @@ if (OC::checkUpgrade(false)) { $incompatibleApps = []; $disabledThirdPartyApps = []; - $updater->listen('\OC\Updater', 'maintenanceStart', function () use ($eventSource, $l) { + $updater->listen('\OC\Updater', 'maintenanceEnabled', function () use ($eventSource, $l) { $eventSource->send('success', (string)$l->t('Turned on maintenance mode')); }); - $updater->listen('\OC\Updater', 'maintenanceEnd', function () use ($eventSource, $l) { + $updater->listen('\OC\Updater', 'maintenanceDisabled', function () use ($eventSource, $l) { $eventSource->send('success', (string)$l->t('Turned off maintenance mode')); }); + $updater->listen('\OC\Updater', 'maintenanceActive', function () use ($eventSource, $l) { + $eventSource->send('success', (string)$l->t('Maintenance mode is kept active')); + }); $updater->listen('\OC\Updater', 'dbUpgrade', function () use ($eventSource, $l) { $eventSource->send('success', (string)$l->t('Updated database')); }); diff --git a/core/command/upgrade.php b/core/command/upgrade.php index 85bd430db58..2d6394fea85 100644 --- a/core/command/upgrade.php +++ b/core/command/upgrade.php @@ -118,12 +118,17 @@ class Upgrade extends Command { $updater->setUpdateStepEnabled($updateStepEnabled); $updater->setSkip3rdPartyAppsDisable($skip3rdPartyAppsDisable); - $updater->listen('\OC\Updater', 'maintenanceStart', function () use($output) { + $updater->listen('\OC\Updater', 'maintenanceEnabled', function () use($output) { $output->writeln('<info>Turned on maintenance mode</info>'); }); - $updater->listen('\OC\Updater', 'maintenanceEnd', + $updater->listen('\OC\Updater', 'maintenanceDisabled', function () use($output) { + $output->writeln('<info>Turned off maintenance mode</info>'); + }); + $updater->listen('\OC\Updater', 'maintenanceActive', function () use($output) { + $output->writeln('<info>Maintenance mode is kept active</info>'); + }); + $updater->listen('\OC\Updater', 'updateEnd', function () use($output, $updateStepEnabled, $self) { - $output->writeln('<info>Turned off maintenance mode</info>'); $mode = $updateStepEnabled ? 'Update' : 'Update simulation'; $status = $self->upgradeFailed ? 'failed' : 'successful'; $message = "<info>$mode $status</info>"; diff --git a/lib/private/updater.php b/lib/private/updater.php index 8371193ef79..7f1a493d2a0 100644 --- a/lib/private/updater.php +++ b/lib/private/updater.php @@ -176,14 +176,18 @@ class Updater extends BasicEmitter { * @return bool true if the operation succeeded, false otherwise */ public function upgrade() { - $this->config->setSystemValue('maintenance', true); + $wasMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false); + + if(!$wasMaintenanceModeEnabled) { + $this->config->setSystemValue('maintenance', true); + $this->emit('\OC\Updater', 'maintenanceEnabled'); + } $installedVersion = $this->config->getSystemValue('version', '0.0.0'); $currentVersion = implode('.', \OC_Util::getVersion()); if ($this->log) { $this->log->debug('starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, array('app' => 'core')); } - $this->emit('\OC\Updater', 'maintenanceStart'); try { $this->doUpgrade($currentVersion, $installedVersion); @@ -191,8 +195,14 @@ class Updater extends BasicEmitter { $this->emit('\OC\Updater', 'failure', array($exception->getMessage())); } - $this->config->setSystemValue('maintenance', false); - $this->emit('\OC\Updater', 'maintenanceEnd'); + $this->emit('\OC\Updater', 'updateEnd'); + + if(!$wasMaintenanceModeEnabled) { + $this->config->setSystemValue('maintenance', false); + $this->emit('\OC\Updater', 'maintenanceDisabled'); + } else { + $this->emit('\OC\Updater', 'maintenanceActive'); + } } /** |