summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/comandos/gestores
diff options
context:
space:
mode:
authoralbertogp <albertogp@uma.es>2021-03-23 10:27:18 +0100
committeralbertogp <albertogp@uma.es>2021-05-03 17:05:04 +0200
commitbea5a3c1d0b667694ccf3d18c569fe3ef0d28bb7 (patch)
tree050f3ac6a36492e053640ab12cfb99a56d0052d0 /admin/WebConsole/comandos/gestores
parent6747826c962cc3862446a4fb851858b5de196427 (diff)
"ID-824 Modificando comando setBootMode por bootOs"
Diffstat (limited to 'admin/WebConsole/comandos/gestores')
-rw-r--r--admin/WebConsole/comandos/gestores/gestor_Comandos.php117
1 files changed, 80 insertions, 37 deletions
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)";