Execute MoveAvatars repair step only once

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
Morris Jobke 2016-11-29 16:05:09 +01:00
parent f9271ebbd6
commit 69db58250a
No known key found for this signature in database
GPG key ID: 9CE5ED29E7FCD38A
2 changed files with 17 additions and 9 deletions

View file

@ -153,7 +153,7 @@ class Repair implements IOutput{
new MoveUpdaterStepFile(\OC::$server->getConfig()), new MoveUpdaterStepFile(\OC::$server->getConfig()),
new MoveAvatars( new MoveAvatars(
\OC::$server->getJobList(), \OC::$server->getJobList(),
\OC::$server->getSystemConfig() \OC::$server->getConfig()
), ),
]; ];
} }

View file

@ -22,8 +22,8 @@
*/ */
namespace OC\Repair\NC11; namespace OC\Repair\NC11;
use OC\SystemConfig;
use OCP\BackgroundJob\IJobList; use OCP\BackgroundJob\IJobList;
use OCP\IConfig;
use OCP\Migration\IOutput; use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep; use OCP\Migration\IRepairStep;
@ -32,33 +32,41 @@ class MoveAvatars implements IRepairStep {
/** @var IJobList */ /** @var IJobList */
private $jobList; private $jobList;
/** @var SystemConfig */ /** @var IConfig */
private $systemConfig; private $config;
/** /**
* MoveAvatars constructor. * MoveAvatars constructor.
* *
* @param IJobList $jobList * @param IJobList $jobList
* @param SystemConfig $systemConfig * @param IConfig $config
*/ */
public function __construct(IJobList $jobList, public function __construct(IJobList $jobList,
SystemConfig $systemConfig) { IConfig $config) {
$this->jobList = $jobList; $this->jobList = $jobList;
$this->systemConfig = $systemConfig; $this->config = $config;
} }
/** /**
* @return string * @return string
*/ */
public function getName() { public function getName() {
return 'Add mover avatar background job'; return 'Add move avatar background job';
} }
public function run(IOutput $output) { 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'); $output->info('Avatars are disabled');
} else { } else {
$output->info('Add background job');
$this->jobList->add(MoveAvatarsBackgroundJob::class); $this->jobList->add(MoveAvatarsBackgroundJob::class);
// if all were done, no need to redo the repair during next upgrade
$this->config->setAppValue('core', 'moveavatarsdone', 'yes');
} }
} }
} }