]> source.dussan.org Git - nextcloud-server.git/commitdiff
Execute MoveAvatars repair step only once 2405/head
authorMorris Jobke <hey@morrisjobke.de>
Tue, 29 Nov 2016 15:05:09 +0000 (16:05 +0100)
committerMorris Jobke <hey@morrisjobke.de>
Tue, 29 Nov 2016 15:55:13 +0000 (16:55 +0100)
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
lib/private/Repair.php
lib/private/Repair/NC11/MoveAvatars.php

index 7a5ef9fbd9e06512de15bbc4e5a5a1b040cededd..ef484bf12d01b898e4a89c11aaa60b2333b4f79b 100644 (file)
@@ -153,7 +153,7 @@ class Repair implements IOutput{
                        new MoveUpdaterStepFile(\OC::$server->getConfig()),
                        new MoveAvatars(
                                \OC::$server->getJobList(),
-                               \OC::$server->getSystemConfig()
+                               \OC::$server->getConfig()
                        ),
                ];
        }
index 44402b1be4f5ee64c29fd557fbabac89471ea164..f98068eaa45f2f9da299b62b616864f3238cc647 100644 (file)
@@ -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');
                }
        }
 }