[Pkg-owncloud-commits] [owncloud] 80/205: [updater] propagate error case properly
David Prévot
taffit at moszumanska.debian.org
Thu Jul 2 17:36:58 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch stable8
in repository owncloud.
commit fe42553e8a034ca246698144b03dc4570fe0b826
Author: Morris Jobke <hey at morrisjobke.de>
Date: Tue Jun 23 10:03:27 2015 +0200
[updater] propagate error case properly
* add $success to the updateEnd hook
* add new return code for a update failure
* add exception class to failure hook message
---
core/command/upgrade.php | 14 ++++++++------
lib/private/updater.php | 9 +++++++--
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/core/command/upgrade.php b/core/command/upgrade.php
index 2d6394f..6791d38 100644
--- a/core/command/upgrade.php
+++ b/core/command/upgrade.php
@@ -39,8 +39,7 @@ class Upgrade extends Command {
const ERROR_MAINTENANCE_MODE = 2;
const ERROR_UP_TO_DATE = 3;
const ERROR_INVALID_ARGUMENTS = 4;
-
- public $upgradeFailed = false;
+ const ERROR_FAILURE = 5;
/**
* @var IConfig
@@ -128,9 +127,9 @@ class Upgrade extends Command {
$output->writeln('<info>Maintenance mode is kept active</info>');
});
$updater->listen('\OC\Updater', 'updateEnd',
- function () use($output, $updateStepEnabled, $self) {
+ function ($success) use($output, $updateStepEnabled, $self) {
$mode = $updateStepEnabled ? 'Update' : 'Update simulation';
- $status = $self->upgradeFailed ? 'failed' : 'successful';
+ $status = $success ? 'successful' : 'failed' ;
$message = "<info>$mode $status</info>";
$output->writeln($message);
});
@@ -163,13 +162,16 @@ class Upgrade extends Command {
});
$updater->listen('\OC\Updater', 'failure', function ($message) use($output, $self) {
$output->writeln("<error>$message</error>");
- $self->upgradeFailed = true;
});
- $updater->upgrade();
+ $success = $updater->upgrade();
$this->postUpgradeCheck($input, $output);
+ if(!$success) {
+ return self::ERROR_FAILURE;
+ }
+
return self::ERROR_SUCCESS;
} else if($this->config->getSystemValue('maintenance', false)) {
//Possible scenario: ownCloud core is updated but an app failed
diff --git a/lib/private/updater.php b/lib/private/updater.php
index 7f1a493..1b17fac 100644
--- a/lib/private/updater.php
+++ b/lib/private/updater.php
@@ -189,13 +189,16 @@ class Updater extends BasicEmitter {
$this->log->debug('starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, array('app' => 'core'));
}
+ $success = true;
try {
$this->doUpgrade($currentVersion, $installedVersion);
} catch (\Exception $exception) {
- $this->emit('\OC\Updater', 'failure', array($exception->getMessage()));
+ \OCP\Util::logException('update', $exception);
+ $this->emit('\OC\Updater', 'failure', array(get_class($exception) . ': ' .$exception->getMessage()));
+ $success = false;
}
- $this->emit('\OC\Updater', 'updateEnd');
+ $this->emit('\OC\Updater', 'updateEnd', array($success));
if(!$wasMaintenanceModeEnabled) {
$this->config->setSystemValue('maintenance', false);
@@ -203,6 +206,8 @@ class Updater extends BasicEmitter {
} else {
$this->emit('\OC\Updater', 'maintenanceActive');
}
+
+ return $success;
}
/**
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list