From 8c9fcb2861cc222c16ab9e17b0167e125c6358fa Mon Sep 17 00:00:00 2001 From: ramon Date: Thu, 17 Mar 2016 12:15:10 +0000 Subject: #718: Integrar sondeo de estados de antios servicios de cliente y de nuevo OGAdent. git-svn-id: https://opengnsys.es/svn/branches/version1.1@4835 a21b9725-9963-47de-94b9-378ad31fedc9 --- .../comandos/includes/FiltradoAmbito.php | 66 +++++++++------------ admin/WebConsole/includes/restfunctions.php | 67 ++++++++++++++++++++++ admin/WebConsole/jscripts/aula.js | 38 ++++-------- admin/WebConsole/principal/aula.php | 8 +-- admin/WebConsole/principal/sondeo.php | 23 ++++++++ 5 files changed, 132 insertions(+), 70 deletions(-) create mode 100644 admin/WebConsole/includes/restfunctions.php diff --git a/admin/WebConsole/comandos/includes/FiltradoAmbito.php b/admin/WebConsole/comandos/includes/FiltradoAmbito.php index 62b12952..abc42852 100644 --- a/admin/WebConsole/comandos/includes/FiltradoAmbito.php +++ b/admin/WebConsole/comandos/includes/FiltradoAmbito.php @@ -193,7 +193,7 @@ function RecorriendoOrdenadores($cmd) $ip=$rs->campos["ip"]; $cadenaip.=$ip.";"; $htmlCode.=''; - $htmlCode.=' '; + $htmlCode.=' '; $htmlCode.=' '; $htmlCode.=' '; $htmlCode.=' '; @@ -276,45 +276,31 @@ function soIMG(so) { var MimgOrdenador=""; switch(so){ - case 'INI': - MimgOrdenador="ordenador_INI.gif"; // Cliente ocupado - break; - case 'BSY': - MimgOrdenador="ordenador_BSY.gif"; // Cliente ocupado - break; - case 'OPG': - MimgOrdenador="ordenador_OPG.gif"; // Cliente Rembo - break; - case 'WS2': - MimgOrdenador="ordenador_WS2.gif"; // Windows Server 2003 - break; - case 'W2K': - MimgOrdenador="ordenador_W2K.gif"; // Windows 2000 - break; - case 'WXP': - MimgOrdenador="ordenador_WXP.gif"; // Windows XP - break; - case 'WNT': - MimgOrdenador="ordenador_WNT.gif"; // Windows NT - break; - case 'W95': - MimgOrdenador="ordenador_W95.gif"; // Windows 95 - break; - case 'W98': - MimgOrdenador="ordenador_W98.gif"; // Windows 98 - break; - case 'WML': - MimgOrdenador="ordenador_WML.gif"; // Windows Millenium - break; - case 'WIN': - MimgOrdenador="ordenador_WXP.gif"; // Windows - break; - case 'LNX': - MimgOrdenador="ordenador_LNX.gif"; // Linux - break; - default: - MimgOrdenador="ordenador_OFF.gif"; // Apagado - break; + case 'INI': + MimgOrdenador="ordenador_INI.png"; // Cliente iniciando + break; + case 'BSY': + MimgOrdenador="ordenador_BSY.png"; // Cliente ocupado + break; + case 'OPG': + MimgOrdenador="ordenador_OPG.png"; // Cliente OpenGnsys + break; + case 'WIN': + case 'WXP': + MimgOrdenador="ordenador_WIN.png"; // Windows + break; + case 'WINS': + MimgOrdenador="ordenador_WINS.png"; // Sesi髇 Windows + break; + case 'LNX': + MimgOrdenador="ordenador_LNX.png"; // Linux + break; + case 'LNXS': + MimgOrdenador="ordenador_LNXS.png"; // Sesi髇 Linux + break; + default: + MimgOrdenador="ordenador_OFF.png"; // Apagado + break; } return(MimgOrdenador); } diff --git a/admin/WebConsole/includes/restfunctions.php b/admin/WebConsole/includes/restfunctions.php new file mode 100644 index 00000000..f3590969 --- /dev/null +++ b/admin/WebConsole/includes/restfunctions.php @@ -0,0 +1,67 @@ + $d) { + + + $curly[$id] = curl_init(); + + $url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d; + curl_setopt($curly[$id], CURLOPT_URL, $url); + curl_setopt($curly[$id], CURLOPT_HEADER, 0); + curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1); + + // post? + if (is_array($d)) { + if (!empty($d['post'])) { + curl_setopt($curly[$id], CURLOPT_POST, 1); + curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']); + } + } + + // extra options? + if (!empty($options)) { + curl_setopt_array($curly[$id], $options); + } + + curl_multi_add_handle($mh, $curly[$id]); + } + + // execute the handles + $running = null; + do { + curl_multi_exec($mh, $running); + } while($running > 0); + + + // get content and remove handles + foreach($curly as $id => $c) { + $result[$id] = curl_multi_getcontent($c); + curl_multi_remove_handle($mh, $c); + } + + // all done + curl_multi_close($mh); + + return $result; +} + +?> + diff --git a/admin/WebConsole/jscripts/aula.js b/admin/WebConsole/jscripts/aula.js index f34c01ba..a1428740 100644 --- a/admin/WebConsole/jscripts/aula.js +++ b/admin/WebConsole/jscripts/aula.js @@ -111,43 +111,29 @@ function soIMG(so) var MimgOrdenador=""; switch(so){ case 'INI': - MimgOrdenador="ordenador_INI.gif"; // Iniciando cliente + MimgOrdenador="ordenador_INI.png"; // Iniciando cliente break; case 'BSY': - MimgOrdenador="ordenador_BSY.gif"; // Cliente ocupado + MimgOrdenador="ordenador_BSY.png"; // Cliente ocupado break; case 'OPG': - MimgOrdenador="ordenador_OPG.gif"; // Cliente OpenGnSys - break; - case 'WS2': - MimgOrdenador="ordenador_WS2.gif"; // Windows Server 2003 - break; - case 'W2K': - MimgOrdenador="ordenador_W2K.gif"; // Windows 2000 + MimgOrdenador="ordenador_OPG.png"; // Cliente OpenGnsys break; + case 'WIN': case 'WXP': - MimgOrdenador="ordenador_WXP.gif"; // Windows XP - break; - case 'WNT': - MimgOrdenador="ordenador_WNT.gif"; // Windows NT - break; - case 'W95': - MimgOrdenador="ordenador_W95.gif"; // Windows 95 + MimgOrdenador="ordenador_WIN.png"; // Windows break; - case 'W98': - MimgOrdenador="ordenador_W98.gif"; // Windows 98 - break; - case 'WML': - MimgOrdenador="ordenador_WML.gif"; // Windows Millenium - break; - case 'WIN': - MimgOrdenador="ordenador_WXP.gif"; // Windows + case 'WINS': + MimgOrdenador="ordenador_WINS.png"; // Sesi贸n Windows break; case 'LNX': - MimgOrdenador="ordenador_LNX.gif"; // Linux + MimgOrdenador="ordenador_LNX.png"; // Linux + break; + case 'LNXS': + MimgOrdenador="ordenador_LNXS.png"; // Sesi贸n Linux break; default: - MimgOrdenador="ordenador_OFF.gif"; // Apagado + MimgOrdenador="ordenador_OFF.png"; // Apagado break; } return(MimgOrdenador); diff --git a/admin/WebConsole/principal/aula.php b/admin/WebConsole/principal/aula.php index aa606053..cd8ccbd8 100644 --- a/admin/WebConsole/principal/aula.php +++ b/admin/WebConsole/principal/aula.php @@ -1,4 +1,4 @@ -campos["idordenador"]; $Midordenador[$k]=$rs->campos["idordenador"]; $Mnombreordenador[$k]=$rs->campos["nombreordenador"]; - $MimgOrdenador[$k]="ordenador_OFF.gif"; + $MimgOrdenador[$k]="ordenador_OFF.png"; $Mip[$k]=$rs->campos["ip"]; $Mmac[$k]=$rs->campos["mac"]; $cadenaip.=$rs->campos["ip"].";"; @@ -299,8 +299,8 @@ function pintaordenadores(){

'.$nombreordenador.'
'.$ip.'
'; - foreach ( Array ("OPG", "BSY", "WXP", "LNX", "OFF") as $status) { - echo ' '; + foreach ( Array ("OPG", "BSY", "WIN", "LNX", "OFF") as $status) { + echo ' '; } echo ' '; echo '
'.$status.'
'.$TbMsg["STATUS_$status"].'
'.$status.'
'.$TbMsg["STATUS_$status"].'
'; diff --git a/admin/WebConsole/principal/sondeo.php b/admin/WebConsole/principal/sondeo.php index 137ec449..2cc30ea4 100644 --- a/admin/WebConsole/principal/sondeo.php +++ b/admin/WebConsole/principal/sondeo.php @@ -9,6 +9,7 @@ // Consulta el estado de los ordenadores // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); + include_once("../includes/restfunctions.php"); include_once("../clases/SockHidra.php"); include_once("../clases/AdoPhp.php"); include_once("../includes/constantes.php"); @@ -42,6 +43,8 @@ $cadenamac=""; RecopilaIpesMacs($cmd,$ambito,$idambito); // 脕mbito de aplicaci贸n $aplicacion="ido=".$cadenaid.chr(13)."iph=".$cadenaip.chr(13); + // Reset status. + echo "cadenaip"; //________________________________________________________________________________________________________ // Envio al servidor de la petici贸n //________________________________________________________________________________________________________ @@ -67,5 +70,25 @@ echo $trama_notificacion; // Devuelve respuesta } } + + // Send REST requests to new OGAgent clients. + $urls = array(); + // Compose array of REST URLs. + foreach (explode (';', $cadenaip) as $ip) { + $urls[$ip] = "https://$ip:8000/opengnsys/status"; + } + // Launch concurrent requests. + $responses = multiRequest($urls, array(CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false)); + // Process responses array (IP as array index). + foreach ($responses as $ip => $data) { + if (isset($data)) { + $status = json_decode($data); + // If user session is oppened, then append "S" to client status. + if (isset($status->status) and isset($status->loggedin)) { + // Output format: IP1/Status1;... + echo "$ip/".$status->status.($status->loggedin?"S;":";"); + } + } + } ?> -- cgit v1.2.3-18-g5258