summaryrefslogtreecommitdiffstats
path: root/lib/private
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2016-05-03 15:16:39 +0200
committerJoas Schilling <nickvergessen@owncloud.com>2016-05-03 15:16:39 +0200
commitdda949e915e9c70ea6797c4551cd101df7356f93 (patch)
treec38afcf5be3e72831d9e08811c1d8c9d1e421fda /lib/private
parentadf7e7295ed94a04bd9fcb056b81e664b45b4f07 (diff)
downloadnextcloud-server-dda949e915e9c70ea6797c4551cd101df7356f93.tar.gz
nextcloud-server-dda949e915e9c70ea6797c4551cd101df7356f93.zip
Allow migration steps to use automatic DI
Diffstat (limited to 'lib/private')
-rw-r--r--lib/private/Repair.php19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index 5d10cd582f0..38752ee1703 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -28,7 +28,6 @@
namespace OC;
-use OC\Hooks\Emitter;
use OC\Repair\AssetCache;
use OC\Repair\CleanTags;
use OC\Repair\Collation;
@@ -45,6 +44,7 @@ use OC\Repair\RepairMimeTypes;
use OC\Repair\SearchLuceneTables;
use OC\Repair\UpdateOutdatedOcsIds;
use OC\Repair\RepairInvalidShares;
+use OCP\AppFramework\QueryException;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
use Symfony\Component\EventDispatcher\EventDispatcher;
@@ -93,15 +93,20 @@ class Repair implements IOutput{
*/
public function addStep($repairStep) {
if (is_string($repairStep)) {
- if (class_exists($repairStep)) {
- $s = new $repairStep();
- if ($s instanceof IRepairStep) {
- $this->repairSteps[] = $s;
+ try {
+ $s = \OC::$server->query($repairStep);
+ } catch (QueryException $e) {
+ if (class_exists($repairStep)) {
+ $s = new $repairStep();
} else {
- throw new \Exception("Repair step '$repairStep' is not of type \\OCP\\Migration\\IRepairStep");
+ throw new \Exception("Repair step '$repairStep' is unknown");
}
+ }
+
+ if ($s instanceof IRepairStep) {
+ $this->repairSteps[] = $s;
} else {
- throw new \Exception("Repair step '$repairStep' is unknown");
+ throw new \Exception("Repair step '$repairStep' is not of type \\OCP\\Migration\\IRepairStep");
}
} else {
$this->repairSteps[] = $repairStep;