Skip to content

Commit

Permalink
chore: use DI for \OC\Repair
Browse files Browse the repository at this point in the history
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
  • Loading branch information
come-nc committed Jan 30, 2024
1 parent aee189f commit 0e19317
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 24 deletions.
8 changes: 1 addition & 7 deletions core/register_command.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
use OCP\IConfig;
use OCP\IURLGenerator;
use OCP\Server;
use Psr\Log\LoggerInterface;
use Stecman\Component\Symfony\Console\BashCompletion\CompletionCommand;

$application->add(new CompletionCommand());
Expand Down Expand Up @@ -149,12 +148,7 @@
$application->add(Server::get(Command\Maintenance\UpdateTheme::class));

$application->add(Server::get(Command\Upgrade::class));
$application->add(new Command\Maintenance\Repair(
new \OC\Repair([], Server::get(\OCP\EventDispatcher\IEventDispatcher::class), Server::get(LoggerInterface::class)),
\OC::$server->getConfig(),
Server::get(\OCP\EventDispatcher\IEventDispatcher::class),
\OC::$server->getAppManager()
));
$application->add(Server::get(Command\Maintenance\Repair::class));
$application->add(Server::get(Command\Maintenance\RepairShareOwnership::class));

$application->add(Server::get(Command\Preview\Generate::class));
Expand Down
2 changes: 1 addition & 1 deletion lib/private/Migration/BackgroundRepair.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ protected function run($argument): void {
}

$step = $argument['step'];
$repair = new Repair([], $this->dispatcher, \OC::$server->get(LoggerInterface::class));
$repair = \OCP\Server::get(Repair::class);
try {
$repair->addStep($step);
} catch (\Exception $ex) {
Expand Down
20 changes: 8 additions & 12 deletions lib/private/Repair.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,23 +91,19 @@

class Repair implements IOutput {
/** @var IRepairStep[] */
private array $repairSteps;

private IEventDispatcher $dispatcher;
private array $repairSteps = [];

private string $currentStep;

private LoggerInterface $logger;
public function __construct(
private IEventDispatcher $dispatcher,
private LoggerInterface $logger
) {
}

/**
* Creates a new repair step runner
*
* @param IRepairStep[] $repairSteps array of RepairStep instances
*/
public function __construct(array $repairSteps, IEventDispatcher $dispatcher, LoggerInterface $logger) {
/** @param IRepairStep[] $repairSteps */
public function setRepairSteps(array $repairSteps): void {
$this->repairSteps = $repairSteps;
$this->dispatcher = $dispatcher;
$this->logger = $logger;
}

/**
Expand Down
6 changes: 4 additions & 2 deletions lib/private/Updater.php
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,8 @@ private function doUpgrade(string $currentVersion, string $installedVersion): vo
file_put_contents($this->config->getSystemValueString('datadirectory', \OC::$SERVERROOT . '/data') . '/.ocdata', '');

// pre-upgrade repairs
$repair = new Repair(Repair::getBeforeUpgradeRepairSteps(), \OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class), \OC::$server->get(LoggerInterface::class));
$repair = \OCP\Server::get(Repair::class);
$repair->setRepairSteps(Repair::getBeforeUpgradeRepairSteps());
$repair->run();

$this->doCoreUpgrade();
Expand Down Expand Up @@ -296,7 +297,8 @@ private function doUpgrade(string $currentVersion, string $installedVersion): vo
}

// post-upgrade repairs
$repair = new Repair(Repair::getRepairSteps(), \OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class), \OC::$server->get(LoggerInterface::class));
$repair = \OCP\Server::get(Repair::class);
$repair->setRepairSteps(Repair::getRepairSteps());
$repair->run();

//Invalidate update feed
Expand Down
2 changes: 1 addition & 1 deletion lib/private/legacy/OC_App.php
Original file line number Diff line number Diff line change
Expand Up @@ -823,7 +823,7 @@ public static function executeRepairSteps(string $appId, array $steps) {
$dispatcher = \OC::$server->get(IEventDispatcher::class);

// load the steps
$r = new Repair([], $dispatcher, \OC::$server->get(LoggerInterface::class));
$r = \OCP\Server::get(Repair::class);
foreach ($steps as $step) {
try {
$r->addStep($step);
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/RepairTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class RepairTest extends TestCase {
protected function setUp(): void {
parent::setUp();
$dispatcher = \OC::$server->get(IEventDispatcher::class);
$this->repair = new \OC\Repair([], $dispatcher, $this->createMock(LoggerInterface::class));
$this->repair = new Repair($dispatcher, $this->createMock(LoggerInterface::class));

$dispatcher->addListener(RepairWarningEvent::class, function (RepairWarningEvent $event) {
$this->outputArray[] = 'warning: ' . $event->getMessage();
Expand Down

0 comments on commit 0e19317

Please sign in to comment.