diff options
author | Joas Schilling <nickvergessen@owncloud.com> | 2016-05-03 15:16:39 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@owncloud.com> | 2016-05-03 15:16:39 +0200 |
commit | dda949e915e9c70ea6797c4551cd101df7356f93 (patch) | |
tree | c38afcf5be3e72831d9e08811c1d8c9d1e421fda /lib/private | |
parent | adf7e7295ed94a04bd9fcb056b81e664b45b4f07 (diff) | |
download | nextcloud-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.php | 19 |
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; |