Преглед на файлове

Changed method that get cache to check before if redis is working, and modified the search for stats onus and applied command to check the serial pon from a ONU

Jean Sumara преди 5 години
родител
ревизия
1b7af24757
променени са 1 файла, в които са добавени 17 реда и са изтрити 4 реда
  1. 17 4
      src/StatsBundle/Controller/StatsController.php

+ 17 - 4
src/StatsBundle/Controller/StatsController.php

@@ -1785,7 +1785,19 @@ class StatsController extends Controller
         $cers = $snrs = $utilizations = $errors = $series = $targets = array();
 
         $key = "olt_scan_card_{$prefix}";
-        $dataCached = $redis->get($key);
+        $getCache = false;
+
+        try{
+            if($redis->ping() == "PONG"){
+                $getCache = true;
+            }
+        }catch (\Exception $e){
+            $getCache = false;
+        }
+
+        if($getCache){
+            $dataCached = $redis->get($key);
+        }
 
         /* % cpu & memory cards */
         (isset($dataCached['cpu'])) ? $cpu = $dataCached['cpu'] : $cpu = array();
@@ -1908,20 +1920,21 @@ class StatsController extends Controller
 
     public function onuSignal($oltDeviceId, $serverId)
     {
-
         $em = $this->get('doctrine')->getManager();
         $onus = $em->getRepository('StatsBundle:Onu')->createQueryBuilder('o')
             ->select('o.txPower', 'o.rxPowerOlt', 'o.ponSerialNumber')
             ->where('o.deviceServer = :serverId')
             ->andWhere('o.oltDeviceId = :oltDeviceId')
+            ->andWhere('o.txPower IS NOT NULL')
+            ->andWhere('o.rxPowerOlt IS NOT NULL')
             ->setParameter('serverId', $serverId)
             ->setParameter('oltDeviceId', $oltDeviceId)
             ->getQuery()->getResult();
 
-        $colors = $signals = array();
+        $signals = array();
 
         foreach ($onus as $data) {
-            if ($data['txPower'] == null || $data['rxPowerOlt'] == null) continue;
+            if (preg_match("/^[a-zA-Z0-9]+$/", $data['ponSerialNumber']) != 1) continue;
 
             $color = $this->getOnuRxColor($data['rxPowerOlt']);