Bladeren bron

Se agrega vista detallada para interfaces.

Maxi Schvindt 7 jaren geleden
bovenliggende
commit
fc65be9e9e

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

@@ -72,7 +72,7 @@ class CmtsInterfaceAdmin extends BaseAdmin
             ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_cmts.html.twig'))
             ->add('index')
             ->addIdentifier('name')
-            ->add('jsonExtraData', 'string', array('template' => 'StatsBundle:CmtsInterface:interface_field_extra_data.html.twig'))
+            ->add('jsonExtraData', 'string', array('template' => 'StatsBundle:CmtsInterface:field_extra_data.html.twig'))
             ->add('signal','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_signal.html.twig'))
             ->add('microreflection','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_microreflection.html.twig'))
             ->add('utilization','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_utilization.html.twig'))
@@ -96,12 +96,12 @@ class CmtsInterfaceAdmin extends BaseAdmin
      */
     protected function configureShowFields(ShowMapper $showMapper)
     {
-        /* $ponPort = $this->getSubject();
-        $oltDeviceId = $ponPort->getOltDeviceId();
-        $deviceServer = $ponPort->getDeviceServer();
+        $interface = $this->getSubject();
+        $cmtsDeviceId = $interface->getCmtsDeviceId();
+        $deviceServer = $interface->getDeviceServer();
         
         $em = $this->get("doctrine.orm.entity_manager");
-        $q = $em->getRepository("StatsBundle:Onu")->createQueryBuilder('o');
+        /* $q = $em->getRepository("StatsBundle:Cablemodem")->createQueryBuilder('o');
         $onus = $q->where($q->expr()->like('o.ponPort', ':ponPort'))
                 ->andWhere('o.oltDeviceId = :oltDeviceId')
                 ->andWhere('o.deviceServer = :deviceServer')
@@ -131,23 +131,21 @@ class CmtsInterfaceAdmin extends BaseAdmin
         
         ksort($_onus);
 
-        $this->parameters = array('onus' => $_onus);
+        $this->parameters = array('onus' => $_onus); */
 
-        $olt = $em->getRepository("StatsBundle:device")->findOneBy(array('deviceId' => $oltDeviceId, 'deviceServer'=>$deviceServer, 'deviceType' => 'FTTHBundle\Entity\OLT'));
-        if($olt) {
-            $data = $olt->jsonExtraData();
-            $oltName = null;
-            if(isset($data['name'])) $oltName = $data['name'];
+        $cmts = $em->getRepository("StatsBundle:device")->findOneBy(array('deviceId' => $cmtsDeviceId, 'deviceServer'=>$deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
+        if($cmts) {
+            $data = $cmts->jsonExtraData();
+            $cmtsName = null;
+            if(isset($data['name'])) $cmtsName = $data['name'];
         }
 
         $showMapper
-        ->add('oltDeviceId', 'string', array('template' => 'StatsBundle:Onu:base_show_field_olt.html.twig','oltName' => $oltName))
-        ->add('ponPort')
-        ->add('txPower', 'string', array('template' => 'StatsBundle:Onu:base_show_field_tx.html.twig'))
-        ->add('voltage', 'string', array('template' => 'StatsBundle:Onu:base_show_field_voltage.html.twig'))
-        ->add('temperature', 'string', array('template' => 'StatsBundle:Onu:base_show_field_temperature.html.twig'))
-        ->add('biasCurrent')
-        ; */
+        ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_show_field_cmts.html.twig','cmtsName' => $cmtsName))
+        ->add('index')
+        ->add('name')
+        ->add('jsonExtraData', 'string', array('template' => 'StatsBundle:CmtsInterface:field_extra_data.html.twig', 'extend' => 'base_show_field.html.twig'))
+        ;
     }
 
     /**

+ 37 - 0
src/StatsBundle/Controller/StatsController.php

@@ -406,4 +406,41 @@ class StatsController extends Controller
         ));
     }
 
+    /**
+     * @Route("/admin/stats/ponport/grafana", name="grafana_ponport")
+     * 
+     * @return string
+     */
+    public function grafanaInterfaceAction(Request $request)
+    {
+        $grafana_url = $this->getParameter('grafana_url');
+       
+        $em = $this->get("doctrine.orm.entity_manager");
+        $interfaceId = $request->get('id');
+
+        
+        $interface = $em->getRepository("StatsBundle:CmtsInterface")->findOneById($interfaceId);
+        $cmtsDeviceId = $interface->getCmtsDeviceId();
+        $deviceServerId = $interface->getDeviceServer()->getId();
+        $index = $interface->getIndex();
+
+        
+        $panelIds = array(1, 2, 3);
+        
+        foreach ($panelIds as $panelId) {
+            $urls[] = "cmts-interface?orgId=1&var-cmts={$cmtsDeviceId}&var-server={$deviceServerId}&var-interface={$index}&panelId={$panelId}&theme=light";
+        }
+
+        if ($request->isMethod('GET')) {
+            return $this->render('StatsBundle:Stats:ponport_graph.html.twig', array(
+                'grafana_url' => $grafana_url,
+                'urls' => $urls
+            ));
+        }
+
+        return new JsonResponse(array(
+            'urls' => $urls,
+        ));
+    }
+
 }

+ 1 - 1
src/StatsBundle/Resources/config/services.yml

@@ -59,4 +59,4 @@ services:
             - { name: sonata.admin, manager_type: orm, group: List, label: Interface, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
         calls:    
             - [setTranslationDomain, [StatsBundle]]
-            - [setTemplate, ['list','StatsBundle:PonPort:base_list.html.twig']]
+            - [setTemplate, ['show','StatsBundle:CmtsInterface:base_show.html.twig']]

+ 10 - 0
src/StatsBundle/Resources/views/CmtsInterface/base_show.html.twig

@@ -0,0 +1,10 @@
+{% extends 'SonataAdminBundle:CRUD:base_show.html.twig' %}
+
+{% block show %}
+    {{ parent() }}
+    
+    {% if object.getDeviceServer().getSaveHistoric() == 1 %}
+    {{ render(controller('StatsBundle:Stats:grafanaInterface', { 'id':object.getId() })) }}
+    {% endif %}
+    
+{% endblock %}

+ 5 - 0
src/StatsBundle/Resources/views/CmtsInterface/base_show_field_cmts.html.twig

@@ -0,0 +1,5 @@
+{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
+
+{% block field %}
+    {{field_description.options.cmtsName}}
+{% endblock %}

+ 40 - 0
src/StatsBundle/Resources/views/CmtsInterface/field_extra_data.html.twig

@@ -0,0 +1,40 @@
+{% set extend = 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
+{% if field_description.options.extend is defined %}
+    {% set extend = 'SonataAdminBundle:CRUD:' ~ field_description.options.extend %}
+{% endif %}
+
+{% extends extend %}
+
+{% block field %}
+
+    {% if value.tr is defined and value.tr %}
+        <span class="label label-success">TR</span>
+    {% else %}
+        <span class="label label-danger">TR</span>
+    {% endif %}
+    
+    {% if value.rf is defined and value.rf %}
+        <span class="label label-success">RF</span>
+    {% else %}
+        <span class="label label-danger">RF</span>
+    {% endif %}
+    
+    {% if value.cm is defined and value.cm %}
+        <span class="label label-success">CM</span>
+    {% else %}
+        <span class="label label-danger">CM</span>
+    {% endif %}
+    
+    {% if value.upstream is defined and value.upstream %}
+        <span class="label label-success">Upstream</span>
+    {% else %}
+        <span class="label label-danger">Upstream</span>
+    {% endif %}
+    
+    {% if value.downstream is defined and value.downstream %}
+        <span class="label label-success">Downstream</span>
+    {% else %}
+        <span class="label label-danger">Downstream</span>
+    {% endif %}
+    
+{% endblock %}