X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FImportBundle%2FController%2FImportController.php;h=7e4fd17442f6235b27f9a0f651002f28f0f525e6;hb=494b47f29915cc881cfeba14c16b728d3adcb85a;hp=d670746cb6b1792a89bf0d05827b7b5ad7257206;hpb=e01a3c98d6908e95121b5ade0161f40af1b05ca6;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/ImportBundle/Controller/ImportController.php b/src/Wallabag/ImportBundle/Controller/ImportController.php index d670746c..7e4fd174 100644 --- a/src/Wallabag/ImportBundle/Controller/ImportController.php +++ b/src/Wallabag/ImportBundle/Controller/ImportController.php @@ -2,8 +2,8 @@ namespace Wallabag\ImportBundle\Controller; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; +use Symfony\Bundle\FrameworkBundle\Controller\Controller; class ImportController extends Controller { @@ -19,31 +19,57 @@ class ImportController extends Controller /** * Display how many messages are queue (both in Redis and RabbitMQ). + * Only for admins. */ public function checkQueueAction() { $nbRedisMessages = null; $nbRabbitMessages = null; + $redisNotInstalled = false; + $rabbitNotInstalled = false; + + if (!$this->get('security.authorization_checker')->isGranted('ROLE_SUPER_ADMIN')) { + return $this->render('WallabagImportBundle:Import:check_queue.html.twig'); + } if ($this->get('craue_config')->get('import_with_rabbitmq')) { - $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') - + $this->getTotalMessageInRabbitQueue('readability') - + $this->getTotalMessageInRabbitQueue('wallabag_v1') - + $this->getTotalMessageInRabbitQueue('wallabag_v2') - ; + // in case rabbit is activated but not installed + try { + $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') + + $this->getTotalMessageInRabbitQueue('readability') + + $this->getTotalMessageInRabbitQueue('wallabag_v1') + + $this->getTotalMessageInRabbitQueue('wallabag_v2') + + $this->getTotalMessageInRabbitQueue('firefox') + + $this->getTotalMessageInRabbitQueue('chrome') + + $this->getTotalMessageInRabbitQueue('instapaper') + + $this->getTotalMessageInRabbitQueue('pinboard') + ; + } catch (\Exception $e) { + $rabbitNotInstalled = true; + } } elseif ($this->get('craue_config')->get('import_with_redis')) { $redis = $this->get('wallabag_core.redis.client'); - $nbRedisMessages = $redis->llen('wallabag.import.pocket') - + $redis->llen('wallabag.import.readability') - + $redis->llen('wallabag.import.wallabag_v1') - + $redis->llen('wallabag.import.wallabag_v2') - ; + try { + $nbRedisMessages = $redis->llen('wallabag.import.pocket') + + $redis->llen('wallabag.import.readability') + + $redis->llen('wallabag.import.wallabag_v1') + + $redis->llen('wallabag.import.wallabag_v2') + + $redis->llen('wallabag.import.firefox') + + $redis->llen('wallabag.import.chrome') + + $redis->llen('wallabag.import.instapaper') + + $redis->llen('wallabag.import.pinboard') + ; + } catch (\Exception $e) { + $redisNotInstalled = true; + } } return $this->render('WallabagImportBundle:Import:check_queue.html.twig', [ 'nbRedisMessages' => $nbRedisMessages, 'nbRabbitMessages' => $nbRabbitMessages, + 'redisNotInstalled' => $redisNotInstalled, + 'rabbitNotInstalled' => $rabbitNotInstalled, ]); } @@ -60,9 +86,9 @@ class ImportController extends Controller private function getTotalMessageInRabbitQueue($importService) { $message = $this - ->get('old_sound_rabbit_mq.import_'.$importService.'_consumer') + ->get('old_sound_rabbit_mq.import_' . $importService . '_consumer') ->getChannel() - ->basic_get('wallabag.import.'.$importService); + ->basic_get('wallabag.import.' . $importService); if (null === $message) { return 0;