summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/includes
diff options
context:
space:
mode:
Diffstat (limited to 'admin/WebConsole/includes')
-rw-r--r--admin/WebConsole/includes/ConfiguracionesParticiones.php2
-rw-r--r--admin/WebConsole/includes/CreaComando.php2
-rw-r--r--admin/WebConsole/includes/CreaTablaParametros.php102
-rw-r--r--admin/WebConsole/includes/FicherosPost.php2
-rw-r--r--admin/WebConsole/includes/InvFecha.php4
-rw-r--r--admin/WebConsole/includes/RecopilaIpesMacs.php2
-rw-r--r--admin/WebConsole/includes/RedireccionaError.php1
-rw-r--r--admin/WebConsole/includes/comunes.php12
-rw-r--r--admin/WebConsole/includes/constantes.php3
-rw-r--r--admin/WebConsole/includes/ctrlacc.php2
-rw-r--r--admin/WebConsole/includes/cuestionacciones.php2
-rw-r--r--admin/WebConsole/includes/cuestionaccionescab.php2
-rw-r--r--admin/WebConsole/includes/opciones.php1
-rw-r--r--admin/WebConsole/includes/opcionesbotonesop.php2
-rw-r--r--admin/WebConsole/includes/opcionesprotocolos.php2
-rw-r--r--admin/WebConsole/includes/pintaParticiones.php264
-rw-r--r--admin/WebConsole/includes/pintaTablaConfiguraciones.php8
-rw-r--r--admin/WebConsole/includes/restfunctions.php211
-rw-r--r--admin/WebConsole/includes/tftputils.php161
19 files changed, 378 insertions, 407 deletions
diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php
index 816843b5..9cbd6fcf 100644
--- a/admin/WebConsole/includes/ConfiguracionesParticiones.php
+++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php
@@ -833,5 +833,5 @@ function tomaCache($numpar,$ordenadores,$numdisk = 1)
}
}
}
-?>
+
diff --git a/admin/WebConsole/includes/CreaComando.php b/admin/WebConsole/includes/CreaComando.php
index 056ac3ae..156ff225 100644
--- a/admin/WebConsole/includes/CreaComando.php
+++ b/admin/WebConsole/includes/CreaComando.php
@@ -21,4 +21,4 @@ function CreaComando($cadenaconexion){
$cmd->Conexion=&$cn;
return($cmd);
}
-?>
+
diff --git a/admin/WebConsole/includes/CreaTablaParametros.php b/admin/WebConsole/includes/CreaTablaParametros.php
index 9d5468f4..a395c849 100644
--- a/admin/WebConsole/includes/CreaTablaParametros.php
+++ b/admin/WebConsole/includes/CreaTablaParametros.php
@@ -1,51 +1,51 @@
-<?php
-// *************************************************************************************************************************************************
-// Aplicación WEB: ogAdmWebCon.
-// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creación: 2009-2010
-// Fecha Última modificación: Agosto-2010
-// Nombre del fichero: CreaTablaParametros.php
-// Descripción :
-// Crea una tabla en memoria con especificaciones sobre los parámetros de cada comando
-// Parametros:
-// - cmd: Un comando ya operativo (con conexión abierta)
-// - tabla_parametros: Referencia a la tabla donde se guardarán las especificaciones
-// - cont_parametros: Referencia a la variable que contendrá el número de elementos totales de la tabla
-// *************************************************************************************************************************************************
-function CreaTablaParametros($cmd,$tabla_parametros,$cont_parametros){
- $rs=new Recordset;
- $cmd->texto="SELECT * FROM parametros";
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return; // Error al abrir recordset
- $rs->Primero();
- $cont=0;
- while (!$rs->EOF){
-echo "<br>".$rs->campos["nemonico"];
- $auxtabla_parametros="";
- $auxtabla_parametros["nemonico"]=$rs->campos["nemonico"];
- $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
- $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
- $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
- $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
- $tabla_parametros[$cont][0]=$auxtabla_parametros["nemonico"];
- $tabla_parametros[$cont][1]=$auxtabla_parametros;
- $cont++;
- $rs->Siguiente();
- }
- $auxnemonico="";
- // Ordena según el nemonico
- for ($i=0;$i<$cont-1;$i++){
- for ($j=$i+1;$j<$cont;$j++){
- if($tabla_parametros[$i][0]>$tabla_parametros[$j][0]){
- $auxnemonico=$tabla_parametros[$i][0];
- $tabla_parametros[$i][0]=$tabla_parametros[$j][0];
- $tabla_parametros[$j][0]=$auxnemonico;
- $auxtabla_parametros=$tabla_parametros[$i][1];
- $tabla_parametros[$i][1]=$tabla_parametros[$j][1];
- $tabla_parametros[$j][1]=$auxtabla_parametros;
- }
- }
- }
- $cont_parametros=$cont;
-}
-?>
+<?php
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: CreaTablaParametros.php
+// Descripción :
+// Crea una tabla en memoria con especificaciones sobre los parámetros de cada comando
+// Parametros:
+// - cmd: Un comando ya operativo (con conexión abierta)
+// - tabla_parametros: Referencia a la tabla donde se guardarán las especificaciones
+// - cont_parametros: Referencia a la variable que contendrá el número de elementos totales de la tabla
+// *************************************************************************************************************************************************
+function CreaTablaParametros($cmd,$tabla_parametros,$cont_parametros){
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM parametros";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $cont=0;
+ while (!$rs->EOF){
+echo "<br>".$rs->campos["nemonico"];
+ $auxtabla_parametros=array();
+ $auxtabla_parametros["nemonico"]=$rs->campos["nemonico"];
+ $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
+ $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
+ $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
+ $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
+ $tabla_parametros[$cont][0]=$auxtabla_parametros["nemonico"];
+ $tabla_parametros[$cont][1]=$auxtabla_parametros;
+ $cont++;
+ $rs->Siguiente();
+ }
+ $auxnemonico="";
+ // Ordena según el nemonico
+ for ($i=0;$i<$cont-1;$i++){
+ for ($j=$i+1;$j<$cont;$j++){
+ if($tabla_parametros[$i][0]>$tabla_parametros[$j][0]){
+ $auxnemonico=$tabla_parametros[$i][0];
+ $tabla_parametros[$i][0]=$tabla_parametros[$j][0];
+ $tabla_parametros[$j][0]=$auxnemonico;
+ $auxtabla_parametros=$tabla_parametros[$i][1];
+ $tabla_parametros[$i][1]=$tabla_parametros[$j][1];
+ $tabla_parametros[$j][1]=$auxtabla_parametros;
+ }
+ }
+ }
+ $cont_parametros=$cont;
+}
+
diff --git a/admin/WebConsole/includes/FicherosPost.php b/admin/WebConsole/includes/FicherosPost.php
index 10f38b0e..6791b3fd 100644
--- a/admin/WebConsole/includes/FicherosPost.php
+++ b/admin/WebConsole/includes/FicherosPost.php
@@ -48,5 +48,5 @@ function TomaPathFisico($UrlPagina,$NombreFichero){
$PathFisicoFichero=$PathFisicoCarpetaPagina."/iconos/".$NombreFichero;
return($PathFisicoFichero);
}
-?>
+
diff --git a/admin/WebConsole/includes/InvFecha.php b/admin/WebConsole/includes/InvFecha.php
index e4de8b83..3a82faff 100644
--- a/admin/WebConsole/includes/InvFecha.php
+++ b/admin/WebConsole/includes/InvFecha.php
@@ -9,7 +9,7 @@ function InvFecha($fecha){
if ($fecha=="1970-01-01")return("");
$auxexplode=explode(" ",$fecha);
- list($anno_p,$mes_p,$dia_p)=explode("[/-]",$auxexplode[0]);
+ list($anno_p,$mes_p,$dia_p)=explode("-",str_replace("/","-",$auxexplode[0]));
$fecha_p=$dia_p.'-'.$mes_p.'-'.$anno_p;
return($fecha_p);
}
@@ -34,4 +34,4 @@ function metefechaDB($fecha){
function HoraValida($hora){
if ($hora=="00:00:00")return("");
}
-?>
+
diff --git a/admin/WebConsole/includes/RecopilaIpesMacs.php b/admin/WebConsole/includes/RecopilaIpesMacs.php
index 70a7f8e3..2ded1775 100644
--- a/admin/WebConsole/includes/RecopilaIpesMacs.php
+++ b/admin/WebConsole/includes/RecopilaIpesMacs.php
@@ -165,5 +165,5 @@ function RecorreOrdenadores($cmd){
}
$rs->Cerrar();
}
-?>
+
diff --git a/admin/WebConsole/includes/RedireccionaError.php b/admin/WebConsole/includes/RedireccionaError.php
index 420f47a4..ded595ad 100644
--- a/admin/WebConsole/includes/RedireccionaError.php
+++ b/admin/WebConsole/includes/RedireccionaError.php
@@ -10,4 +10,3 @@ function RedireccionaError($herror){
$wurl="../seguridad/logerror.php?herror=".$urlerror;
Header('Location: '.$wurl);
}
-?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/comunes.php b/admin/WebConsole/includes/comunes.php
index b89701ac..7f326fd5 100644
--- a/admin/WebConsole/includes/comunes.php
+++ b/admin/WebConsole/includes/comunes.php
@@ -5,10 +5,10 @@
// Parámetros:
// - trama: La trama
// Devuelve:
- // Una matriz con las parejas de paramertos "nombre=valor"
+ // Una matriz con las parejas de parámertos "nombre=valor"
//________________________________________________________________________________________
function extrae_parametros($parametros,$chsep,$chval){
- $ParametrosCadena="";
+ $ParametrosCadena=array();
$auxP=explode($chsep,$parametros);
for ($i=0;$i<sizeof($auxP);$i++){
$dualparam=explode($chval,$auxP[$i]);
@@ -121,7 +121,7 @@
$cont=0;
while (!$rs->EOF){
$nemo=$rs->campos["nemonico"];
- $auxtabla_parametros="";
+ $auxtabla_parametros=array();
$auxtabla_parametros["nemonico"]=$nemo;
$auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
$auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
@@ -300,7 +300,7 @@
Devuelve la descripción de un ambito
Parametros:
- - cmd: Objeto comando (Operativo)
+ - cmd: Objeto comando (Operativo)
- ambito: tipo de ambito
- idambito: Identificador del ambito
- textambito: Por referencia. Es donde se devuelve la descripción
@@ -309,7 +309,7 @@
- Los dos parámetros pasados por referencia
________________________________________________________________________*/
- function tomaDescriAmbito($cmd,$ambito,$idambito,$textambito)
+ function tomaDescriAmbito($cmd,$ambito,$idambito,&$textambito)
{
global $AMBITO_CENTROS;
global $AMBITO_GRUPOSAULAS;
@@ -334,7 +334,7 @@
$textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador');
break;
default:
- $textambito;
+ $textambito="";
}
}
/*______________________________________________________________________
diff --git a/admin/WebConsole/includes/constantes.php b/admin/WebConsole/includes/constantes.php
index d37d8a7b..a46296d7 100644
--- a/admin/WebConsole/includes/constantes.php
+++ b/admin/WebConsole/includes/constantes.php
@@ -174,6 +174,3 @@ $msk_cache=0x12;
$IMAGENES_MONOLITICAS=0x01;
$IMAGENES_BASICAS=0x02;
$IMAGENES_INCREMENTALES=0x03;
-
-/* AVISO: no crear salto de línea ni líneas en blanco tras el fin del código PHP. */
-?>
diff --git a/admin/WebConsole/includes/ctrlacc.php b/admin/WebConsole/includes/ctrlacc.php
index 9e09b9b7..c6988027 100644
--- a/admin/WebConsole/includes/ctrlacc.php
+++ b/admin/WebConsole/includes/ctrlacc.php
@@ -45,4 +45,4 @@ if ($swacc){ // Error en alguna variable de sesión
die("***Error de acceso");
}
//===============================================================================================
-?>
+
diff --git a/admin/WebConsole/includes/cuestionacciones.php b/admin/WebConsole/includes/cuestionacciones.php
index 1f027adc..9c79894d 100644
--- a/admin/WebConsole/includes/cuestionacciones.php
+++ b/admin/WebConsole/includes/cuestionacciones.php
@@ -76,4 +76,4 @@ function CuestionAcciones($cmd,$shidra,$parametros){
}
return(true);
}
- ?>
+
diff --git a/admin/WebConsole/includes/cuestionaccionescab.php b/admin/WebConsole/includes/cuestionaccionescab.php
index d41d0324..0d0647db 100644
--- a/admin/WebConsole/includes/cuestionaccionescab.php
+++ b/admin/WebConsole/includes/cuestionaccionescab.php
@@ -20,4 +20,4 @@ if (isset($_POST["nwdescritarea"])) $nwdescritarea=$_POST["nwdescritarea"];
if (isset($_POST["sw_mkprocedimiento"])) $sw_mkprocedimiento=$_POST["sw_mkprocedimiento"];
if (isset($_POST["nwidprocedimiento"])) $nwidprocedimiento=$_POST["nwidprocedimiento"];
if (isset($_POST["nwdescriprocedimiento"])) $nwdescriprocedimiento=$_POST["nwdescriprocedimiento"];
-?>
+
diff --git a/admin/WebConsole/includes/opciones.php b/admin/WebConsole/includes/opciones.php
index 4e8c1033..9cc12c8d 100644
--- a/admin/WebConsole/includes/opciones.php
+++ b/admin/WebConsole/includes/opciones.php
@@ -13,4 +13,3 @@ $op_modificacion=2;
$op_eliminacion=3;
$op_movida=4;
$op_ejecucion=5;
-?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/opcionesbotonesop.php b/admin/WebConsole/includes/opcionesbotonesop.php
index 85138063..da89b776 100644
--- a/admin/WebConsole/includes/opcionesbotonesop.php
+++ b/admin/WebConsole/includes/opcionesbotonesop.php
@@ -6,4 +6,4 @@ echo '<TD width=20></TD>';
echo '<TD><A href=#><IMG border=0 src="../images/boton_confirmar.gif" onclick="confirmar('.$opcion.')" ></A></TD>';
echo '</TR>';
echo '</TABLE>';
-?>
+
diff --git a/admin/WebConsole/includes/opcionesprotocolos.php b/admin/WebConsole/includes/opcionesprotocolos.php
index 29a845bd..aaafab5d 100644
--- a/admin/WebConsole/includes/opcionesprotocolos.php
+++ b/admin/WebConsole/includes/opcionesprotocolos.php
@@ -105,5 +105,5 @@ return($torrentsyntax);
-?>
+
diff --git a/admin/WebConsole/includes/pintaParticiones.php b/admin/WebConsole/includes/pintaParticiones.php
index 44c3f10c..3db46818 100644
--- a/admin/WebConsole/includes/pintaParticiones.php
+++ b/admin/WebConsole/includes/pintaParticiones.php
@@ -34,7 +34,7 @@ function splitConfigurationsByDisk($configuraciones){
// Descripción:
// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
// grupo de ordenadores o aula
-// Parametros:
+// Parámetros:
// $configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato
// sería una secuencia de cadenas del tipo "clave de configuración" separados por "@"
// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
@@ -137,13 +137,11 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
for ($x=0;$x<count($ima); $x++) {
if(substr($ima[$x],-3)==".MB") {
if ( $ima[$x] == "0.MB" ){
- echo '<font color=red><strong>'.$TbMsg["CACHE_COMPLETE"].': '.$ima[$x].'</strong></font>';
+ echo '<span style="color: red"><strong>'.$TbMsg["CACHE_COMPLETE"].': '.$ima[$x].'</strong></span>';
}else{
echo '<strong>'.$TbMsg["CACHE_FREESPACE"].': '.$ima[$x].'</strong>';
}
}elseif (! empty($ima[1])){
- // $dir=is_dir('$ima');echo $dir;
- // if ($ima == "directorio"){$dir="si";}
// Esto para la informacion de la imagen
if (substr($ima[$x],-5)==".diff"){$info="F";}elseif(substr($ima[$x],-4)==".img"){$info="F";}else{$info="D";}
// Esto para numerarla
@@ -152,7 +150,7 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
} elseif(preg_match("/.sum/",$ima[$x]) or preg_match("/.torrent/",$ima[$x]) or preg_match("/.full.sum/",$ima[$x])) {
echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$ima[$x];
}else{
- echo '<br /><font color=blue>('.$info.') </font>'.$numero++.'.-<font color=blue>'.$ima[$x]."</font>";
+ echo '<br /><span style="color: blue">('.$info.') </span>'.$numero++.'.-<span style="color: blue">'.$ima[$x]."</span>";
}
}
}
@@ -193,7 +191,7 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
if (!empty($aviso)) {
echo '<tr><th colspan="'.$columns.'">&nbsp;* '.$aviso.'&nbsp;</th></tr>'."\n";
}
- echo '<tr height="5"><td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</td></tr>';
+ echo '<tr><td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF; height: 5px;">&nbsp;</td></tr>';
}
@@ -203,7 +201,7 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
// (Esta función es llamada por pintaConfiguraciones que está incluida en ConfiguracionesParticiones.php)
// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
// grupo de ordenadores o aula
-// Parametros:
+// Parámetros:
// $configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato
// sería una secuencia de cadenas del tipo "clave de configuración" separados por "@"
// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
@@ -248,40 +246,47 @@ function pintaParticionesRestaurarImagen($cmd,$configuraciones,$idordenadores,$c
$auxCfg=explode("@",$diskConfig); // Crea lista de particiones
for($i=0;$i<sizeof($auxCfg);$i++){
$auxKey=explode(";",$auxCfg[$i]); // Toma clave de configuracion
+ // Para particiones EFI desabilitamos el selector
+ $disabled='';
for($k=0;$k<$conKeys;$k++){ // Busca los literales para las claves de esa partición
if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas
if($tbKeys[$k]["numpar"]!=0){ // No es info. del disco (part. 0)
$swcc=$tbKeys[$k]["clonable"];
if($swcc){
+ if ($tbKeys[$k]["tipopar"] == 'EFI') $disabled='disabled';
echo '<TR>'.chr(13);
echo '<TD align=center>&nbsp;&nbsp;</TD>';
$icp=$cc."_".$tbKeys[$k]["numdisk"]."_".$tbKeys[$k]["numpar"]; // Identificador de la configuración-partición
- echo '<TD ><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numdisk"].";".$tbKeys[$k]["numpar"].'></TD>'.chr(13);
+ echo '<TD ><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numdisk"].";".$tbKeys[$k]["numpar"].' '.$disabled.'></TD>'.chr(13);
echo '<TD align=center>&nbsp;'.$tbKeys[$k]["numpar"].'&nbsp;</TD>'.chr(13);
echo '<TD align=center>&nbsp;'.$tbKeys[$k]["tipopar"].'&nbsp;</TD>'.chr(13);
echo '<TD align=center>&nbsp;'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores,$tbKeys[$k]["numdisk"]).'&nbsp;</TD>'.chr(13);
echo'<TD align=center>&nbsp;'.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores,false,$tbKeys[$k]["numdisk"]).'&nbsp;</TD>'.chr(13);
echo'<TD align=center>&nbsp;'.tomaTamano($tbKeys[$k]["numpar"],$idordenadores,$tbKeys[$k]["numdisk"]).'&nbsp;</TD>'.chr(13);
- echo '<TD>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idambito,$ambito).'</TD>';
- echo '<TD>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,false,$idambito,$ambito).'</TD>';
+ if ($tbKeys[$k]["tipopar"] == 'EFI') {
+ echo "<TD></TD>\n<TD></TD>\n<TD></TD>\n";
+ } else {
+ echo '<TD>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idambito,$ambito).'</TD>';
+ echo '<TD>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,false,$idambito,$ambito).'</TD>';
- //Clonación
- $metodos="UNICAST=UNICAST-CACHE".chr(13);
- $metodos.="UNICAST-DIRECT=UNICAST-DIRECT".chr(13);
- $metodos.="MULTICAST " . mcast_syntax($cmd,$ambito,$idambito) . "=MULTICAST-CACHE".chr(13);
- $metodos.="MULTICAST-DIRECT " . mcast_syntax($cmd,$ambito,$idambito) . "=MULTICAST-DIRECT".chr(13);
- $metodos.="TORRENT " . torrent_syntax($cmd,$ambito,$idambito) . "=TORRENT-CACHE";
+ //Clonación
+ $metodos="UNICAST=UNICAST-CACHE".chr(13);
+ $metodos.="UNICAST-DIRECT=UNICAST-DIRECT".chr(13);
+ $metodos.="MULTICAST " . mcast_syntax($cmd,$ambito,$idambito) . "=MULTICAST-CACHE".chr(13);
+ $metodos.="MULTICAST-DIRECT " . mcast_syntax($cmd,$ambito,$idambito) . "=MULTICAST-DIRECT".chr(13);
+ $metodos.="TORRENT " . torrent_syntax($cmd,$ambito,$idambito) . "=TORRENT-CACHE";
- $TBmetodos["UNICAST-CACHE"]=1;
- $TBmetodos["UNICAST-DIRECT"]=2;
- $TBmetodos["MULTICAST-CACHE"]=3;
- $TBmetodos["MULTICAST-DIRECT"]=4;
- $TBmetodos["TORRENT-CACHE"]=5;
- $idxc=$_SESSION["protclonacion"];
- if ($idxc == "UNICAST") {
- $idxc = "UNICAST-DIRECT";
+ $TBmetodos["UNICAST-CACHE"]=1;
+ $TBmetodos["UNICAST-DIRECT"]=2;
+ $TBmetodos["MULTICAST-CACHE"]=3;
+ $TBmetodos["MULTICAST-DIRECT"]=4;
+ $TBmetodos["TORRENT-CACHE"]=5;
+ $idxc=$_SESSION["protclonacion"];
+ if ($idxc == "UNICAST") {
+ $idxc = "UNICAST-DIRECT";
+ }
+ echo '<TD>'.HTMLCTESELECT($metodos,"protoclonacion_".$icp,"estilodesple","",$TBmetodos[$idxc],100).'</TD>';
}
- echo '<TD>'.HTMLCTESELECT($metodos,"protoclonacion_".$icp,"estilodesple","",$TBmetodos[$idxc],100).'</TD>';
echo '</TR>'.chr(13);
}
}
@@ -289,7 +294,7 @@ function pintaParticionesRestaurarImagen($cmd,$configuraciones,$idordenadores,$c
}
}
}
- echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
+ echo '<TR><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF; height:5px;">&nbsp;</TD></TR>';
}
/*________________________________________________________________________________________________________
@@ -298,7 +303,7 @@ function pintaParticionesRestaurarImagen($cmd,$configuraciones,$idordenadores,$c
(Esta función es llamada por pintaConfiguraciones que está incluida en ConfiguracionesParticiones.php)
Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
grupo de ordenadores o aula
- Parametros:
+ Parámetros:
$configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato
sería una secuencia de cadenas del tipo "clave de configuración" separados por "@"
Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
@@ -342,7 +347,7 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc)
$sf=tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores,true);
echo '<td>'.HTMLSELECT_sistemasficheros($cmd,$sf).'</td>';
$tm=tomaTamano($tbKeys[$k]["numpar"],$idordenadores);
- echo '<td><input type="text" style="width:100" value="'.$tm.'"></td>';
+ echo '<td><input type="text" style="width:100px" value="'.$tm.'"></td>';
echo '<td>'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'</td>';
echo '<td>'.opeFormatear().'</td>';
echo '</tr>';
@@ -361,8 +366,8 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc)
// Datos del disco
$tm=tomaTamano(0,$idordenadores);
echo '<tr id="TRIMG_'.$cc.'" align="center">'.
- "\n<td></td>\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0px; "'.">".$TbMsg["DISK"]."</td>".
- "\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0px; "> '.(isset($tm)?$tm:("<em>".$TbMsg["VARIABLE"]."</em>"))." <input type='hidden' id='hdsize$cc' name='hdsize$cc' style='width:100' value='".$tm."'></td>".
+ "\n<td></td>\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0; "'.">".$TbMsg["DISK"]."</td>".
+ "\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0; "> '.(isset($tm)?$tm:("<em>".$TbMsg["VARIABLE"]."</em>"))." <input type='hidden' id='hdsize$cc' name='hdsize$cc' style='width:100px' value='".$tm."'></td>".
"\n<td></td>\n<td></td>\n</tr>";
echo '<tr><th colspan="'.$colums.'">&nbsp;'.$TbMsg["WARN_DISKSIZE"].'</th></tr>';
// Mostrar aviso: solo disco 1 con tabla MSDOS.
@@ -371,14 +376,14 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc)
}
// Botones de añadir y confirmar.
if (isset($tm)) {
- echo '<TR height=30><TD style="BACKGROUND-COLOR: #FFFFFF;" colspan='.$colums.' align=center>';
- echo ' <A href="#add" style="text-decoration:none">
- <IMG id="IMG_'.$icp.'" border=0 src="../images/boton_insertar.gif"
- value="'.$k.'" onclick="addParticion(this,'.$cc.')"></A>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <A href="#add" style="text-decoration:none">
- <IMG border=0 src="../images/boton_aceptar.gif" onclick="Confirmar('.$cc.')"></A></TD>
- </TR>';
+ echo '<tr><td style="background-color: #FFFFFF; height: 30px;" colspan="'.$colums.'" align="center">';
+ echo ' <a href="#add" style="text-decoration:none">
+ <img id="IMG_'.$icp.'" border=0 src="../images/boton_insertar.gif"
+ value="'.$k.'" onclick="addParticion(this,'.$cc.')"></a>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="#add" style="text-decoration:none">
+ <img border=0 src="../images/boton_aceptar.gif" onclick="Confirmar('.$cc.')"></a></td>
+ </tr>';
} else {
echo '<tr><th colspan="'.$colums.'">'.$TbMsg["WARN_DIFFDISKSIZE"].'</th></tr>'."\n";
}
@@ -386,24 +391,24 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc)
/*
//
-// Descripcion:
-// (Esta funci�n es llamada por pintaConfiguraciones que est� incluida en ConfiguracionesParticiones.php)
+// Descripcián:
+// (Esta función es llamada por pintaConfiguraciones que está incluida en ConfiguracionesParticiones.php)
// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
// grupo de ordenadores o aula
-// Parametros:
-// $configuraciones: Cadena con las configuraciones de particioners del �mbito. El formato
-// ser�a una secuencia de cadenas del tipo "clave de configuraci�n" separados por "@"
+// Parámetros:
+// $configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato
+// sería una secuencia de cadenas del tipo "clave de configuración" separados por "@"
// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
// Devuelve:
-// El c�digo html de la tabla
+// El código html de la tabla
//________________________________________________________________________________________________________
//
//
*/
function pintaParticionesRestaurarImagenSincronizacion1($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito)
{
- global $tbKeys; // Tabla contenedora de claves de configuraci�n
- global $conKeys; // Contador de claves de configuraci�n
+ global $tbKeys; // Tabla contenedora de claves de configuración
+ global $conKeys; // Contador de claves de configuración
global $TbMsg;
global $_SESSION;
@@ -445,7 +450,7 @@ function pintaParticionesRestaurarImagenSincronizacion1($cmd,$configuraciones,$i
echo '<TR>'.chr(13);
echo '<TD align=center>&nbsp;&nbsp;</TD>';
if($swcc){
- $icp=$cc."_".$tbKeys[$k]["numdisk"]."_".$tbKeys[$k]["numpar"]; // Identificador de la configuraci�n-partici�n
+ $icp=$cc."_".$tbKeys[$k]["numdisk"]."_".$tbKeys[$k]["numpar"]; // Identificador de la configuración-partición
echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numdisk"].";".$tbKeys[$k]["numpar"].'></TD>'.chr(13);
echo '<TD align=center>&nbsp;'.$tbKeys[$k]["numpar"].'&nbsp;</TD>'.chr(13);
echo '<TD align=center>&nbsp;'.$tbKeys[$k]["tipopar"].'&nbsp;</TD>'.chr(13);
@@ -479,169 +484,6 @@ function pintaParticionesRestaurarImagenSincronizacion1($cmd,$configuraciones,$i
}
}
- echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
+ echo '<TR><TD colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF; height: 5px;">&nbsp;</TD></TR>';
echo '<tr><th colspan="14">'.$TbMsg["WARN_PROTOCOL"].'</th></tr>';
}
-/**
- * Las funcion pintaParticionesRestaurarImagenSincronizacion1 sustituye a las funciones
- * pintaParticionesRestaurarSoftIncremental y pintaParticionesRestaurarImagenBasica
- * para volver a usarlas tan sólo hay que ir al fichero comandos/RestaurarImagenBasica o comandos/RestaurarSoftIncremental y cambiar la
- * llamada a la función que queramos en el parametro de pintaConfiguraciones.
- * Actualmente en ambos ficheros llaman a la función pintaParticionesRestaurarImagenSincronizacion1 ya que pintan
- * exactamente lo mismo.
- *
-
-//*********************************************************************************************
-// FUNCIONES
-//*********************************************************************************************
-//
-// Descripci�n:
-// (Esta funci�n es llamada por pintaConfiguraciones que est� incluida en ConfiguracionesParticiones.php)
-// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
-// grupo de ordenadores o aula
-// Parametros:
-// $configuraciones: Cadena con las configuraciones de particioners del �mbito. El formato
-// ser�a una secuencia de cadenas del tipo "clave de configuraci�n" separados por "@"
-// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
-// Devuelve:
-// El c�digo html de la tabla
-//________________________________________________________________________________________________________
-//
-//
-function pintaParticionesRestaurarSoftIncremental($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito)
-{
- global $tbKeys; // Tabla contenedora de claves de configuraci�n
- global $conKeys; // Contador de claves de configuraci�n
- global $TbMsg;
- global $_SESSION;
-
- // Separamos las configuraciones segun el disco al que pertenezcan
- $diskConfigs = splitConfigurationsByDisk($configuraciones);
-
- $columns=9;
- echo '<TR>';
- echo '<TH align=center>&nbsp;&nbsp;</TH>';
- echo '<th align="center">&nbsp;'.$TbMsg["DISK"].'&nbsp;</th>'; // Número de disco
- echo '<TH align=center>&nbsp;'.$TbMsg["PARTITION"].'&nbsp;</TH>';
- echo '<th align="center">&nbsp;'.$TbMsg["PARTITION_TYPE"].'&nbsp;</th>'; // Tipo de partición
- echo '<th align="center">&nbsp;'.$TbMsg["INST_SO"].'&nbsp;</th>'; // Sistema Operativo Instalado
- echo '<th align="center">&nbsp;'.$TbMsg["FILESYSTEM_SHORT"].'&nbsp;</th>'; // Sistema de ficheros
- echo '<th align="center">&nbsp;'.$TbMsg["SIZE_KB"].'&nbsp;</th>'; // Tamaño
- echo '<TH align=center>&nbsp;'.$TbMsg[10].'&nbsp;</TH>';
- echo '<TH align=center>&nbsp;'.$TbMsg[16].'&nbsp;</TH>';
- echo '</TR>';
-
-
- // Recorremos todas las configuraciones encontradas para cada disco
-
- foreach($diskConfigs as $disk => $diskConfig){
- $disk = (int)$disk;
- echo'<tr height="16">'.chr(13);
- echo '<td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #D4D0C8;">&nbsp;'.$TbMsg["DISK"].'&nbsp;'.$disk.'</td>'.chr(13);
-
- $auxCfg=explode("@",$diskConfig); // Crea lista de particiones
- for($i=0;$i<sizeof($auxCfg);$i++){
- $auxKey=explode(";",$auxCfg[$i]); // Toma clave de configuracion
- for($k=0;$k<$conKeys;$k++){ // Busca los literales para las claves de esa partici�n
- if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas
- $swcc=$tbKeys[$k]["clonable"];
- echo '<TR>'.chr(13);
- echo '<TD align=center>&nbsp;&nbsp;</TD>';
- if($swcc){
- $icp=$cc."_".$tbKeys[$k]["numpar"]; // Identificador de la configuraci�n-partici�n
- echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numpar"].'></TD>'.chr(13);
- echo '<TD align=center>&nbsp;'.$tbKeys[$k]["numpar"].'&nbsp;</TD>'.chr(13);
- echo '<TD align=center>&nbsp;'.$tbKeys[$k]["tipopar"].'&nbsp;</TD>'.chr(13);
- echo '<TD align=center>&nbsp;'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
- echo'<TD align=center>&nbsp;'.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
- echo'<TD align=center>&nbsp;'.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
- echo '<TD align=center>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idordenadores,$ambito).'</TD>';
- $metodos="CACHE=".$TbMsg[13].chr(13);
- $metodos.="REPO=".$TbMsg[9];
- echo '<TD align=center>'.HTMLCTESELECT($metodos,"desplemet_".$icp,"estilodesple","",1,100).'</TD>';
-
- }
- echo '</TR>'.chr(13);
- }
- }
- }
- }
- echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
-}
-
-//*********************************************************************************************
-// FUNCIONES
-//*********************************************************************************************
-//
-// Descripci�n:
-// (Esta funci�n es llamada por pintaConfiguraciones que est� incluida en ConfiguracionesParticiones.php)
-// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
-// grupo de ordenadores o aula
-// Parametros:
-// $configuraciones: Cadena con las configuraciones de particioners del �mbito. El formato
-// ser�a una secuencia de cadenas del tipo "clave de configuraci�n" separados por "@"
-// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
-// Devuelve:
-// El c�digo html de la tabla
-//________________________________________________________________________________________________________
-//
-//
-function pintaParticionesRestaurarImagenBasica($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito)
-{
- global $tbKeys; // Tabla contenedora de claves de configuraci�n
- global $conKeys; // Contador de claves de configuraci�n
- global $TbMsg;
- global $_SESSION;
-
- // Separamos las configuraciones segun el disco al que pertenezcan
- $diskConfigs = splitConfigurationsByDisk($configuraciones);
-
- $columns=9;
- echo '<TR>';
- echo '<TH align=center>&nbsp;&nbsp;</TH>';
- echo '<th align="center">&nbsp;'.$TbMsg["DISK"].'&nbsp;</th>'; // Número de disco
- echo '<TH align=center>&nbsp;'.$TbMsg["PARTITION"].'&nbsp;</TH>';
- echo '<th align="center">&nbsp;'.$TbMsg["PARTITION_TYPE"].'&nbsp;</th>'; // Tipo de partición
- echo '<th align="center">&nbsp;'.$TbMsg["INST_SO"].'&nbsp;</th>'; // Sistema Operativo Instalado
- echo '<th align="center">&nbsp;'.$TbMsg["FILESYSTEM_SHORT"].'&nbsp;</th>'; // Sistema de ficheros
- echo '<th align="center">&nbsp;'.$TbMsg["SIZE_KB"].'&nbsp;</th>'; // Tamaño
- echo '<TH align=center>&nbsp;'.$TbMsg[10].'&nbsp;</TH>';
- echo '<TH align=center>&nbsp;'.$TbMsg[16].'&nbsp;</TH>';
- echo '</TR>';
-
- // Recorremos todas las configuraciones encontradas para cada disco
-
- foreach($diskConfigs as $disk => $diskConfig){
- $disk = (int)$disk;
- echo'<tr height="16">'.chr(13);
- echo '<td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #D4D0C8;">&nbsp;'.$TbMsg["DISK"].'&nbsp;'.$disk.'</td>'.chr(13);
-
- $auxCfg=explode("@",$diskConfig); // Crea lista de particiones
- for($i=0;$i<sizeof($auxCfg);$i++){
- $auxKey=explode(";",$auxCfg[$i]); // Toma clave de configuracion
- for($k=0;$k<$conKeys;$k++){ // Busca los literales para las claves de esa partici�n
- if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas
- $swcc=$tbKeys[$k]["clonable"];
- if($swcc){
- echo '<TR>'.chr(13);
- echo '<TD align=center>&nbsp;&nbsp;</TD>';
- $icp=$cc."_".$tbKeys[$k]["numpar"]; // Identificador de la configuraci�n-partici�n
- echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numpar"].'></TD>'.chr(13);
- echo '<TD align=center>&nbsp;'.$tbKeys[$k]["numpar"].'&nbsp;</TD>'.chr(13);
- echo '<TD align=center>&nbsp;'.$tbKeys[$k]["tipopar"].'&nbsp;</TD>'.chr(13);
- echo '<TD align=center>&nbsp;'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
- echo'<TD align=center>&nbsp;'.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
- echo'<TD align=center>&nbsp;'.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
- echo '<TD align=center>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idordenadores,$ambito).'</TD>';
- $metodos="CACHE=".$TbMsg[13].chr(13);
- $metodos.="REPO=".$TbMsg[9];
- echo '<TD align=center>'.HTMLCTESELECT($metodos,"desplemet_".$icp,"estilodesple","",1,100).'</TD>';
- }
- }
- }
- }
- }
- echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
-}
-**/
-
diff --git a/admin/WebConsole/includes/pintaTablaConfiguraciones.php b/admin/WebConsole/includes/pintaTablaConfiguraciones.php
index ecf69574..5a0b72ae 100644
--- a/admin/WebConsole/includes/pintaTablaConfiguraciones.php
+++ b/admin/WebConsole/includes/pintaTablaConfiguraciones.php
@@ -38,10 +38,10 @@ function tablaConfiguracionesIniciarSesion($cmd,$idambito,$ambito){
// CONSULTA BD: grupo de equipos con iguales sistemas operativos: idordenadores,configuracion
$cmd->texto="";
// agrupamos equipos con igual conf de disco.
- $cmd->texto="select GROUP_CONCAT(pcconf.idordenador SEPARATOR ',') AS idordenadores, pcconf.configuraciones FROM (";
+ $cmd->texto="SELECT GROUP_CONCAT(pcconf.idordenador SEPARATOR ',') AS idordenadores, pcconf.configuraciones FROM (";
// partconf agrupa la configuracion de todas las part: idordenador | configuracionTodasPart
- $cmd->texto.=" select partconf.idordenador , GROUP_CONCAT(partconf.configuracion ORDER BY partconf.configuracion ASC SEPARATOR '@' ) AS configuraciones FROM (";
+ $cmd->texto.=" SELECT partconf.idordenador, GROUP_CONCAT(partconf.configuracion ORDER BY partconf.configuracion ASC SEPARATOR '@') AS configuraciones FROM (";
// particion conf: idordenador, numdisk, configuracion (numdisk;numpar;idnombreso)
$cmd->texto.="SELECT ordenadores_particiones.idordenador,ordenadores_particiones.numdisk, CONCAT_WS(';',ordenadores_particiones.numdisk, ordenadores_particiones.numpar, ordenadores_particiones.idnombreso) AS configuracion FROM ordenadores_particiones ";
@@ -138,9 +138,7 @@ function tablaConfiguracionesInventarioSoftware($cmd,$idordenador){
WHERE ordenadores.idordenador=".$idordenador."
AND nombresos.nombreso!='DATA'
ORDER BY ordenadores_particiones.numdisk,ordenadores_particiones.numpar";
-
- $rs->Comando=&$cmd;
- $rs=new Recordset;
+ $rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir())
return($tablaHtml); // Error al abrir recordset
diff --git a/admin/WebConsole/includes/restfunctions.php b/admin/WebConsole/includes/restfunctions.php
index 3f91f7f5..14cace17 100644
--- a/admin/WebConsole/includes/restfunctions.php
+++ b/admin/WebConsole/includes/restfunctions.php
@@ -1,5 +1,212 @@
<?php
-
+
+define('OG_REST_URL', 'http://127.0.0.1:8888/');
+
+define('GET', 1);
+define('POST', 2);
+define('CUSTOM', 3);
+
+define('OG_REST_CMD_CLIENTS', 'clients');
+define('OG_REST_CMD_WOL', 'wol');
+define('OG_REST_CMD_SESSION', 'session');
+define('OG_REST_CMD_RUN', 'shell/run');
+define('OG_REST_CMD_OUTPUT', 'shell/output');
+define('OG_REST_CMD_POWEROFF', 'poweroff');
+define('OG_REST_CMD_REBOOT', 'reboot');
+define('OG_REST_CMD_STOP', 'stop');
+define('OG_REST_CMD_REFRESH', 'refresh');
+define('OG_REST_CMD_HARDWARE', 'hardware');
+define('OG_REST_CMD_SOFTWARE', 'software');
+
+define('OG_REST_PARAM_CLIENTS', 'clients');
+define('OG_REST_PARAM_ADDR', 'addr');
+define('OG_REST_PARAM_MAC', 'mac');
+define('OG_REST_PARAM_DISK', 'disk');
+define('OG_REST_PARAM_PART', 'partition');
+define('OG_REST_PARAM_RUN', 'run');
+define('OG_REST_PARAM_TYPE', 'type');
+define('OG_REST_PARAM_STATE', 'state');
+
+$conf_file = parse_ini_file(__DIR__ . '/../../etc/ogAdmRepo.cfg');
+define('OG_REST_API_TOKEN', 'Authorization: ' . $conf_file['ApiToken']);
+
+function common_request($command, $type, $data = null) {
+
+ $json = json_encode($data);
+
+ $service_url = OG_REST_URL.$command;
+
+ $curl = curl_init($service_url);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($curl, CURLOPT_HTTPHEADER, array(
+ OG_REST_API_TOKEN,
+ ));
+
+ switch ($type) {
+ default:
+ case GET:
+ break;
+ case POST:
+ curl_setopt($curl, CURLOPT_POST, true);
+ curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
+ }
+
+ $curl_response = curl_exec($curl);
+ $info = curl_getinfo($curl);
+
+ if ($curl_response === false || $info['http_code'] != 200) {
+ syslog(LOG_ERR, 'error occured during curl exec. Additioanl info: ' . print_r($info, TRUE));
+ return 0;
+ }
+
+ curl_close($curl);
+
+ syslog(LOG_INFO, 'response '.$command.' ok!');
+
+ return json_decode($curl_response, true);
+}
+
+
+function shell($case, $string_ips, $command) {
+
+ $ips = explode(';',$string_ips);
+
+ switch ($case) {
+ case 1:
+ $data = array(OG_REST_PARAM_CLIENTS => $ips,
+ OG_REST_PARAM_RUN => $command);
+ $command = OG_REST_CMD_RUN;
+ break;
+ default:
+ case 2:
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+ $command = OG_REST_CMD_OUTPUT;
+ }
+
+ $result = common_request($command, POST,
+ $data)[OG_REST_PARAM_CLIENTS][0]['output'];
+
+ return (is_null($result) ? '1' : $result);
+}
+
+function clients($case, $ips) {
+
+ switch ($case) {
+ case 1:
+ $type = POST;
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+ break;
+ case 2:
+ $type = GET;
+ $data = null;
+ break;
+ }
+
+ $result = common_request(OG_REST_CMD_CLIENTS, $type, $data);
+
+ $trama_notificacion = "";
+ if (isset($result[OG_REST_PARAM_CLIENTS])) {
+ foreach ($result[OG_REST_PARAM_CLIENTS] as $client) {
+ $trama_notificacion .= $client[OG_REST_PARAM_ADDR].'/'.
+ $client[OG_REST_PARAM_STATE].';';
+ }
+ }
+
+ return $trama_notificacion;
+}
+
+function wol($type_wol, $macs, $ips) {
+
+ switch ($type_wol) {
+ default:
+ case 1:
+ $wol = 'broadcast';
+ break;
+ case 2:
+ $wol = 'unicast';
+ }
+
+ $clients = array();
+
+ for($i=0; $i<count($macs); $i++) {
+ $clients[] = array(OG_REST_PARAM_ADDR => $ips[$i],
+ OG_REST_PARAM_MAC => $macs[$i]);
+ }
+
+ $data = array(OG_REST_PARAM_TYPE => $wol,
+ OG_REST_PARAM_CLIENTS => $clients);
+
+ common_request(OG_REST_CMD_WOL, POST, $data);
+}
+
+function session($string_ips, $params) {
+
+ preg_match_all('!\d{1}!', $params, $matches);
+
+ $ips = explode(';',$string_ips);
+ $disk = $matches[0][0];
+ $part = $matches[0][1];
+
+ $data = array(OG_REST_PARAM_CLIENTS => $ips,
+ OG_REST_PARAM_DISK => $disk, OG_REST_PARAM_PART => $part);
+
+ common_request(OG_REST_CMD_SESSION, POST, $data);
+}
+
+function poweroff($string_ips) {
+
+ $ips = explode(';',$string_ips);
+
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+
+ common_request(OG_REST_CMD_POWEROFF, POST, $data);
+}
+
+function reboot($string_ips) {
+
+ $ips = explode(';',$string_ips);
+
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+
+ common_request(OG_REST_CMD_REBOOT, POST, $data);
+}
+
+function stop($string_ips) {
+
+ $ips = explode(';',$string_ips);
+
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+
+ common_request(OG_REST_CMD_STOP, POST, $data);
+}
+
+function refresh($string_ips) {
+
+ $ips = explode(';',$string_ips);
+
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+
+ common_request(OG_REST_CMD_REFRESH, POST, $data);
+}
+
+function hardware($string_ips) {
+
+ $ips = explode(';',$string_ips);
+
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+
+ common_request(OG_REST_CMD_HARDWARE, POST, $data);
+}
+
+function software($string_ips) {
+
+ $ips = explode(';',$string_ips);
+
+ $data = array(OG_REST_PARAM_CLIENTS => $ips);
+
+ common_request(OG_REST_CMD_SOFTWARE, POST, $data);
+}
+
/*
* @function multiRequest.
* @param URLs array (may include header and POST data), cURL options array.
@@ -69,4 +276,4 @@ function multiRequest($data, $options=array(CURLOPT_SSL_VERIFYHOST => false, CUR
return $result;
}
-?>
+
diff --git a/admin/WebConsole/includes/tftputils.php b/admin/WebConsole/includes/tftputils.php
index 5cf2da88..aca054a5 100644
--- a/admin/WebConsole/includes/tftputils.php
+++ b/admin/WebConsole/includes/tftputils.php
@@ -12,12 +12,13 @@ include_once("../includes/ctrlacc.php");
include_once("../clases/AdoPhp.php");
// Directorio de ficheros PXE.
-define("PXEDIR", "/opt/opengnsys/tftpboot/menu.lst");
+define("PXEDIRBIOS", "/opt/opengnsys/tftpboot/menu.lst");
+define("PXEDIRUEFI", "/opt/opengnsys/tftpboot/grub");
/**
* @brief Sustituye espacio por "_" y quita acentos y tildes.
- * @param cadena Cadena a modificar.
+ * @param string Cadena a modificar.
* @return string Cadena modificada.
* @versión 1.0.5 - Primera versión, adaptada de NetBoot Avanzado.
* @author
@@ -47,13 +48,13 @@ function clientKernelVersion () {
/**
- * createBootMode ($cmd, $bootopt, $hostid, $lang)
+ * createBootMode ($cmd, $bootopt, $hostname, $lang)
* @brief Crea un fichero PXE para el ordenador basado en la plantilla indicada y usando
* los datos almacenados en la BD.
- * @param {Object} cmd Objeto de conexión a la base de datos.
- * @param {String} bootopt Plantilla de arranque PXE.
- * @param {Number} hostid Id. del ordenador.
- * @param {String} lang Idioma de arranque.
+ * @param Object cmd Objeto de conexión a la base de datos.
+ * @param String bootopt Plantilla de arranque PXE.
+ * @param String hostname Nombre del ordenador.
+ * @param String lang Idioma de arranque.
* @version 1.0.5 - Primera versión, adaptada de NetBoot Avanzado (Antonio J. Doblas Viso - Universidad de Málaga)
* @author Ramón Gómez - ETSII Universidad de Sevilla
* @date 2013-04-25
@@ -63,68 +64,23 @@ function clientKernelVersion () {
* @version 1.1.0 - La segunda fase de carga del ogLive se define en el SERVER para evitar erores de sincronismo entre versiones (ticket #787).
* @author Antonio J. Doblas Viso - Universidad de Malaga
* @date 2017-06-01
- * @version 1.1.0 - Se incluye el nombre del perfil hardware y se elimina el winboot (ticket #828).
+ * @version 1.1.0 - Se incluye el nombre del perfil hardware y se elimina el winboot (ticket #828).
* @author Antonio J. Doblas Viso - Universidad de Malaga
* @date 2018-01-21
+ * @version 1.1.1 - Se utiliza setclientmode. Gestiona plantilla bios y uefi (ticket #802 #888)
+ * @author Irina Gómez - ETSII Universidad de Sevilla
+ * @date 2019-03-14
*/
-function createBootMode ($cmd, $bootopt, $hostid, $lang) {
+function createBootMode ($cmd, $bootopt, $hostname, $lang) {
+ global $cadenaconexion;
+
+ // Datos para el acceso a mysql
+ $strcn=explode(";",$cadenaconexion);
+ $acceso="USUARIO=".$strcn[1]." PASSWORD=".$strcn[2]." CATALOG=".$strcn[3];
// Plantilla con las opciones por defecto.
if (empty ($bootopt)) $bootopt = "00unknown";
- // Actualizar opción de arranque para el equipo.
- $cmd->CreaParametro("@arranque",$bootopt,0);
- $cmd->CreaParametro("@idordenador",$hostid,1);
- $cmd->texto="UPDATE ordenadores SET arranque=@arranque WHERE idordenador=@idordenador";
- $cmd->Ejecutar();
-
- // Obtener información de la base de datos.
- $cmd->texto="SELECT ordenadores.nombreordenador AS hostname, ordenadores.ip AS ip,
- ordenadores.mac AS mac, ordenadores.netiface AS netiface,
- ordenadores.oglivedir AS oglivedir,
- aulas.netmask AS netmask, aulas.router AS router,
- aulas.ntp AS ntp, aulas.dns AS dns, aulas.proxy AS proxy,
- aulas.nombreaula AS grupo, IFNULL(repositorios.ip, '') AS iprepo,
- (SELECT ipserveradm FROM entornos LIMIT 1) AS ipserveradm,
- menus.resolucion AS vga, perfileshard.descripcion AS hardprofile,
- centros.directorio, entidades.ogunit
- FROM ordenadores
- JOIN aulas USING (idaula)
- JOIN centros USING (idcentro)
- JOIN entidades USING (identidad)
- LEFT JOIN repositorios USING (idrepositorio)
- LEFT JOIN menus USING (idmenu)
- LEFT JOIN perfileshard USING (idperfilhard)
- WHERE ordenadores.idordenador='$hostid'";
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return;
- $rs->Primero();
- $hostname=$rs->campos["hostname"];
- $ip=$rs->campos["ip"];
- $mac=$rs->campos["mac"];
- $netiface=$rs->campos["netiface"];
- $netmask=$rs->campos["netmask"];
- $router=$rs->campos["router"];
- $ntp=$rs->campos["ntp"];
- $dns=$rs->campos["dns"];
- $proxy=$rs->campos["proxy"];
- $group=cleanString($rs->campos["grupo"]);
- $repo=$rs->campos["iprepo"];
- $server=$rs->campos["ipserveradm"];
- $vga=$rs->campos["vga"];
- $hardprofile=cleanString($rs->campos["hardprofile"]);
- $oglivedir=$rs->campos["oglivedir"];
- $ogunit=$rs->campos["ogunit"];
- if ($ogunit == 0 or $rs->campos["directorio"] == null) {
- $directorio="" ;
- } else {
- $directorio=$rs->campos["directorio"];
- }
-
- $rs->Cerrar();
-
// Componer código de idioma para el parámetro de arranque.
switch ($lang) {
case "eng":
@@ -138,49 +94,18 @@ function createBootMode ($cmd, $bootopt, $hostid, $lang) {
break;
}
- // Componer parámetros del kernel.
- $infohost=" LANG=$lang".
- " ip=$ip:$server:$router:$netmask:$hostname:$netiface:none" .
- " group=$group" .
- " ogrepo=$repo" .
- " oglive=$server" .
- " oglog=$server" .
- " ogshare=$server";
- // Añadir parámetros opcionales.
- if (! empty ($ntp)) { $infohost.=" ogntp=$ntp"; }
- if (! empty ($dns)) { $infohost.=" ogdns=$dns"; }
- if (! empty ($proxy)) { $infohost.=" ogproxy=$proxy"; }
- if (! empty ($hardprofile)) { $infohost.=" hardprofile=$hardprofile"; }
- // Comprobar si se usa el parámetro "vga" (número de 3 cifras) o "video" (cadena).
- if (! empty ($vga)) {
- // UHU - Se sustituye la función is_int por is_numeric, ya que al ser un string no funciona bien con is_int
- if (is_numeric($vga) && strlen($vga) == 3) {
- $infohost.=" vga=$vga";
- } else {
- $infohost.=" video=$vga";
- }
- }
- if (! empty ($directorio)) { $infohost.=" ogunit=$directorio"; }
-
- $mac = substr($mac,0,2) . ":" . substr($mac,2,2) . ":" . substr($mac,4,2) . ":" . substr($mac,6,2) . ":" . substr($mac,8,2) . ":" . substr($mac,10,2);
- $macfile = PXEDIR . "/01-" . str_replace(":", "-", strtoupper($mac));
-
- // Crear fichero de arranque a partir de la plantilla y los datos del cliente.
- // UHU - si el parametro vga no existe, no se quita.
- if (! empty ($vga)) {
- exec("sed -e 's|vga=...||g; s|INFOHOST|$infohost|g; s|set ISODIR=.*|set ISODIR=$oglivedir|g' " . PXEDIR . "/templates/$bootopt > $macfile");
- }
- else{
- exec("sed -e 's|INFOHOST|$infohost|g; s|set ISODIR=.*|set ISODIR=$oglivedir|g; s|set ISODIR=.*|set ISODIR=$oglivedir|g' " . PXEDIR . "/templates/$bootopt > $macfile");
- }
- chmod($macfile, 0777);
+ // Descripción plantilla PXE
+ $description=exec("awk 'NR==1 {print $2}' ".PXEDIRBIOS."/templates/".$bootopt);
+ if ($description === "") $description=exec("awk 'NR==1 {print $2}' ".PXEDIRUEFI."/templates/".$bootopt);
+ // Llamamos al script setclientmode
+ shell_exec("export LANG=$lang $acceso; /opt/opengnsys/bin/setclientmode $description $hostname PERM");
}
/**
* deleteBootFile ($mac)
* @brief Borra el fichero PXE del ordenador con la dirección MAC correspondiente.
- * @param {String} mac Dirección MAC del ordenador (sin caracteres ":").
+ * @param String mac Dirección MAC del ordenador (sin caracteres ":").
* @versión 1.0.5 - Primera versión, adaptada de NetBoot Avanzado.
* @authors Ramón Gómez - ETSII Universidad de Sevilla
* @date 2013-04-25
@@ -189,19 +114,20 @@ function deleteBootFile ($mac) {
// Obtener nombre de fichero a partir de dirección MAC.
$mac = strtoupper($mac);
- $macfile = PXEDIR . "/01-" . substr($mac, 0, 2) . "-" . substr($mac, 2, 2) . "-" . substr($mac, 4, 2) . "-" . substr($mac, 6, 2) . "-" . substr($mac, 8, 2) . "-" . substr($mac, 10, 2);
+ $macfile = "/01-" . substr($mac, 0, 2) . "-" . substr($mac, 2, 2) . "-" . substr($mac, 4, 2) . "-" . substr($mac, 6, 2) . "-" . substr($mac, 8, 2) . "-" . substr($mac, 10, 2);
// Eliminar el fichero.
- @unlink($macfile);
+ @unlink(PXEDIRBIOS.$macfile);
+ @unlink(PXEDIRUEFI.$macfile);
}
/**
* updateBootMode ($cmd, $idfield, $idvalue, $lang)
* @brief Ejecuta la función para componer fichero PXE para todos los clientes que cumplan
* con un determinado criterio de búsqueda basado en clave ejena.
- * @param {Object} cmd Objeto de conexión con la base de datos.
- * @param {String} idfield Campo identificador de la clave ajena para buscar ordenadores.
- * @param {Number} idvalue Valor a buscar en el ídentificador de la clave ajena.
- * @param {String} lang Idioma de arranque.
+ * @param Object cmd Objeto de conexión con la base de datos.
+ * @param String idfield Campo identificador de la clave ajena para buscar ordenadores.
+ * @param Integer idvalue Valor a buscar en el ídentificador de la clave ajena.
+ * @param String lang Idioma de arranque.
* @versión 1.0.5 - Primera versión, adaptada de NetBoot Avanzado.
* @authors Ramón Gómez - ETSII Universidad de Sevilla
* @date 2013-04-25
@@ -216,7 +142,7 @@ function updateBootMode ($cmd, $idfield, $idvalue, $lang) {
$idvalue = mysqli_real_escape_string ($cmd->Conexion->controlador, $idvalue);
// Obtener los ordenadores asociados al aula y sus plantillas de arranque.
- $cmd->texto = "SELECT idordenador AS hostid, arranque AS bootopt
+ $cmd->texto = "SELECT nombreordenador AS hostname, arranque AS bootopt
FROM ordenadores
WHERE $idfield=$idvalue";
$rs = new Recordset;
@@ -224,11 +150,12 @@ function updateBootMode ($cmd, $idfield, $idvalue, $lang) {
if ($rs->Abrir()) {
$rs->Primero();
while (! $rs->EOF) {
- $hostid=$rs->campos["hostid"];
- if (! empty ($hostid)) {
+ $hostname=$rs->campos["hostname"];
+ if (! empty ($hostname)) {
$bootopt=$rs->campos["bootopt"];
+
// Volver a crear el fichero de arranque.
- createBootMode ($cmd, $bootopt, $hostid, $lang);
+ createBootMode ($cmd, $bootopt, $hostname, $lang);
}
$rs->Siguiente();
}
@@ -239,9 +166,9 @@ function updateBootMode ($cmd, $idfield, $idvalue, $lang) {
/**
* updateBootRepo ($cmd, $repoid)
* @brief Actualiza la IP del repositorio en los ficheros PXE de todos sus equipos asociados.
- * @param {Object} cmd Objeto de conexión con la base de datos
- * @param {Integer} repoid Campo identificador del repositorio
- * @return {Integer} 0, sin errores; -1, error acceso a BD; >0, ficheros no modificados
+ * @param Object cmd Objeto de conexión con la base de datos
+ * @param Integer repoid Campo identificador del repositorio
+ * @return Integer 0, sin errores; -1, error acceso a BD; >0, ficheros no modificados
* @versión 1.1.0 - Primera versión.
* @authors Ramón Gómez - ETSII Universidad de Sevilla
* @date 2018-01-19
@@ -261,13 +188,15 @@ function updateBootRepo ($cmd, $repoid) {
$mac = $rs->campos["mac"];
$repo = $rs->campos["iprepo"];
// Obtener nombre de fichero PXE a partir de la MAC del ordenador cliente.
- $macfile = PXEDIR . "/01-" . substr($mac, 0, 2) . "-" . substr($mac, 2, 2) . "-" . substr($mac, 4, 2) . "-" . substr($mac, 6, 2) . "-" . substr($mac, 8, 2) . "-" . substr($mac, 10, 2);
+ $macfile = "/01-" . substr($mac, 0, 2) . "-" . substr($mac, 2, 2) . "-" . substr($mac, 4, 2) . "-" . substr($mac, 6, 2) . "-" . substr($mac, 8, 2) . "-" . substr($mac, 10, 2);
// Actualizar parámetro "ogrepo" en el fichero PXE.
- if ($pxecode = @file_get_contents($macfile)) {
+ foreach (array (PXEDIRBIOS,PXEDIRUEFI) as $bootdir) {
+ if ($pxecode = @file_get_contents($bootdir.$macfile)) {
$pxecode = preg_replace("/ogrepo=[^ ]*/", "ogrepo=$repo", $pxecode);
- if (! @file_put_contents($macfile, $pxecode)) {
- $erros++;
+ if (! @file_put_contents($bootdir.$macfile, $pxecode)) {
+ $errors++;
}
+ }
}
$rs->Siguiente();
}