Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Moving to string key for arguments of GenericEvent in Repair
Signed-off-by: Côme Chilliet <[email protected]>
  • Loading branch information
come-nc committed Aug 25, 2022
commit 4f260dce6e43ddef835105a1d4dc13f2b8742526
17 changes: 0 additions & 17 deletions build/psalm-baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3946,23 +3946,6 @@
<code>$path</code>
</InvalidReturnStatement>
</file>
<file src="lib/private/Updater.php">
<InvalidScalarArgument occurrences="13">
<code>0</code>
<code>0</code>
<code>0</code>
<code>0</code>
<code>0</code>
<code>0</code>
<code>0</code>
<code>0</code>
<code>0</code>
<code>1</code>
<code>1</code>
<code>1</code>
<code>1</code>
</InvalidScalarArgument>
</file>
<file src="lib/private/Updater/VersionCheck.php">
<InvalidScalarArgument occurrences="2">
<code>microtime(true)</code>
Expand Down
12 changes: 6 additions & 6 deletions core/Command/Maintenance/Repair.php
Original file line number Diff line number Diff line change
Expand Up @@ -122,26 +122,26 @@ public function handleRepairFeedBack($event) {
}
switch ($event->getSubject()) {
case '\OC\Repair::startProgress':
$this->progress->start($event->getArgument(0));
$this->progress->start($event->getArgument('max'));
break;
case '\OC\Repair::advance':
$this->progress->advance($event->getArgument(0));
$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(0));
$this->output->writeln(' - ' . $event->getArgument('step'));
break;
case '\OC\Repair::info':
$this->output->writeln(' - ' . $event->getArgument(0));
$this->output->writeln(' - ' . $event->getArgument('message'));
break;
case '\OC\Repair::warning':
$this->output->writeln(' - WARNING: ' . $event->getArgument(0));
$this->output->writeln(' - WARNING: ' . $event->getArgument('message'));
break;
case '\OC\Repair::error':
$this->output->writeln('<error> - ERROR: ' . $event->getArgument(0) . '</error>');
$this->output->writeln('<error> - ERROR: ' . $event->getArgument('message') . '</error>');
break;
}
}
Expand Down
16 changes: 8 additions & 8 deletions core/Command/Upgrade.php
Original file line number Diff line number Diff line change
Expand Up @@ -125,16 +125,16 @@ protected function execute(InputInterface $input, OutputInterface $output): int
switch ($event->getSubject()) {
case '\OC\Repair::startProgress':
$progress->setMessage('Starting ...');
$output->writeln($event->getArgument(1));
$output->writeln($event->getArgument('step'));
$output->writeln('');
$progress->start($event->getArgument(0));
$progress->start($event->getArgument('max'));
break;
case '\OC\Repair::advance':
$desc = $event->getArgument(1);
$desc = $event->getArgument('desc');
if (!empty($desc)) {
$progress->setMessage($desc);
}
$progress->advance($event->getArgument(0));
$progress->advance($event->getArgument('step'));

break;
case '\OC\Repair::finishProgress':
Expand All @@ -144,19 +144,19 @@ protected function execute(InputInterface $input, OutputInterface $output): int
break;
case '\OC\Repair::step':
if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) {
$output->writeln('<info>Repair step: ' . $event->getArgument(0) . '</info>');
$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(0) . '</info>');
$output->writeln('<info>Repair info: ' . $event->getArgument('message') . '</info>');
}
break;
case '\OC\Repair::warning':
$output->writeln('<error>Repair warning: ' . $event->getArgument(0) . '</error>');
$output->writeln('<error>Repair warning: ' . $event->getArgument('message') . '</error>');
break;
case '\OC\Repair::error':
$output->writeln('<error>Repair error: ' . $event->getArgument(0) . '</error>');
$output->writeln('<error>Repair error: ' . $event->getArgument('message') . '</error>');
break;
}
};
Expand Down
39 changes: 18 additions & 21 deletions core/ajax/update.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
use OCP\IEventSource;
use OCP\IL10N;
use OCP\ILogger;
use Symfony\Component\EventDispatcher\GenericEvent;

Expand All @@ -48,36 +50,31 @@
$eventSource->send('success', $l->t('Preparing update'));

class FeedBackHandler {
/** @var integer */
private $progressStateMax = 100;
/** @var integer */
private $progressStateStep = 0;
/** @var string */
private $currentStep;
/** @var \OCP\IEventSource */
private $eventSource;
/** @var \OCP\IL10N */
private $l10n;

public function __construct(\OCP\IEventSource $eventSource, \OCP\IL10N $l10n) {
private int $progressStateMax = 100;
private int $progressStateStep = 0;
private string $currentStep = '';
private IEventSource $eventSource;
private IL10N $l10n;

public function __construct(IEventSource $eventSource, IL10N $l10n) {
$this->eventSource = $eventSource;
$this->l10n = $l10n;
}

public function handleRepairFeedback($event) {
public function handleRepairFeedback($event): void {
if (!$event instanceof GenericEvent) {
return;
}

switch ($event->getSubject()) {
case '\OC\Repair::startProgress':
$this->progressStateMax = $event->getArgument(0);
$this->progressStateMax = $event->getArgument('max');
$this->progressStateStep = 0;
$this->currentStep = $event->getArgument(1);
$this->currentStep = (string)$event->getArgument('step');
break;
case '\OC\Repair::advance':
$this->progressStateStep += $event->getArgument(0);
$desc = $event->getArgument(1);
$this->progressStateStep += $event->getArgument('step');
$desc = $event->getArgument('desc');
if (empty($desc)) {
$desc = $this->currentStep;
}
Expand All @@ -88,16 +85,16 @@ public function handleRepairFeedback($event) {
$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(0));
$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(0));
$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(0));
$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(0));
$this->eventSource->send('notice', $this->l10n->t('Repair error:') . ' ' . $event->getArgument('message'));
break;
}
}
Expand Down
24 changes: 10 additions & 14 deletions lib/private/Repair.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,19 +112,19 @@ public function __construct(array $repairSteps, EventDispatcherInterface $dispat
*/
public function run() {
if (count($this->repairSteps) === 0) {
$this->emit('\OC\Repair', 'info', ['No repair steps available']);
$this->emit('\OC\Repair', 'info', ['message' => 'No repair steps available']);

return;
}
// run each repair step
foreach ($this->repairSteps as $step) {
$this->currentStep = $step->getName();
$this->emit('\OC\Repair', 'step', [$this->currentStep]);
$this->emit('\OC\Repair', 'step', ['step' => $this->currentStep]);
try {
$step->run($this);
} catch (\Exception $e) {
$this->logger->error("Exception while executing repair step " . $step->getName(), ['exception' => $e]);
$this->emit('\OC\Repair', 'error', [$e->getMessage()]);
$this->emit('\OC\Repair', 'error', ['message' => $e->getMessage()]);
}
}
}
Expand Down Expand Up @@ -250,36 +250,32 @@ public static function getBeforeUpgradeRepairSteps() {
}

/**
* @param string $scope
* @param string $method
* @param array $arguments
* @param array<string, mixed> $arguments
*/
public function emit($scope, $method, array $arguments = []) {
if (!is_null($this->dispatcher)) {
$this->dispatcher->dispatch("$scope::$method",
public function emit(string $scope, string $method, array $arguments = []): void {
$this->dispatcher->dispatch("$scope::$method",
new GenericEvent("$scope::$method", $arguments));
}
}

public function info($string) {
// for now just emit as we did in the past
$this->emit('\OC\Repair', 'info', [$string]);
$this->emit('\OC\Repair', 'info', ['message' => $string]);
}

/**
* @param string $message
*/
public function warning($message) {
// for now just emit as we did in the past
$this->emit('\OC\Repair', 'warning', [$message]);
$this->emit('\OC\Repair', 'warning', ['message' => $message]);
}

/**
* @param int $max
*/
public function startProgress($max = 0) {
// for now just emit as we did in the past
$this->emit('\OC\Repair', 'startProgress', [$max, $this->currentStep]);
$this->emit('\OC\Repair', 'startProgress', ['max' => $max, 'step' => $this->currentStep]);
}

/**
Expand All @@ -288,7 +284,7 @@ public function startProgress($max = 0) {
*/
public function advance($step = 1, $description = '') {
// for now just emit as we did in the past
$this->emit('\OC\Repair', 'advance', [$step, $description]);
$this->emit('\OC\Repair', 'advance', ['step' => $step, 'desc' => $description]);
}

/**
Expand Down
16 changes: 8 additions & 8 deletions lib/private/Updater.php
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ private function doUpgrade(string $currentVersion, string $installedVersion): vo
$repair->run();

//Invalidate update feed
$this->config->setAppValue('core', 'lastupdatedat', 0);
$this->config->setAppValue('core', 'lastupdatedat', '0');

// Check for code integrity if not disabled
if (\OC::$server->getIntegrityCodeChecker()->isCodeCheckEnforced()) {
Expand Down Expand Up @@ -482,30 +482,30 @@ private function logAllEvents(): void {
}
switch ($event->getSubject()) {
case '\OC\Repair::startProgress':
$log->info('\OC\Repair::startProgress: Starting ... ' . $event->getArgument(1) . ' (' . $event->getArgument(0) . ')', ['app' => 'updater']);
$log->info('\OC\Repair::startProgress: Starting ... ' . $event->getArgument('max') . ' (' . $event->getArgument('step') . ')', ['app' => 'updater']);
break;
case '\OC\Repair::advance':
$desc = $event->getArgument(1);
$desc = $event->getArgument('desc');
if (empty($desc)) {
$desc = '';
}
$log->info('\OC\Repair::advance: ' . $desc . ' (' . $event->getArgument(0) . ')', ['app' => 'updater']);
$log->info('\OC\Repair::advance: ' . $desc . ' (' . $event->getArgument('step') . ')', ['app' => 'updater']);

break;
case '\OC\Repair::finishProgress':
$log->info('\OC\Repair::finishProgress', ['app' => 'updater']);
break;
case '\OC\Repair::step':
$log->info('\OC\Repair::step: Repair step: ' . $event->getArgument(0), ['app' => 'updater']);
$log->info('\OC\Repair::step: Repair step: ' . $event->getArgument('step'), ['app' => 'updater']);
break;
case '\OC\Repair::info':
$log->info('\OC\Repair::info: Repair info: ' . $event->getArgument(0), ['app' => 'updater']);
$log->info('\OC\Repair::info: Repair info: ' . $event->getArgument('message'), ['app' => 'updater']);
break;
case '\OC\Repair::warning':
$log->warning('\OC\Repair::warning: Repair warning: ' . $event->getArgument(0), ['app' => 'updater']);
$log->warning('\OC\Repair::warning: Repair warning: ' . $event->getArgument('message'), ['app' => 'updater']);
break;
case '\OC\Repair::error':
$log->error('\OC\Repair::error: Repair error: ' . $event->getArgument(0), ['app' => 'updater']);
$log->error('\OC\Repair::error: Repair error: ' . $event->getArgument('message'), ['app' => 'updater']);
break;
}
};
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 @@ -1055,7 +1055,7 @@ public static function executeRepairSteps(string $appId, array $steps) {
try {
$r->addStep($step);
} catch (Exception $ex) {
$r->emit('\OC\Repair', 'error', [$ex->getMessage()]);
$r->emit('\OC\Repair', 'error', ['message' => $ex->getMessage()]);
\OC::$server->getLogger()->logException($ex);
}
}
Expand Down