Selaa lähdekoodia

Config para las Keys AMQP. Mejoras respecto a las rutas que utiliza el stats para acceder a datos de geoserver o ftth.

Maxi Schvindt 7 vuotta sitten
vanhempi
commit
2e8050e4e9

+ 1 - 1
app/config/parameters.yml.docker

@@ -46,7 +46,7 @@ parameters:
     url_crontab: http://supervisord/cron.php?wsdl
     env(HOST_BASE): base
     env(HOST_AMQP): amqp
-    env(AMQP_KEY): ""
+    env(AMQP_KEY): stats
 
     cookie_domain_client: '%env(CLIENT)%'
     cookie_domain: '%cookie_domain_client%.flowdat.com'

+ 18 - 16
src/StatsBundle/Admin/OnuAdmin.php

@@ -132,22 +132,24 @@ class OnuAdmin extends BaseAdmin
             if(isset($urls['url_ftth'])) {
                 $deviceId = $object->getDeviceId();
                 if(is_null($deviceId)) {
-                    $apiOnu = "{$urls['url_ftth']}/api/onus.json";
-                    $oltDeviceId = $object->getOltDeviceId();
-                    $tenancyId = $object->getTenancyId();
-                    $ponSerialNumber = $object->getPonSerialNumber();
-                    $filters = array("tenancyId" => $tenancyId, "olt" => $oltDeviceId, "ponSerialNumber" => $ponSerialNumber);
-                    $onu = $this->get('webservice')->getData($apiOnu, $filters);
-                    if(empty($onu)) {
-                        $translator = $this->get('translator');
-                        $flashbag = $this->get('session')->getFlashBag();
-                        $flashbag->add("error", $translator->trans("msg_no_registered_in_ftth",array(),"StatsBundle"));
-                        $url = "{$urls['url_ftth']}/admin/ftth/onu/create?olt={$object->getOltDeviceId()}&psn={$object->getPonSerialNumber()}";
-                        $actions['add_in_ftth'] = array('template' => 'StatsBundle:Onu:ftth_button_add.html.twig');
-                    } elseif(isset($onu[0]['id'])) {
-                        $deviceId = $onu[0]['id'];
-                        $url = "{$urls['url_ftth']}/admin/ftth/onu/{$deviceId}/show";
-                        $actions['show_in_ftth'] = array('template' => 'StatsBundle:Onu:ftth_button.html.twig');
+                    if(isset($urls['api_ftth'])) {
+                        $apiOnu = "{$urls['api_ftth']}/api/onus.json"; //http://ftth:8000/api/onus.json
+                        $oltDeviceId = $object->getOltDeviceId();
+                        $tenancyId = $object->getTenancyId();
+                        $ponSerialNumber = $object->getPonSerialNumber();
+                        $filters = array("tenancyId" => $tenancyId, "olt" => $oltDeviceId, "ponSerialNumber" => $ponSerialNumber);
+                        $onu = json_decode($this->get('webservice')->makeGetRequest($apiOnu, "GET", $filters),true);
+                        if(empty($onu)) {
+                            $translator = $this->get('translator');
+                            $flashbag = $this->get('session')->getFlashBag();
+                            $flashbag->add("error", $translator->trans("msg_no_registered_in_ftth",array(),"StatsBundle"));
+                            $url = "{$urls['url_ftth']}/admin/ftth/onu/create?olt={$object->getOltDeviceId()}&psn={$object->getPonSerialNumber()}";
+                            $actions['add_in_ftth'] = array('template' => 'StatsBundle:Onu:ftth_button_add.html.twig');
+                        } elseif(isset($onu[0]['id'])) {
+                            $deviceId = $onu[0]['id'];
+                            $url = "{$urls['url_ftth']}/admin/ftth/onu/{$deviceId}/show";
+                            $actions['show_in_ftth'] = array('template' => 'StatsBundle:Onu:ftth_button.html.twig');
+                        }
                     }
                 } else {
                     $url = "{$urls['url_ftth']}/admin/ftth/onu/{$deviceId}/show";

+ 2 - 1
src/StatsBundle/Command/StatsGeoPonPortCommand.php

@@ -54,7 +54,7 @@ class StatsGeoPonPortCommand extends BaseCommand
             $tenancyId = $deviceOlt->getTenancyId();
 
             $ponPorts = $doctrine->getRepository('\StatsBundle\Entity\PonPort')->findBy(array('deviceServer' => $oltServerId, 'oltDeviceId' => $oltDeviceId));
-            
+
             foreach($ponPorts as $ponPort) {
 
                 //$ponIndex = str_replace("/","_",$ponPort->getPonPort());
@@ -78,6 +78,7 @@ class StatsGeoPonPortCommand extends BaseCommand
                         ->getQuery()
                         ->getResult();
 
+                
                 foreach($onus as $onu) {
 
                     $sn = $onu->getPonSerialNumber();

+ 13 - 11
src/StatsBundle/Command/StatsOnuCommand.php

@@ -97,17 +97,19 @@ class StatsOnuCommand extends BaseCommand
             $data[] = "(".implode(",",$row).")".PHP_EOL;
         }
 
-
-        $conn = $doctrine->getConnection();
-        $sql = "DELETE FROM `onu` WHERE device_server_id = {$deviceServerId} AND olt_device_id = {$oltDeviceId};";
-        $conn->query($sql);
-        $conn->close();
-
-        $conn = $doctrine->getConnection();
-        $sql = "INSERT LOW_PRIORITY IGNORE INTO `onu` (`device_server_id`,`device_id`,`olt_device_id`,`tenancy_id`,`ip`,`mac`,`serial_number`,`pon_serial_number`,`pon_port`,`tx_power`,`rx_power`,`temperature`,`voltage`,`status`,`uptime`,`updated`,`lat`,`lng`) VALUES ".  implode(",", $data).";";
-        $conn->query($sql);
-        $conn->close();
-        
+        if($data) {
+            $conn = $doctrine->getConnection();
+            $sql = "DELETE FROM `onu` WHERE device_server_id = {$deviceServerId} AND olt_device_id = {$oltDeviceId};";
+            $conn->query($sql);
+            $conn->close();
+            
+            $conn = $doctrine->getConnection();
+            $sql = "INSERT LOW_PRIORITY IGNORE INTO `onu` (`device_server_id`,`device_id`,`olt_device_id`,`tenancy_id`,`ip`,`mac`,`serial_number`,`pon_serial_number`,`pon_port`,`tx_power`,`rx_power`,`temperature`,`voltage`,`status`,`uptime`,`updated`,`lat`,`lng`) VALUES ".  implode(",", $data).";";
+            $conn->query($sql);
+            $conn->close();
+        } else {
+            print_r("No se encuentran ONUs cargadas en Redis, comprobar onu:scan y onu:stats".PHP_EOL);
+        }
 
     }
 }