summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2022-08-22 17:59:26 +0200
committerCôme Chilliet <come.chilliet@nextcloud.com>2022-08-25 16:15:48 +0200
commita2a7150d6d87a499e6745651edb27c9795939d0c (patch)
tree43c24a93b22268ec324ec30b2ef026ea09df1b4b /core
parenta83a8f0dde07bff67e0ceb7008cc26b3fad32516 (diff)
downloadnextcloud-server-a2a7150d6d87a499e6745651edb27c9795939d0c.tar.gz
nextcloud-server-a2a7150d6d87a499e6745651edb27c9795939d0c.zip
Migrate Repair events to OCP\EventDispatcher\Event
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'core')
-rw-r--r--core/Command/Maintenance/Repair.php72
-rw-r--r--core/Command/Upgrade.php98
-rw-r--r--core/ajax/update.php88
-rw-r--r--core/register_command.php4
4 files changed, 123 insertions, 139 deletions
diff --git a/core/Command/Maintenance/Repair.php b/core/Command/Maintenance/Repair.php
index 6dac3085ca8..650aaf9ce34 100644
--- a/core/Command/Maintenance/Repair.php
+++ b/core/Command/Maintenance/Repair.php
@@ -30,24 +30,31 @@ namespace OC\Core\Command\Maintenance;
use Exception;
use OCP\App\IAppManager;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
+use OC\Repair\Events\RepairAdvanceEvent;
+use OC\Repair\Events\RepairErrorEvent;
+use OC\Repair\Events\RepairFinishEvent;
+use OC\Repair\Events\RepairInfoEvent;
+use OC\Repair\Events\RepairStartEvent;
+use OC\Repair\Events\RepairStepEvent;
+use OC\Repair\Events\RepairWarningEvent;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\GenericEvent;
class Repair extends Command {
protected \OC\Repair $repair;
protected IConfig $config;
- private EventDispatcherInterface $dispatcher;
+ private IEventDispatcher $dispatcher;
private ProgressBar $progress;
private OutputInterface $output;
private IAppManager $appManager;
- public function __construct(\OC\Repair $repair, IConfig $config, EventDispatcherInterface $dispatcher, IAppManager $appManager) {
+ public function __construct(\OC\Repair $repair, IConfig $config, IEventDispatcher $dispatcher, IAppManager $appManager) {
$this->repair = $repair;
$this->config = $config;
$this->dispatcher = $dispatcher;
@@ -102,13 +109,13 @@ class Repair extends Command {
$this->progress = new ProgressBar($output);
$this->output = $output;
- $this->dispatcher->addListener('\OC\Repair::startProgress', [$this, 'handleRepairFeedBack']);
- $this->dispatcher->addListener('\OC\Repair::advance', [$this, 'handleRepairFeedBack']);
- $this->dispatcher->addListener('\OC\Repair::finishProgress', [$this, 'handleRepairFeedBack']);
- $this->dispatcher->addListener('\OC\Repair::step', [$this, 'handleRepairFeedBack']);
- $this->dispatcher->addListener('\OC\Repair::info', [$this, 'handleRepairFeedBack']);
- $this->dispatcher->addListener('\OC\Repair::warning', [$this, 'handleRepairFeedBack']);
- $this->dispatcher->addListener('\OC\Repair::error', [$this, 'handleRepairFeedBack']);
+ $this->dispatcher->addListener(RepairStartEvent::class, [$this, 'handleRepairFeedBack']);
+ $this->dispatcher->addListener(RepairAdvanceEvent::class, [$this, 'handleRepairFeedBack']);
+ $this->dispatcher->addListener(RepairFinishEvent::class, [$this, 'handleRepairFeedBack']);
+ $this->dispatcher->addListener(RepairStepEvent::class, [$this, 'handleRepairFeedBack']);
+ $this->dispatcher->addListener(RepairInfoEvent::class, [$this, 'handleRepairFeedBack']);
+ $this->dispatcher->addListener(RepairWarningEvent::class, [$this, 'handleRepairFeedBack']);
+ $this->dispatcher->addListener(RepairErrorEvent::class, [$this, 'handleRepairFeedBack']);
$this->repair->run();
@@ -116,33 +123,22 @@ class Repair extends Command {
return 0;
}
- public function handleRepairFeedBack($event) {
- if (!$event instanceof GenericEvent) {
- return;
- }
- switch ($event->getSubject()) {
- case '\OC\Repair::startProgress':
- $this->progress->start($event->getArgument('max'));
- break;
- case '\OC\Repair::advance':
- $this->progress->advance($event->getArgument('step'));
- break;
- case '\OC\Repair::finishProgress':
- $this->progress->finish();
- $this->output->writeln('');
- break;
- case '\OC\Repair::step':
- $this->output->writeln(' - ' . $event->getArgument('step'));
- break;
- case '\OC\Repair::info':
- $this->output->writeln(' - ' . $event->getArgument('message'));
- break;
- case '\OC\Repair::warning':
- $this->output->writeln(' - WARNING: ' . $event->getArgument('message'));
- break;
- case '\OC\Repair::error':
- $this->output->writeln('<error> - ERROR: ' . $event->getArgument('message') . '</error>');
- break;
+ public function handleRepairFeedBack(Event $event): void {
+ if ($event instanceof RepairStartEvent) {
+ $this->progress->start($event->getMaxStep());
+ } elseif ($event instanceof RepairAdvanceEvent) {
+ $this->progress->advance($event->getCurrentStep());
+ } elseif ($event instanceof RepairFinishEvent) {
+ $this->progress->finish();
+ $this->output->writeln('');
+ } elseif ($event instanceof RepairStepEvent) {
+ $this->output->writeln(' - ' . $event->getStepName());
+ } elseif ($event instanceof RepairInfoEvent) {
+ $this->output->writeln(' - ' . $event->getMessage());
+ } elseif ($event instanceof RepairWarningEvent) {
+ $this->output->writeln(' - WARNING: ' . $event->getMessage());
+ } elseif ($event instanceof RepairErrorEvent) {
+ $this->output->writeln('<error> - ERROR: ' . $event->getMessage() . '</error>');
}
}
}
diff --git a/core/Command/Upgrade.php b/core/Command/Upgrade.php
index 3a45c53f6b2..f8a68c5697c 100644
--- a/core/Command/Upgrade.php
+++ b/core/Command/Upgrade.php
@@ -33,19 +33,26 @@
*/
namespace OC\Core\Command;
+use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
use OCP\Util;
use OC\Console\TimestampFormatter;
use OC\DB\MigratorExecuteSqlEvent;
use OC\Installer;
+use OC\Repair\Events\RepairAdvanceEvent;
+use OC\Repair\Events\RepairErrorEvent;
+use OC\Repair\Events\RepairFinishEvent;
+use OC\Repair\Events\RepairInfoEvent;
+use OC\Repair\Events\RepairStartEvent;
+use OC\Repair\Events\RepairStepEvent;
+use OC\Repair\Events\RepairWarningEvent;
use OC\Updater;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\EventDispatcher\GenericEvent;
class Upgrade extends Command {
public const ERROR_SUCCESS = 0;
@@ -94,9 +101,8 @@ class Upgrade extends Command {
$this->installer
);
- $dispatcher = \OC::$server->getEventDispatcher();
- /** @var IEventDispatcher $newDispatcher */
- $newDispatcher = \OC::$server->get(IEventDispatcher::class);
+ /** @var IEventDispatcher $dispatcher */
+ $dispatcher = \OC::$server->get(IEventDispatcher::class);
$progress = new ProgressBar($output);
$progress->setFormat(" %message%\n %current%/%max% [%bar%] %percent:3s%%");
$listener = function (MigratorExecuteSqlEvent $event) use ($progress, $output) {
@@ -120,57 +126,45 @@ class Upgrade extends Command {
}
}
};
- $repairListener = function ($event) use ($progress, $output) {
- if (!$event instanceof GenericEvent) {
- return;
- }
- switch ($event->getSubject()) {
- case '\OC\Repair::startProgress':
- $progress->setMessage('Starting ...');
- $output->writeln($event->getArgument('step'));
- $output->writeln('');
- $progress->start($event->getArgument('max'));
- break;
- case '\OC\Repair::advance':
- $desc = $event->getArgument('desc');
- if (!empty($desc)) {
- $progress->setMessage($desc);
- }
- $progress->advance($event->getArgument('step'));
-
- break;
- case '\OC\Repair::finishProgress':
- $progress->setMessage('Done');
- $progress->finish();
- $output->writeln('');
- break;
- case '\OC\Repair::step':
- if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) {
- $output->writeln('<info>Repair step: ' . $event->getArgument('step') . '</info>');
- }
- break;
- case '\OC\Repair::info':
- if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) {
- $output->writeln('<info>Repair info: ' . $event->getArgument('message') . '</info>');
- }
- break;
- case '\OC\Repair::warning':
- $output->writeln('<error>Repair warning: ' . $event->getArgument('message') . '</error>');
- break;
- case '\OC\Repair::error':
- $output->writeln('<error>Repair error: ' . $event->getArgument('message') . '</error>');
- break;
+ $repairListener = function (Event $event) use ($progress, $output) {
+ if ($event instanceof RepairStartEvent) {
+ $progress->setMessage('Starting ...');
+ $output->writeln($event->getCurrentStepName());
+ $output->writeln('');
+ $progress->start($event->getMaxStep());
+ } elseif ($event instanceof RepairAdvanceEvent) {
+ $desc = $event->getDescription();
+ if (!empty($desc)) {
+ $progress->setMessage($desc);
+ }
+ $progress->advance($event->getCurrentStep());
+ } elseif ($event instanceof RepairFinishEvent) {
+ $progress->setMessage('Done');
+ $progress->finish();
+ $output->writeln('');
+ } elseif ($event instanceof RepairStepEvent) {
+ if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) {
+ $output->writeln('<info>Repair step: ' . $event->getStepName() . '</info>');
+ }
+ } elseif ($event instanceof RepairInfoEvent) {
+ if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) {
+ $output->writeln('<info>Repair info: ' . $event->getMessage() . '</info>');
+ }
+ } elseif ($event instanceof RepairWarningEvent) {
+ $output->writeln('<error>Repair warning: ' . $event->getMessage() . '</error>');
+ } elseif ($event instanceof RepairErrorEvent) {
+ $output->writeln('<error>Repair error: ' . $event->getMessage() . '</error>');
}
};
- $newDispatcher->addListener(MigratorExecuteSqlEvent::class, $listener);
- $dispatcher->addListener('\OC\Repair::startProgress', $repairListener);
- $dispatcher->addListener('\OC\Repair::advance', $repairListener);
- $dispatcher->addListener('\OC\Repair::finishProgress', $repairListener);
- $dispatcher->addListener('\OC\Repair::step', $repairListener);
- $dispatcher->addListener('\OC\Repair::info', $repairListener);
- $dispatcher->addListener('\OC\Repair::warning', $repairListener);
- $dispatcher->addListener('\OC\Repair::error', $repairListener);
+ $dispatcher->addListener(MigratorExecuteSqlEvent::class, $listener);
+ $dispatcher->addListener(RepairStartEvent::class, $repairListener);
+ $dispatcher->addListener(RepairAdvanceEvent::class, $repairListener);
+ $dispatcher->addListener(RepairFinishEvent::class, $repairListener);
+ $dispatcher->addListener(RepairStepEvent::class, $repairListener);
+ $dispatcher->addListener(RepairInfoEvent::class, $repairListener);
+ $dispatcher->addListener(RepairWarningEvent::class, $repairListener);
+ $dispatcher->addListener(RepairErrorEvent::class, $repairListener);
$updater->listen('\OC\Updater', 'maintenanceEnabled', function () use ($output) {
diff --git a/core/ajax/update.php b/core/ajax/update.php
index 653a594f069..105cedd05f2 100644
--- a/core/ajax/update.php
+++ b/core/ajax/update.php
@@ -30,12 +30,19 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
+use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IEventSource;
use OCP\IL10N;
use OCP\ILogger;
use OC\DB\MigratorExecuteSqlEvent;
-use Symfony\Component\EventDispatcher\GenericEvent;
+use OC\Repair\Events\RepairAdvanceEvent;
+use OC\Repair\Events\RepairErrorEvent;
+use OC\Repair\Events\RepairFinishEvent;
+use OC\Repair\Events\RepairInfoEvent;
+use OC\Repair\Events\RepairStartEvent;
+use OC\Repair\Events\RepairStepEvent;
+use OC\Repair\Events\RepairWarningEvent;
if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) {
@set_time_limit(0);
@@ -63,41 +70,29 @@ class FeedBackHandler {
$this->l10n = $l10n;
}
- public function handleRepairFeedback($event): void {
- if (!$event instanceof GenericEvent) {
- return;
- }
-
- switch ($event->getSubject()) {
- case '\OC\Repair::startProgress':
- $this->progressStateMax = $event->getArgument('max');
- $this->progressStateStep = 0;
- $this->currentStep = (string)$event->getArgument('step');
- break;
- case '\OC\Repair::advance':
- $this->progressStateStep += $event->getArgument('step');
- $desc = $event->getArgument('desc');
- if (empty($desc)) {
- $desc = $this->currentStep;
- }
- $this->eventSource->send('success', $this->l10n->t('[%d / %d]: %s', [$this->progressStateStep, $this->progressStateMax, $desc]));
- break;
- case '\OC\Repair::finishProgress':
- $this->progressStateMax = $this->progressStateStep;
- $this->eventSource->send('success', $this->l10n->t('[%d / %d]: %s', [$this->progressStateStep, $this->progressStateMax, $this->currentStep]));
- break;
- case '\OC\Repair::step':
- $this->eventSource->send('success', $this->l10n->t('Repair step:') . ' ' . $event->getArgument('step'));
- break;
- case '\OC\Repair::info':
- $this->eventSource->send('success', $this->l10n->t('Repair info:') . ' ' . $event->getArgument('message'));
- break;
- case '\OC\Repair::warning':
- $this->eventSource->send('notice', $this->l10n->t('Repair warning:') . ' ' . $event->getArgument('message'));
- break;
- case '\OC\Repair::error':
- $this->eventSource->send('notice', $this->l10n->t('Repair error:') . ' ' . $event->getArgument('message'));
- break;
+ public function handleRepairFeedback(Event $event): void {
+ if ($event instanceof RepairStartEvent) {
+ $this->progressStateMax = $event->getMaxStep();
+ $this->progressStateStep = 0;
+ $this->currentStep = $event->getCurrentStepName();
+ } elseif ($event instanceof RepairAdvanceEvent) {
+ $this->progressStateStep += $event->getCurrentStep();
+ $desc = $event->getDescription();
+ if (empty($desc)) {
+ $desc = $this->currentStep;
+ }
+ $this->eventSource->send('success', $this->l10n->t('[%d / %d]: %s', [$this->progressStateStep, $this->progressStateMax, $desc]));
+ } elseif ($event instanceof RepairFinishEvent) {
+ $this->progressStateMax = $this->progressStateStep;
+ $this->eventSource->send('success', $this->l10n->t('[%d / %d]: %s', [$this->progressStateStep, $this->progressStateMax, $this->currentStep]));
+ } elseif ($event instanceof RepairStepEvent) {
+ $this->eventSource->send('success', $this->l10n->t('Repair step:') . ' ' . $event->getStepName());
+ } elseif ($event instanceof RepairInfoEvent) {
+ $this->eventSource->send('success', $this->l10n->t('Repair info:') . ' ' . $event->getMessage());
+ } elseif ($event instanceof RepairWarningEvent) {
+ $this->eventSource->send('notice', $this->l10n->t('Repair warning:') . ' ' . $event->getMessage());
+ } elseif ($event instanceof RepairErrorEvent) {
+ $this->eventSource->send('notice', $this->l10n->t('Repair error:') . ' ' . $event->getMessage());
}
}
}
@@ -124,20 +119,19 @@ if (\OCP\Util::needUpgrade()) {
);
$incompatibleApps = [];
- $dispatcher = \OC::$server->getEventDispatcher();
- /** @var IEventDispatcher $newDispatcher */
- $newDispatcher = \OC::$server->get(IEventDispatcher::class);
- $newDispatcher->addListener(MigratorExecuteSqlEvent::class, function (MigratorExecuteSqlEvent $event) use ($eventSource, $l) {
+ /** @var IEventDispatcher $dispatcher */
+ $dispatcher = \OC::$server->get(IEventDispatcher::class);
+ $dispatcher->addListener(MigratorExecuteSqlEvent::class, function (MigratorExecuteSqlEvent $event) use ($eventSource, $l) {
$eventSource->send('success', $l->t('[%d / %d]: %s', [$event->getCurrentStep(), $event->getMaxStep(), $event->getSql()]));
});
$feedBack = new FeedBackHandler($eventSource, $l);
- $dispatcher->addListener('\OC\Repair::startProgress', [$feedBack, 'handleRepairFeedback']);
- $dispatcher->addListener('\OC\Repair::advance', [$feedBack, 'handleRepairFeedback']);
- $dispatcher->addListener('\OC\Repair::finishProgress', [$feedBack, 'handleRepairFeedback']);
- $dispatcher->addListener('\OC\Repair::step', [$feedBack, 'handleRepairFeedback']);
- $dispatcher->addListener('\OC\Repair::info', [$feedBack, 'handleRepairFeedback']);
- $dispatcher->addListener('\OC\Repair::warning', [$feedBack, 'handleRepairFeedback']);
- $dispatcher->addListener('\OC\Repair::error', [$feedBack, 'handleRepairFeedback']);
+ $dispatcher->addListener(RepairStartEvent::class, [$feedBack, 'handleRepairFeedback']);
+ $dispatcher->addListener(RepairAdvanceEvent::class, [$feedBack, 'handleRepairFeedback']);
+ $dispatcher->addListener(RepairFinishEvent::class, [$feedBack, 'handleRepairFeedback']);
+ $dispatcher->addListener(RepairStepEvent::class, [$feedBack, 'handleRepairFeedback']);
+ $dispatcher->addListener(RepairInfoEvent::class, [$feedBack, 'handleRepairFeedback']);
+ $dispatcher->addListener(RepairWarningEvent::class, [$feedBack, 'handleRepairFeedback']);
+ $dispatcher->addListener(RepairErrorEvent::class, [$feedBack, 'handleRepairFeedback']);
$updater->listen('\OC\Updater', 'maintenanceEnabled', function () use ($eventSource, $l) {
$eventSource->send('success', $l->t('Turned on maintenance mode'));
diff --git a/core/register_command.php b/core/register_command.php
index 98a653aed7e..943180da706 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -168,9 +168,9 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
$application->add(new OC\Core\Command\Upgrade(\OC::$server->getConfig(), \OC::$server->get(LoggerInterface::class), \OC::$server->query(\OC\Installer::class)));
$application->add(new OC\Core\Command\Maintenance\Repair(
- new \OC\Repair([], \OC::$server->getEventDispatcher(), \OC::$server->get(LoggerInterface::class)),
+ new \OC\Repair([], \OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class), \OC::$server->get(LoggerInterface::class)),
\OC::$server->getConfig(),
- \OC::$server->getEventDispatcher(),
+ \OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class),
\OC::$server->getAppManager()
));