Usuario:ManuelRomero/proyecto/proyectoIternova/codigo

De WikiEducator
Saltar a: navegación, buscar



Casting los objetos a arrays

Para evitar problemas si una acción me retorna un objeto o un array, convierto siempre todo a array

  • Metodo

Controller_Utils::cast_object_to_array($obj)

  • Muy bueno que lo hace de forma recursiva.

Estructura de datos

Servidor nagios
["_id"] =>    string(24) "5762657febcfa667008b456b"
["url"] =>    string(17) "http://172.17.0.3"
["host"] =>    string(12) "e490a9185700"
["usuario"] =>    string(5) "admin"
["password"] =>    string(5) "admin"
["descripcion"] =>    string(35) "Servidor nagios de prueba en docker"
Host
 ["_id"] =>    string(24) "57627b58ebcfa6780f8b4569"
   ["host"] =>    string(10) "172.17.0.3"
   ["host_name"] =>    string(12) "e490a9185700"
   ["servicios"] =>    array(5) {
     [0] =>      int(1)
     [1] =>      int(2)
     [2] =>      int(3)
     [3] =>      int(4)
     [4] =>      int(5)
   }
   ["nagios_id"] =>    string(24) "5762657febcfa667008b456b"
   ["nagios_name"] =>    string(12) "e490a9185700"
   ["descripcion"] =>    string(51) "El equipo donde tengo nagios que quiero monitorizar"
servicios
   const SERVICIO_UNDEFINED =-1; //Servicio no definido 
   const SERVICIO_SSH = 1; //SSH
   const SERVICIO_HTTP = 2; //Servicio http
   const SERVICIO_MYSQL = 3; //Servicio uso mysql
   const SERVICIO_DISCOS = 4; // Current_load 
   const SERVICIO_CPU= 5; //Servicio uso de cpu
   const SERVICIO_PING=6;  //PING 
Tradución de los servicios
monitorizacion.servicios.ssh=Servicio de uso de ssh
monitorizacion.servicios.http=Servicio de uso web con http
monitorizacion.servicios.mysql=Servicio de uso de mysql
monitorizacion.servicios.discos=Serivicio de uso de discos
monitorizacion.servicios.cpu=Servicio de uso de cpu
monitorizacion.servicios.ping=Servicio de ping
monitorizacion.service.not_defined =Servicio no definido
monitorizacion.descripcion=Descripción  


Pendientes

  • mirar crondaemon Mirar en la wiki añadida en la clase de stats

  • Webbin *Webbinario que me pasa para mirar ??????
  • MongoDB + time-series:

- https://www.mongodb.com/presentations/webinar-mongodb-time-series-data-setting-stage-sensor-management - https://www.mongodb.com/presentations/mongodb-time-series-data-part-2-analyzing-time-series-data-using-aggregation-framework


9/10/2016
  • Errores varios al visualizar las monitorizaciones
Estaba $obj->nombre y no es un campo de la colección de monitorizacion (host host_name nagios nagios_name, descripcion, servicios) 



  • Camibio en el directorio stats' del módulo de monitorizacion el nombre de los siguientes ficheros

smarapps_ **** por monitorizacion_*****

  • Usado para hacer estadísticas
  • Me quedo modificando lo de los servicios
  • A partir de intentar borrar una monitorización, he añadido el método get_servicios en controller.
  • Esto me ha provocado una serio de errores, volver a lo de monitorizar host


3/5/2016

Fichero Monitoriazacion_Constants
  1. Crear una constante por servicio a monitorizar
  2. Añadir un método que retorne un array con el id del servicio seleccionado y el texto asociado
Menú
  1. Que aparezcan un checkbox con los servicios (p.e.)
SSh
HTTp
Mysql
Discos
cpu
;En es_ES.lang
 monitorizacion.servicios=Servicios a monitorizar;
 
;En monitorizacion:constats.php
 
/** Carga un array con los servicios que los diferentes servidores de nagios podrán monitorizar
* @return array asociativo con la lista de servicios
*/
public static function servicios(){
        $servicios =["http"=>"Tráfico http","cpu"=>"Uso de cpu","Mysql"=>"Uso de base de datos Mysqlt"];
        return $servicios;
}
 
;en monitoriazación_view.php método static edit
/*MRM aquí crearemos los checkbox para los servicios*/
 $servicios = Monitorizacion_Constants::servicios();
 $error[] = Controller_Forms::field(array('field_type' => 'checkbox_multiple',
                   'field_id' => 'servicio',
                   'field_title' => Idiomas_Controller::translate('monitorizacion.servicio', $idioma, $langfile),
                   'array_keys'=> array_keys($servicios),
                   'array_values'=>array_values($servicios),
                   'array_titles'=>array_values($servicios)
                  //    'array_checked'=>$array_checked, 'first' => $first ) 
             ));
/*MRM_END*/
Opción edit del controller llama al metodo edit
  • Usa el campo first para ver si hay o no datos
  1. Si está a false visualiza el formulario para que insertes datos
  2. Si no y no hay errores te carga el campo en el registro de la base de datos de mongo
  3. Si hay errores te muestra en el campo del formulario correspondiente para mostrarte el error