source: admin/WebConsole/principal/sondeo.php @ f6045a5

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since f6045a5 was ba3c59d, checked in by ramon <ramongomez@…>, 9 years ago

#739: Corregir errata y establecer timeout para peticiones REST en sondeo de estado.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@4839 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 4.2 KB
Line 
1<?php
2// *************************************************************************************************************************************************
3// Aplicación WEB: ogAdmWebCon
4// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
5// Fecha Creación: Año 2009-2010
6// Fecha Última modificación: Agosto-2010
7// Nombre del fichero: sondeo.php
8// Descripción :
9//              Consulta el estado de los ordenadores
10// *************************************************************************************************************************************************
11        include_once("../includes/ctrlacc.php");
12        include_once("../includes/restfunctions.php");
13        include_once("../clases/SockHidra.php");
14        include_once("../clases/AdoPhp.php");
15        include_once("../includes/constantes.php");
16        include_once("../includes/comunes.php");
17        include_once("../includes/CreaComando.php");
18        include_once("../includes/RecopilaIpesMacs.php");
19        //________________________________________________________________________________________________________
20        $ambito=0;
21        $idambito=0;
22        $sw=0;  // Swich para conmutar entre sondeo a clientes o sólo consulta a la tabla de sockets
23
24        if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
25        if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
26        if (isset($_POST["sw"])) $sw=$_POST["sw"];
27        //________________________________________________________________________________________________________
28        $cmd=CreaComando($cadenaconexion);
29        if (!$cmd)
30                Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
31        //________________________________________________________________________________________________________
32        $funcion="Sondeo"; // Nombre de la función que procesa la petición
33        if($sw==2)
34                $funcion="respuestaSondeo"; // Nombre de la función que procesa la petición
35        $atributos="";
36        $aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
37        $acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
38        //________________________________________________________________________________________________________
39        // Ámbito de aplicación de la petición
40        //________________________________________________________________________________________________________
41        $cadenaid="";
42        $cadenaip="";
43        $cadenamac="";
44        RecopilaIpesMacs($cmd,$ambito,$idambito); // Ámbito de aplicación
45        $aplicacion="ido=".$cadenaid.chr(13)."iph=".$cadenaip.chr(13);
46        // Reset status.
47        echo "$cadenaip;";
48        //________________________________________________________________________________________________________
49        // Envio al servidor de la petición
50        //________________________________________________________________________________________________________
51        $resul=false;
52        $trama="";
53        $shidra=new SockHidra($servidorhidra,$hidraport);
54        if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
55                $parametros="nfn=".$funcion.chr(13);
56                $parametros.=$aplicacion;
57                $parametros.=$atributos;
58                $parametros.=$acciones;
59                $resul=$shidra->envia_peticion($parametros);
60                if($resul)
61                        $trama=$shidra->recibe_respuesta();
62                $shidra->desconectar();
63        }
64        if($resul){
65                $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
66                $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
67                $ValorParametros=extrae_parametros($parametros,chr(13),'=');
68                if (isset ($ValorParametros["tso"])) {
69                        $trama_notificacion=$ValorParametros["tso"];
70                        echo $trama_notificacion; // Devuelve respuesta
71                }
72        }
73
74        // Send REST requests to new OGAgent clients.
75        $urls = array();
76        // Compose array of REST URLs.
77        foreach (explode (';', $cadenaip) as $ip) {
78                $urls[$ip] = "https://$ip:8000/opengnsys/status";
79        }
80        // Launch concurrent requests.
81        $responses = multiRequest($urls, array(CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false));
82        // Process responses array (IP as array index).
83        foreach ($responses as $ip => $data) {
84                if (isset($data)) {
85                        $status = json_decode($data);
86                        // If user session is oppened, then append "S" to client status.
87                        if (isset($status->status) and isset($status->loggedin)) {
88                                // Output format: IP1/Status1;...
89                                echo "$ip/".$status->status.($status->loggedin?"S;":";");
90                        }
91                }
92        }
93?>
94
Note: See TracBrowser for help on using the repository browser.