aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/command/upgrade.php51
-rw-r--r--core/register_command.php2
2 files changed, 30 insertions, 23 deletions
diff --git a/core/command/upgrade.php b/core/command/upgrade.php
index d037082c5e8..5b9432d631b 100644
--- a/core/command/upgrade.php
+++ b/core/command/upgrade.php
@@ -9,6 +9,7 @@
namespace OC\Core\Command;
use OC\Updater;
+use OCP\IConfig;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@@ -22,6 +23,20 @@ class Upgrade extends Command {
const ERROR_UP_TO_DATE = 3;
const ERROR_INVALID_ARGUMENTS = 4;
+ public $upgradeFailed = false;
+
+ /**
+ * @var IConfig
+ */
+ private $config;
+
+ /**
+ * @param IConfig $config
+ */
+ public function __construct(IConfig $config) {
+ $this->config = $config;
+ }
+
protected function configure() {
$this
->setName('upgrade')
@@ -48,14 +63,6 @@ class Upgrade extends Command {
*/
protected function execute(InputInterface $input, OutputInterface $output) {
- require_once \OC::$SERVERROOT . '/lib/base.php';
-
- // Don't do anything if ownCloud has not been installed
- if(!\OC_Config::getValue('installed', false)) {
- $output->writeln('<error>ownCloud has not yet been installed</error>');
- return self::ERROR_NOT_INSTALLED;
- }
-
$simulateStepEnabled = true;
$updateStepEnabled = true;
@@ -75,6 +82,7 @@ class Upgrade extends Command {
}
if(\OC::checkUpgrade(false)) {
+ $self = $this;
$updater = new Updater();
$updater->setSimulateStepEnabled($simulateStepEnabled);
@@ -83,15 +91,14 @@ class Upgrade extends Command {
$updater->listen('\OC\Updater', 'maintenanceStart', function () use($output) {
$output->writeln('<info>Turned on maintenance mode</info>');
});
- $updater->listen('\OC\Updater', 'maintenanceEnd', function () use($output, $updateStepEnabled) {
- $output->writeln('<info>Turned off maintenance mode</info>');
- if (!$updateStepEnabled) {
- $output->writeln('<info>Update simulation successful</info>');
- }
- else {
- $output->writeln('<info>Update successful</info>');
- }
- });
+ $updater->listen('\OC\Updater', 'maintenanceEnd',
+ 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>";
+ $output->writeln($message);
+ });
$updater->listen('\OC\Updater', 'dbUpgrade', function () use($output) {
$output->writeln('<info>Updated database</info>');
});
@@ -102,9 +109,9 @@ class Upgrade extends Command {
$output->writeln('<info>Disabled incompatible apps: ' . implode(', ', $appList) . '</info>');
});
- $updater->listen('\OC\Updater', 'failure', function ($message) use($output) {
- $output->writeln($message);
- \OC_Config::setValue('maintenance', false);
+ $updater->listen('\OC\Updater', 'failure', function ($message) use($output, $self) {
+ $output->writeln("<error>$message</error>");
+ $self->upgradeFailed = true;
});
$updater->upgrade();
@@ -112,7 +119,7 @@ class Upgrade extends Command {
$this->postUpgradeCheck($input, $output);
return self::ERROR_SUCCESS;
- } else if(\OC_Config::getValue('maintenance', false)) {
+ } else if($this->config->getSystemValue('maintenance', false)) {
//Possible scenario: ownCloud core is updated but an app failed
$output->writeln('<warning>ownCloud is in maintenance mode</warning>');
$output->write('<comment>Maybe an upgrade is already in process. Please check the '
@@ -134,7 +141,7 @@ class Upgrade extends Command {
* @param OutputInterface $output output interface
*/
protected function postUpgradeCheck(InputInterface $input, OutputInterface $output) {
- $trustedDomains = \OC_Config::getValue('trusted_domains', array());
+ $trustedDomains = $this->config->getSystemValue('trusted_domains', array());
if (empty($trustedDomains)) {
$output->write(
'<warning>The setting "trusted_domains" could not be ' .
diff --git a/core/register_command.php b/core/register_command.php
index b02988bbdd8..aaf10d946b2 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -12,7 +12,7 @@ $repair = new \OC\Repair(\OC\Repair::getRepairSteps());
$application->add(new OC\Core\Command\Status);
$application->add(new OC\Core\Command\Db\GenerateChangeScript());
$application->add(new OC\Core\Command\Db\ConvertType(OC_Config::getObject(), new \OC\DB\ConnectionFactory()));
-$application->add(new OC\Core\Command\Upgrade());
+$application->add(new OC\Core\Command\Upgrade(\OC::$server->getConfig()));
$application->add(new OC\Core\Command\Maintenance\SingleUser());
$application->add(new OC\Core\Command\Maintenance\Mode(OC_Config::getObject()));
$application->add(new OC\Core\Command\App\Disable());