chore: use DI for \OC\Repair

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
Côme Chilliet 2024-01-30 12:14:52 +01:00
parent aee189f6c7
commit 0e1931754a
No known key found for this signature in database
GPG key ID: A3E2F658B28C760A
6 changed files with 16 additions and 24 deletions

View file

@ -55,7 +55,6 @@ use OC\Core\Command;
use OCP\IConfig;
use OCP\IURLGenerator;
use OCP\Server;
use Psr\Log\LoggerInterface;
use Stecman\Component\Symfony\Console\BashCompletion\CompletionCommand;
$application->add(new CompletionCommand());
@ -149,12 +148,7 @@ if ($config->getSystemValueBool('installed', false)) {
$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));

View file

@ -73,7 +73,7 @@ class BackgroundRepair extends TimedJob {
}
$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) {

View file

@ -91,23 +91,19 @@ use Throwable;
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;
}
/**

View file

@ -255,7 +255,8 @@ class Updater extends BasicEmitter {
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();
@ -296,7 +297,8 @@ class Updater extends BasicEmitter {
}
// 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

View file

@ -823,7 +823,7 @@ class OC_App {
$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);

View file

@ -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();