summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2016-03-17 12:15:10 +0000
committerramon <ramongomez@us.es>2016-03-17 12:15:10 +0000
commit8c9fcb2861cc222c16ab9e17b0167e125c6358fa (patch)
tree1e4743058feb48d44a892a6927a0c7b63fd0ec78
parentb658596cdeebf762923d347f8bf80ab4203b28ad (diff)
#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
-rw-r--r--admin/WebConsole/comandos/includes/FiltradoAmbito.php66
-rw-r--r--admin/WebConsole/includes/restfunctions.php67
-rw-r--r--admin/WebConsole/jscripts/aula.js38
-rw-r--r--admin/WebConsole/principal/aula.php8
-rw-r--r--admin/WebConsole/principal/sondeo.php23
5 files changed, 132 insertions, 70 deletions
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.='<TABLE cellspacing=1 cellpadding=0>';
- $htmlCode.=' <TR><TD align="center"><img sondeo="ordenador_OFF.gif" id="img-'.$ip.'" width=24 src="../images/ordenador_OFF.gif"></TD></TR>';
+ $htmlCode.=' <TR><TD align="center"><img sondeo="ordenador_OFF.png" id="img-'.$ip.'" width=24 src="../images/ordenador_OFF.png"></TD></TR>';
$htmlCode.=' <TR><TD align="center"><SPAN style="FONT-SIZE:9px; COLOR: #4f4f4f;">'.$nombreordenador.'</SPAN></TD></TR>';
$htmlCode.=' <TR><TD align="center"><SPAN style="FONT-SIZE:8px; COLOR: #4f4f4f;">'.$ip.'</SPAN></TD></TR>';
$htmlCode.=' <TR><TD align="center"><INPUT id="chk-'.$ip.'" type="checkbox" checked></TD></TR>';
@@ -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 @@
+<?php
+
+/*
+ * Function: multiRequest.
+ * Params: urls array, cURL options array.
+ * Returns: array with JSON requests.
+ * Date: 2015-10-14
+ */
+function multiRequest($data, $options = array()) {
+
+ // array of curl handles
+ $curly = array();
+ // data to be returned
+ $result = array();
+
+ // multi handle
+ $mh = curl_multi_init();
+
+ // loop through $data and create curl handles
+ // then add them to the multi-handle
+ foreach ($data as $id => $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 @@
-<?
+<?php
// *************************************************************************************************************************************************
// Aplicaci贸n WEB: ogAdmWebCon
// Autor: Jos茅 Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
@@ -232,7 +232,7 @@ function RecorreOrdenadores($cmd){
$idordenador=$rs->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(){
<p>
<table style="border: #d4d0c8 1px solid; background: #eeeeee" align=center>
<tr align="center">';
- foreach ( Array ("OPG", "BSY", "WXP", "LNX", "OFF") as $status) {
- echo ' <td><img src="../images/ordenador_'.$status.'.gif" alt="'.$status.'" width="24" /><br /><font color="#003300" size="1" face="Arial, Helvetica, sans-serif">'.$TbMsg["STATUS_$status"].'</font></td>';
+ foreach ( Array ("OPG", "BSY", "WIN", "LNX", "OFF") as $status) {
+ echo ' <td><img src="../images/ordenador_'.$status.'.png" alt="'.$status.'" width="24" /><br /><font color="#003300" size="1" face="Arial, Helvetica, sans-serif">'.$TbMsg["STATUS_$status"].'</font></td>';
}
echo ' </tr>';
echo '</table>';
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;":";");
+ }
+ }
+ }
?>