summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/comandos
diff options
context:
space:
mode:
authoralbertogp <albertogp@uma.es>2021-03-23 10:27:18 +0100
committeralbertogp <albertogp@uma.es>2021-03-23 10:27:18 +0100
commit9aebade3419d33a1c986f7b3db1b69a414bfacac (patch)
treecc211a0e35636b51ea2752a3bc96dc6f72be2ec3 /admin/WebConsole/comandos
parentac2d1cc7e4de0632d458c69d3305c72d1d4b6156 (diff)
"ID-824 Modificando comando setBootMode por bootOs"
Diffstat (limited to 'admin/WebConsole/comandos')
-rw-r--r--admin/WebConsole/comandos/RestaurarImagen.php2
-rw-r--r--admin/WebConsole/comandos/gestores/gestor_Comandos.php117
-rw-r--r--admin/WebConsole/comandos/includes/formularioacciones.php3
-rw-r--r--admin/WebConsole/comandos/includes/opcionesacciones.php27
4 files changed, 107 insertions, 42 deletions
diff --git a/admin/WebConsole/comandos/RestaurarImagen.php b/admin/WebConsole/comandos/RestaurarImagen.php
index 21fdda46..2a9a73c0 100644
--- a/admin/WebConsole/comandos/RestaurarImagen.php
+++ b/admin/WebConsole/comandos/RestaurarImagen.php
@@ -84,7 +84,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"];
$cadenaid="";
$cadenaip="";
$cadenamac="";
- RecopilaIpesMacs($cmd,$ambito,$idambito);
+ RecopilaIpesMacs($cmd,$ambito,$idambito);
?>
<FORM action="RestaurarImagen.php" name="fdatos" method="POST">
<INPUT type="hidden" name="idambito" value="<?php echo $idambito?>">
diff --git a/admin/WebConsole/comandos/gestores/gestor_Comandos.php b/admin/WebConsole/comandos/gestores/gestor_Comandos.php
index c58c1981..102b51b3 100644
--- a/admin/WebConsole/comandos/gestores/gestor_Comandos.php
+++ b/admin/WebConsole/comandos/gestores/gestor_Comandos.php
@@ -36,18 +36,6 @@ define('OG_CMD_ID_CREATE_INCREMENTAL_IMAGE', 14);
define('OG_CMD_ID_RESTORE_INCREMENTAL_IMAGE', 15);
define('OG_CMD_ID_SENDMESSAGE', 16);
-function clean_shell_params($cmd_id, $params) {
- switch ($cmd_id) {
- case OG_CMD_ID_DELETE_CACHED_IMAGE:
- $params = substr($params, 0, -1);
- case OG_CMD_ID_SCRIPT:
- $params = rawurldecode($params);
- break;
- }
-
- return $params;
-}
-
function run_command($idcomando, $cadenaip, $cadenamac, $atributos) {
global $cmd;
switch ($idcomando) {
@@ -91,16 +79,15 @@ function run_command($idcomando, $cadenaip, $cadenamac, $atributos) {
software($cadenaip, $atributos);
break;
case OG_CMD_ID_SCRIPT:
- shell(3, $cadenaip, $atributos);
- break;
case OG_CMD_ID_DELETE_CACHED_IMAGE:
- shell(4, $cadenaip, $atributos);
+ shell(3, $cadenaip, $atributos);
break;
}
}
// Recoge parametros de seguimiento
$sw_ejya="";
+$sw_ejsis=""; ////////////////agp
$sw_seguimiento="";
$sw_ejprg="";
$sw_mkprocedimiento="";
@@ -115,6 +102,8 @@ $idtarea="";
$ordtarea=0;
if (isset($_POST["sw_ejya"])) $sw_ejya=$_POST["sw_ejya"];
+if (isset($_POST["sw_ejsis"])) $sw_ejsis=$_POST["sw_ejsis"]; ///////////////////////////////////agp
+if (isset($_POST["sw_ejsis_mbr"])) $sw_ejsis_mbr=$_POST["sw_ejsis_mbr"]; ///////////////////////agp
if (isset($_POST["sw_seguimiento"])) $sw_seguimiento=$_POST["sw_seguimiento"];
if (isset($_POST["sw_ejprg"])) $sw_ejprg=$_POST["sw_ejprg"];
@@ -136,6 +125,10 @@ $cmd=CreaComando($cadenaconexion);
if (!$cmd)
Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
//__________________________________________________________________
+if($funcion=="RestaurarImagenCache") {$funcion="RestaurarImagen";}
+if($funcion=="CrearImagenCache") {$funcion="CrearImagen";}
+if (isset($_POST["cadenaip"])) $adifiltro=$_POST["cadenaip"];
+if($descricomando=="Asistente Deploy de Imagenes") {$filtro=$adifiltro;}
$funcion="nfn=".$funcion.chr(13); // Nombre de la función que procesa el comando y el script que lo implementa
$aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
$acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
@@ -162,12 +155,75 @@ $cadenaid="";
$cadenaip="";
$cadenamac="";
$cadenaoga=""; // Clave de acceso a la API REST de OGAgent.
-
+//echo $descricomando;
if(!empty($filtro)){ // Ambito restringido a un subconjuto de ordenadores
if(substr($filtro,strlen($cadenaid)-1,1)==";") // Si el último caracter es una coma
$filtro=substr($filtro,0,strlen($filtro)-1); // Quita la coma
}
-RecopilaIpesMacs($cmd,$ambito,$idambito,$filtro);
+RecopilaIpesMacs($cmd,$ambito,$idambito,$filtro);//echo "hola".$ambito." - ".$idambito." - ".$filtro;
+
+###################################################################
+///////////////////// agp ///////////////////////////////////////
+###################################################################
+if($sw_ejya=='on'){
+ if( ($sw_ejsis == "0") && ($idcomando == "3" || $idcomando == "18") ){
+
+ // Buscamos el Numero de Disco
+ $disco=explode(chr(13),$atributos);
+ $disco=$disco[0];
+ $disco=explode("=",$disco);
+ $disco=$disco[1];
+
+ // =========================================
+ // Buscamos el Numero de Particion
+ $particion=explode(chr(13),$atributos);
+ $particion=$particion[1];
+ $particion=explode("=",$particion);
+ $particion=$particion[1];
+
+ // =========================================
+ // Asignamos el arranque
+ $insisresdisk=$disco." ".$particion;
+
+ $cadenaipsh=explode(";",$filtro);
+ for ($x=0;$x<count($cadenaipsh);$x++){
+ /*--------------------------------------------------------------------------------------------------------------------
+ Creacion del fichero .sh para cambiar la columna de arranque
+ --------------------------------------------------------------------------------------------------------------------*/
+ $ipsh=$cadenaipsh[$x];
+ $ficherosh = "/opt/opengnsys/log/clients/setBootMode/InSisRes.".$ipsh;
+ $ficherolanza=fopen($ficherosh,"w");
+ fwrite($ficherolanza,"#!/bin/bash
+
+ ##########################################
+ ipsh=\"".$ipsh."\"
+ ##########################################
+ #/*--------------------------------------------------------------------------------------------------------------------*/
+ #/* CAMBIAMOS EL NETBOOT AVANZADO */
+ #/*--------------------------------------------------------------------------------------------------------------------*/
+
+ # Matamos el proceso de deployImage
+ PROCDEPLOY=`ps -aux | grep deployImage | awk 'NR == 1' | awk '{ print $2 }' `
+ kill -9 \$PROCDEPLOY
+ sleep 2
+
+ # Borramos el fichero
+ rm /opt/opengnsys/log/setBootMode/InSisRes.$ipsh
+
+ # Iniciamos el Sistema
+ sleep 2
+ bootOs $insisresdisk
+
+ ");
+ fclose($ficherolanza);
+ exec("chmod 777 /opt/opengnsys/log/clients/setBootMode/InSisRes.".$ipsh."");
+ }
+ }
+}
+###################################################################
+///////////////////// agp ///////////////////////////////////////
+###################################################################
+
/*--------------------------------------------------------------------------------------------------------------------
Creación de parametros para sentencias SQL
@@ -209,14 +265,13 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){
$parametros=$funcion.$atributos;
$aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13);
if($sw_seguimiento==1 || $sw_ejprg=="on"){ // Switch de ejecución con seguimiento o comando programado
- $sesion = 0;
+ $sesion=time();
$cmd->ParamSetValor("@tipoaccion",$EJECUCION_COMANDO);
$cmd->ParamSetValor("@idtipoaccion",$idcomando);
$cmd->ParamSetValor("@descriaccion",$descricomando);
$cmd->ParamSetValor("@sesion",$sesion);
$cmd->ParamSetValor("@idcomando",$idcomando);
- $cmd->ParamSetValor("@parametros",
- clean_shell_params($idcomando, $parametros));
+ $cmd->ParamSetValor("@parametros",$parametros);
$cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s"));
if($sw_ejprg=="on") // Switch de ejecución con programación (se para el comando tarea para lanzarlo posteriormente)
$cmd->ParamSetValor("@estado",$ACCION_DETENIDA);
@@ -236,14 +291,7 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){
VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,
@sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idcentro)";
$resul=$cmd->Ejecutar();
- if ($i == 0) {
- $sesion = $cmd->Autonumerico();
- $cmd->ParamSetValor("@sesion",$sesion);
- }
}
- $cmd->texto = "UPDATE acciones SET sesion=@sesion ".
- "WHERE idaccion = @sesion";
- $resul=$cmd->Ejecutar();
$acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento
}
if (!$resul){
@@ -255,13 +303,11 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){
$ValorParametros=extrae_parametros($parametros,chr(13),'=');
$script=@urldecode($ValorParametros["scp"]);
if($sw_ejya=='on'){
- if ($sw_seguimiento == 1) {
- $resul = create_schedule_now(strval($sesion),
- $EJECUCION_PROCEDIMIENTO,
- "");
- } else {
+ if (($sw_seguimiento == 1 || $sw_ejprg == "on") &&
+ $idcomando != OG_CMD_ID_WAKEUP)
+ run_schedule($cadenaip);
+ else
run_command($idcomando, $cadenaip, $cadenamac, $atributos);
- }
// En agente nuevo devuelvo siempre correcto
$resulhidra = 1;
@@ -378,10 +424,7 @@ if($sw_mkprocedimiento=='on' || $sw_mktarea=='on'){
$cmd->ParamSetValor("@idprocedimiento",$idprocedimiento);
$cmd->ParamSetValor("@idcomando",$idcomando);
$cmd->ParamSetValor("@ordprocedimiento",$ordprocedimiento);
- if ($idcomando == OG_CMD_ID_SCRIPT)
- $parametros=$funcion.substr(rawurldecode($atributos), 0, -2);
- else
- $parametros=$funcion.$atributos;
+ $parametros=$funcion.$atributos;
$cmd->ParamSetValor("@parametros",$parametros);
$cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros)
VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)";
diff --git a/admin/WebConsole/comandos/includes/formularioacciones.php b/admin/WebConsole/comandos/includes/formularioacciones.php
index fadc915c..79b7eba3 100644
--- a/admin/WebConsole/comandos/includes/formularioacciones.php
+++ b/admin/WebConsole/comandos/includes/formularioacciones.php
@@ -9,13 +9,14 @@
// Formulario para paso de parametros comunes para la ejecución de comandos
// *************************************************************************************************************************************************
?>
-<FORM name="fdatosejecucion" action="<?php echo $gestor?>" method="post">
+<FORM name="fdatosejecucion" id="fdatosejecucion" action="<?php echo $gestor?>" method="post">
<INPUT type="hidden" name="idcomando" value="<?php echo $idcomando?>">
<INPUT type="hidden" name="descricomando" value="<?php echo $descricomando?>">
<INPUT type="hidden" name="ambito" value="<?php echo $ambito?>">
<INPUT type="hidden" name="idambito" value="<?php echo $idambito?>">
<INPUT type="hidden" name="funcion" value="<?php echo $funcion?>">
<INPUT type="hidden" name="atributos" value="<?php echo $atributos?>">
+ <INPUT type="hidden" name="sw_ejsis" value="<?php echo $sw_ejsis?>">
<INPUT type="hidden" name="gestor" value="<?php echo $gestor?>">
<INPUT type="hidden" name="filtro" value="">
diff --git a/admin/WebConsole/comandos/includes/opcionesacciones.php b/admin/WebConsole/comandos/includes/opcionesacciones.php
index 7842d3a3..7341237b 100644
--- a/admin/WebConsole/comandos/includes/opcionesacciones.php
+++ b/admin/WebConsole/comandos/includes/opcionesacciones.php
@@ -9,6 +9,7 @@
// Opciones comunes para la ejecución de comandos
// *************************************************************************************************************************************************
?>
+
<P align=center><span align=center class=subcabeceras><?php echo $TbMsgAux[0] ?></span></P>
<?php if ($ambito !=16 ){ ?>
<INPUT type="hidden" name="ambito" value="<?php echo $ambito?>">
@@ -22,14 +23,34 @@
<BR>
<?php }?>
<TABLE align=center class=opciones_ejecucion BORDER=0>
+<!-------------------------------------------------AGP-------------------------------------------------------------------------------->
+ <TR>
+ <TD colspan=4>
+ <?php if ($funcion == "RestaurarImagen" || $funcion == "RestaurarImagenCache" ){ ?>
+ <TABLE id="tabla_conf" class="tabla_listados" align=right border="2" cellpadding="1" cellspacing="1">
+ <TR>
+ <TH colspan=3><?php echo $TbMsgAux[13]; ?>&nbsp;</TH>
+ <TH align="center"><INPUT name=sw_ejsis type=checkbox checked value=0></TH>
+
+ </TR>
+ </TABLE>
+ <?php } ?>
+ </TD>
+ </TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ <TR HEIGHT=5><TD colspan=4><HR></TD></TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+<!-------------------------------------------------AGP-------------------------------------------------------------------------------->
<TR>
<TD><INPUT name=sw_ejya type=checkbox checked></TD>
- <TD colspan=3> <?php echo $TbMsgAux[1] ?> &nbsp; </TD>
+ <TD colspan=2> <?php echo $TbMsgAux[1] ?> &nbsp; </TD>
+ <TD rowspan="3">
+ </TD>
</TR>
<TR>
<TD>&nbsp; </TD>
<TD><INPUT name=sw_seguimiento type=radio value=1></TD><TD><?php echo $TbMsgAux[2] ?>&nbsp;</TD>
- </TR>
+ </TR>
<TR>
<TD>&nbsp; </TD>
<TD><INPUT checked name=sw_seguimiento type=radio value=0></TD><TD><?php echo $TbMsgAux[3] ?>&nbsp;</TD>
@@ -66,7 +87,7 @@
<TD><?php echo $TbMsgAux[8] ?>&nbsp;</TD>
<TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30px" name=ordprocedimiento type=text value=""></TD></TR>
<!-------------------------------------------------------------------------------------------------------------------------------->
- <TR><TD colspan=4 HEIGHT="10px">&nbsp; <HR></TD></TR>
+ <TR><TD colspan=4 HEIGHT="10">&nbsp; <HR></TD></TR>
<!-------------------------------------------------------------------------------------------------------------------------------->
<TR>
<TD><INPUT onclick="clic_mktarea(this)" name=sw_mktarea type=checkbox></TD>