From 69db58250a7a801256bcd14d787d8ca7d9613bb4 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 29 Nov 2016 16:05:09 +0100 Subject: Execute MoveAvatars repair step only once Signed-off-by: Morris Jobke --- lib/private/Repair.php | 2 +- lib/private/Repair/NC11/MoveAvatars.php | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/private/Repair.php b/lib/private/Repair.php index 7a5ef9fbd9e..ef484bf12d0 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -153,7 +153,7 @@ class Repair implements IOutput{ new MoveUpdaterStepFile(\OC::$server->getConfig()), new MoveAvatars( \OC::$server->getJobList(), - \OC::$server->getSystemConfig() + \OC::$server->getConfig() ), ]; } diff --git a/lib/private/Repair/NC11/MoveAvatars.php b/lib/private/Repair/NC11/MoveAvatars.php index 44402b1be4f..f98068eaa45 100644 --- a/lib/private/Repair/NC11/MoveAvatars.php +++ b/lib/private/Repair/NC11/MoveAvatars.php @@ -22,8 +22,8 @@ */ namespace OC\Repair\NC11; -use OC\SystemConfig; use OCP\BackgroundJob\IJobList; +use OCP\IConfig; use OCP\Migration\IOutput; use OCP\Migration\IRepairStep; @@ -32,33 +32,41 @@ class MoveAvatars implements IRepairStep { /** @var IJobList */ private $jobList; - /** @var SystemConfig */ - private $systemConfig; + /** @var IConfig */ + private $config; /** * MoveAvatars constructor. * * @param IJobList $jobList - * @param SystemConfig $systemConfig + * @param IConfig $config */ public function __construct(IJobList $jobList, - SystemConfig $systemConfig) { + IConfig $config) { $this->jobList = $jobList; - $this->systemConfig = $systemConfig; + $this->config = $config; } /** * @return string */ public function getName() { - return 'Add mover avatar background job'; + return 'Add move avatar background job'; } public function run(IOutput $output) { - if ($this->systemConfig->getValue('enable_avatars', true) === false) { + // only run once + if ($this->config->getAppValue('core', 'moveavatarsdone') === 'yes') { + $output->info('Repair step already executed'); + return; + } + if ($this->config->getSystemValue('enable_avatars', true) === false) { $output->info('Avatars are disabled'); } else { + $output->info('Add background job'); $this->jobList->add(MoveAvatarsBackgroundJob::class); + // if all were done, no need to redo the repair during next upgrade + $this->config->setAppValue('core', 'moveavatarsdone', 'yes'); } } } -- cgit v1.2.3