]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #2306 from wallabag/redis-rabbit-check
authorThomas Citharel <tcit@tcit.fr>
Sun, 25 Sep 2016 09:36:59 +0000 (11:36 +0200)
committerGitHub <noreply@github.com>
Sun, 25 Sep 2016 09:36:59 +0000 (11:36 +0200)
Some checks about Redis & RabbitMQ

19 files changed:
phpunit.xml.dist
src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
src/Wallabag/ImportBundle/Controller/ImportController.php
src/Wallabag/ImportBundle/Resources/views/Import/check_queue.html.twig
tests/Wallabag/CoreBundle/WallabagCoreTestCase.php
tests/Wallabag/ImportBundle/Controller/PocketControllerTest.php
tests/Wallabag/ImportBundle/Controller/ReadabilityControllerTest.php
tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php

index 38880908022eb921527da71c842377db5ef12997..3216b6ffb40818fd4645cc2a15b8ceff68b21920 100644 (file)
@@ -16,6 +16,7 @@
     <php>
         <ini name="error_reporting" value="-1" />
         <server name="KERNEL_DIR" value="app/" />
+        <env name="SYMFONY_DEPRECATIONS_HELPER" value="weak" />
     </php>
 
     <filter>
index 9f051edbd66bb52b514ef6045b81cb4ff0a6bfdb..c6fcb355f70480279b6d79b8af9487031768ad98 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             # failed_on_file: 'Error while processing import. Please verify your import file.'
             # summary: 'Import summary: %imported% imported, %skipped% already saved.'
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             # client_created: 'New client created.'
index cbfacd55386510289a4a9cea255ebaf1d4c5eac3..c0e82b59b6533becd8aaafe2d730d404dddc4da5 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.'
             summary: 'Import-Zusammenfassung: %imported% importiert, %skipped% bereits gespeichert.'
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             client_created: 'Neuer Client erstellt.'
index 21e2405ca9395e92eccba928508967043d657306..6f262209af0f4f58f11d6406b3c0f24d9bc8fa93 100644 (file)
@@ -434,6 +434,9 @@ flashes:
             failed_on_file: 'Error while processing import. Please verify your import file.'
             summary: 'Import summary: %imported% imported, %skipped% already saved.'
             summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             client_created: 'New client %name% created.'
index 43f376d4b2e2a9db5d4ec9ef4052abfd545380f2..7b9810697f4d9f1cfd6d8374ceaec0d9aa60a4e0 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             failed_on_file: 'Se ocurre un error por procesar importación. Por favor verifique su archivo importado.'
             summary: 'Resúmen importado: %importado% importado, %saltados% ya guardado.'
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             client_created: 'Nuevo cliente creado.'
index 56418ef9e8a6cf9044cdaa82c1810ff99ea69a4e..99fcc3781f2b71518d2dc6c02792cff00eab284b 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             failed_on_file: 'خطا هنگام پردازش پروندهٔ ورودی. آیا پروندهٔ درون‌ریزی شده سالم است؟'
             summary: 'گزارش درون‌ریزی: %imported% وارد شد, %skipped% از قبل ذخیره شده بود.'
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             # client_created: 'New client created.'
index bde21866e9a2914f361be0b7a6879da86be85e60..dd82e7f59b26a737d40df278f75ee9d4784d6cef 100644 (file)
@@ -434,6 +434,9 @@ flashes:
             failed_on_file: "Erreur lors du traitement de l'import. Vérifier votre fichier."
             summary: "Rapport d'import: %imported% importés, %skipped% déjà présent."
             summary_with_queue: "Rapport d'import: %queued% en cours de traitement."
+        error:
+            redis_enabled_not_installed: Redis est activé pour les imports asynchrones mais <u>impossible de s'y connecter</u>. Vérifier la configuration de Redis.
+            rabbit_enabled_not_installed: RabbitMQ est activé pour les imports asynchrones mais <u>impossible de s'y connecter</u>. Vérifier la configuration de RabbitMQ.
     developer:
         notice:
             client_created: 'Nouveau client %name% créé'
index 26bb31ba76da455627a36dd61b50f9b802e6671b..d3ce30c9ef70140e9e7fe2a155126058ade8fddc 100644 (file)
@@ -431,6 +431,9 @@ flashes:
             failed_on_file: 'Errore durante la processazione dei dati da importare. Verifica il tuo file di import.'
             summary: 'Sommario di importazione: %imported% importati, %skipped% già salvati.'
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             client_created: 'Nuovo client creato.'
index c6818449660ea15fd7a756b1d964c74eefbbe4fe..d040daea644b49f0cd2372da9ede7cf40c97e983 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr."
             summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents."
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             client_created: 'Novèl client creat'
index 84f68138e9c97adaac5adc355f3f4d8d8b7ecc6e..a51ed1f2759f4b1b87e3b6eb52b2c3e971642186 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             failed_on_file: 'Błąd podczas ptrzetwarzania pliku. Sprawdż swój importowany plik.'
             summary: 'Podsumowanie importu: %imported% zaimportowane, %skipped% już zapisane.'
             summary_with_queue: 'Podsumowanie importu: %queued% zakolejkowane.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             client_created: 'Nowy klient utworzony.'
index 3d22e29d34b3ae42095024557c473d8bc84686dd..de21f0b35b4a9f1f7eb66d337872ac2b23dadc36 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             # failed_on_file: 'Error while processing import. Please verify your import file.'
             # summary: 'Import summary: %imported% imported, %skipped% already saved.'
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             # client_created: 'New client created.'
index 5099b002c29a1a3e635d124d7faf424abd41ab93..d4b7a7a2218ea1a83583c6d64d5310c6f606bff7 100644 (file)
@@ -432,6 +432,9 @@ flashes:
             # failed_on_file: 'Error while processing import. Please verify your import file.'
             # summary: 'Import summary: %imported% imported, %skipped% already saved.'
             # summary_with_queue: 'Import summary: %queued% queued.'
+        error:
+            # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration.
+            # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration.
     developer:
         notice:
             # client_created: 'New client created.'
index ea4f7d7bb5acc0317367d378b9e441ec623a721e..36a2a399d12f80bbd10381e1ea799d6ae2d08cc8 100644 (file)
@@ -25,33 +25,41 @@ class ImportController extends Controller
     {
         $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', [
-                'nbRedisMessages' => $nbRedisMessages,
-                'nbRabbitMessages' => $nbRabbitMessages,
-            ]);
+            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');
+            } 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');
+            } catch (\Exception $e) {
+                $redisNotInstalled = true;
+            }
         }
 
         return $this->render('WallabagImportBundle:Import:check_queue.html.twig', [
             'nbRedisMessages' => $nbRedisMessages,
             'nbRabbitMessages' => $nbRabbitMessages,
+            'redisNotInstalled' => $redisNotInstalled,
+            'rabbitNotInstalled' => $rabbitNotInstalled,
         ]);
     }
 
index 7168ea35010aafe865f451c9f92fd5ccd5b5d54c..a263369894cb25d6bb816fa2de6ef1dd514e11f1 100644 (file)
@@ -1,11 +1,23 @@
-{% if nbRedisMessages > 0 %}
+{% if nbRedisMessages is defined and nbRedisMessages > 0 %}
     <script>
         Materialize.toast('Messages in queue: {{ nbRedisMessages }}', 4000);
     </script>
 {% endif %}
 
-{% if nbRabbitMessages > 0 %}
+{% if nbRabbitMessages is defined and nbRabbitMessages > 0 %}
     <script>
         Materialize.toast('Messages in queue: {{ nbRabbitMessages }}', 4000);
     </script>
 {% endif %}
+
+{% if redisNotInstalled is defined and redisNotInstalled  %}
+    <div class="card-panel red darken-1 white-text">
+        {{ 'flashes.import.error.redis_enabled_not_installed'|trans|raw }}
+    </div>
+{% endif %}
+
+{% if rabbitNotInstalled is defined and rabbitNotInstalled  %}
+    <div class="card-panel red darken-1 white-text">
+        {{ 'flashes.import.error.rabbit_enabled_not_installed'|trans|raw }}
+    </div>
+{% endif %}
index c0055888a255eaa44aa88d52f5630ff50e5c6147..75b7ee0bd4a110437cdd226455eea0dda7634304 100644 (file)
@@ -80,4 +80,19 @@ abstract class WallabagCoreTestCase extends WebTestCase
 
         throw new \RuntimeException('No logged in User.');
     }
+
+    /**
+     * Check if Redis is installed.
+     * If not, mark test as skip
+     */
+    protected function checkRedis()
+    {
+        try {
+            $this->client->getContainer()->get('wallabag_core.redis.client')->connect();
+        } catch (\Exception $e) {
+            $this->markTestSkipped(
+              'Redis is not installed/activated'
+            );
+        }
+    }
 }
index 356732610a17d77f8e08d155c4e980f9572fd5d6..7d6a300fb3fbdce2f7091a41f19e0e3fb4d04592 100644 (file)
@@ -34,6 +34,7 @@ class PocketControllerTest extends WallabagCoreTestCase
 
     public function testImportPocketWithRedisEnabled()
     {
+        $this->checkRedis();
         $this->logInAs('admin');
         $client = $this->getClient();
 
index 7b88d8917bd8d9ffb6c34a0e441002bf68ed117a..87ecb9d33cfa929620650f78582db2baf95df7bb 100644 (file)
@@ -54,6 +54,7 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
 
     public function testImportReadabilityWithRedisEnabled()
     {
+        $this->checkRedis();
         $this->logInAs('admin');
         $client = $this->getClient();
 
index 98e85d4539c75b2662a57e3aec8dabcb3db6c6a9..3497c4b825407cfaf1fffaca8b8a0520f0e2db7c 100644 (file)
@@ -54,6 +54,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
 
     public function testImportWallabagWithRedisEnabled()
     {
+        $this->checkRedis();
         $this->logInAs('admin');
         $client = $this->getClient();
 
index 74d61f9a255f49d3521ffd8a56dc7a4b4779d060..27d2d52b83f6c00073cde918ecbde62a7dd2420d 100644 (file)
@@ -54,6 +54,7 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
 
     public function testImportWallabagWithRedisEnabled()
     {
+        $this->checkRedis();
         $this->logInAs('admin');
         $client = $this->getClient();