From bea5a3c1d0b667694ccf3d18c569fe3ef0d28bb7 Mon Sep 17 00:00:00 2001 From: albertogp Date: Tue, 23 Mar 2021 10:27:18 +0100 Subject: "ID-824 Modificando comando setBootMode por bootOs" --- .../WebConsole/asistentes/AsistenteDeployImage.php | 32 +++++- .../includes/asistentes/formDeployImage.php | 6 +- .../asistentes/includes/capturaacciones.php | 2 + .../asistentes/includes/formularioacciones.php | 5 +- .../asistentes/includes/opcionesacciones.php | 19 +++- admin/WebConsole/comandos/RestaurarImagen.php | 2 +- .../comandos/gestores/gestor_Comandos.php | 117 ++++++++++++++------- .../comandos/includes/formularioacciones.php | 3 +- .../comandos/includes/opcionesacciones.php | 27 ++++- .../php/cat/comandos/opcionesacciones_cat.php | 1 + .../php/eng/comandos/opcionesacciones_eng.php | 1 + .../php/esp/comandos/opcionesacciones_esp.php | 1 + client/shared/scripts/deployImage | 6 ++ installer/opengnsys_installer.sh | 4 +- installer/opengnsys_update.sh | 8 +- 15 files changed, 182 insertions(+), 52 deletions(-) diff --git a/admin/WebConsole/asistentes/AsistenteDeployImage.php b/admin/WebConsole/asistentes/AsistenteDeployImage.php index ddf38e67..e67472f3 100644 --- a/admin/WebConsole/asistentes/AsistenteDeployImage.php +++ b/admin/WebConsole/asistentes/AsistenteDeployImage.php @@ -47,12 +47,28 @@ if (!$cmd) '?> '?> '?> - + + + aulas 16->ordenadores # idambito: id de los elementos en su correspondiente tabla-ambito (aulas, ordenadores...) # nombreambito: nombre del elemento. @@ -70,7 +86,13 @@ switch($ambito){ $urlimg='../images/iconos/aula.gif'; $textambito=$TbMsg[2]; if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; - if (isset($_GET["litambito"])) $litambito=$_GET["litambito"]; + if (isset($_GET["litambito"])) $litambito=$_GET["litambito"]; + // agp ______________________________________ + $cadenaid=""; + $cadenaip=""; + $cadenamac=""; + RecopilaIpesMacs($cmd,$ambito,$idambito); + // agp ______________________________________ break; case $AMBITO_GRUPOSORDENADORES : $urlimg='../images/iconos/carpeta.gif'; @@ -81,6 +103,12 @@ switch($ambito){ $textambito=$TbMsg[4]; if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; if (isset($_GET["litambito"])) $litambito=$_GET["litambito"]; + // agp ______________________________________ + $cadenaid=""; + $cadenaip=""; + $cadenamac=""; + RecopilaIpesMacs($cmd,$ambito,$idambito); + // agp ______________________________________ break; } echo '

'.$TbMsg["WDI11"].' 
'; diff --git a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php index 4cbe1916..9fb801df 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php +++ b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php @@ -15,9 +15,9 @@ for($cfgIndex = 0; $cfgIndex < $conKeys; $cfgIndex++){ ?>
-
-
- +
+
+ diff --git a/admin/WebConsole/asistentes/includes/capturaacciones.php b/admin/WebConsole/asistentes/includes/capturaacciones.php index 3c24bce0..7e793f96 100644 --- a/admin/WebConsole/asistentes/includes/capturaacciones.php +++ b/admin/WebConsole/asistentes/includes/capturaacciones.php @@ -18,6 +18,7 @@ $nombreambito=""; $funcion=""; $atributos=""; $gestor=""; +$filtro=""; if (isset($_POST["idcomando"])) $idcomando=$_POST["idcomando"]; if (isset($_POST["descricomando"])) $descricomando=$_POST["descricomando"]; @@ -27,5 +28,6 @@ if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"]; if (isset($_POST["funcion"])) $funcion=$_POST["funcion"]; if (isset($_POST["atributos"])) $atributos=$_POST["atributos"]; if (isset($_POST["gestor"])) $gestor=$_POST["gestor"]; +if (isset($_POST["filtro"])) $filtro=$_POST["filtro"]; diff --git a/admin/WebConsole/asistentes/includes/formularioacciones.php b/admin/WebConsole/asistentes/includes/formularioacciones.php index ab61879d..66dba1ba 100644 --- a/admin/WebConsole/asistentes/includes/formularioacciones.php +++ b/admin/WebConsole/asistentes/includes/formularioacciones.php @@ -9,12 +9,15 @@ // Formulario para paso de parametros comunes para la ejecución de comandos // ************************************************************************************************************************************************* ?> -

+ + + + diff --git a/admin/WebConsole/asistentes/includes/opcionesacciones.php b/admin/WebConsole/asistentes/includes/opcionesacciones.php index 31601278..c4984025 100644 --- a/admin/WebConsole/asistentes/includes/opcionesacciones.php +++ b/admin/WebConsole/asistentes/includes/opcionesacciones.php @@ -10,8 +10,6 @@ // ************************************************************************************************************************************************* ?>

- - @@ -21,6 +19,23 @@
+ + + + + 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); ?> 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;$xParamSetValor("@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 // ************************************************************************************************************************************************* ?> - + + 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 // ************************************************************************************************************************************************* ?> +

@@ -22,14 +23,34 @@
+ +
+ + + + + + +
 
+
+ +
 
+ + + + + + + + - + + - + @@ -66,7 +87,7 @@ - + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php index 6bc85e0d..01b4f993 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php @@ -18,3 +18,4 @@ $TbMsgAux[10]='Guardar como a tasca nova' ; $TbMsgAux[11]='Incluir-ho en una tasca existent' ; $TbMsgAux[12]='Ordre d\'execució'; + $TbMsgAux[13]=' Inicia Sistema Restaurat '; \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php index ba4dd30a..1fb68e2b 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/opcionesacciones_eng.php @@ -18,3 +18,4 @@ $TbMsgAux[10]='Save as a new task ' ; $TbMsgAux[11]='Add to an existing task ' ; $TbMsgAux[12]='Running sequence'; + $TbMsgAux[13]=' Start Restored System'; \ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php index d2f123ed..64d6b266 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php @@ -18,3 +18,4 @@ $TbMsgAux[10]='Guardar como una tarea nueva' ; $TbMsgAux[11]='Incluir en una tarea existente' ; $TbMsgAux[12]='Orden de ejecución'; + $TbMsgAux[13]=' Iniciar Sistema Restaurado'; \ No newline at end of file diff --git a/client/shared/scripts/deployImage b/client/shared/scripts/deployImage index d74d3ac2..db82539a 100755 --- a/client/shared/scripts/deployImage +++ b/client/shared/scripts/deployImage @@ -212,6 +212,9 @@ else fi RETVAL=$? +# Marca de Iniciar Sistema Restaurado +InSisRes="/opt/opengnsys/log/setBootMode/InSisRes."$(ogGetIpAddress) + # Mostrar resultados. RESUMERESTOREIMAGE=$(grep -m 1 "Total Time:" $OGLOGCOMMAND) ogEcho log session " [ ] $RESUMERESTOREIMAGE " @@ -220,6 +223,7 @@ if [ $RETVAL -ne 0 ] ; then ogRaiseError session $OG_ERR_IMAGE "$REPO $IMGNAME" 2>&1 # Muestro registro de fin de ejecución si no viene de Ejecutar Script [ "$(ogGetCaller)" == "EjecutarScript" ] || ogEcho log session "$MSG_INTERFACE_END $OG_ERR_IMAGE" + [ -f $InSisRes ] && rm -f $InSisRes ## Borrar Marca Iniciar Sistema Restaurado exit $OG_ERR_IMAGE fi TIME3=$[SECONDS-TIME3] @@ -241,6 +245,8 @@ ogEcho log session "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s" # Si se ha llamado desde ejecutar script no lo muestro para no repetir. if [ "$(ogGetCaller)" != "EjecutarScript" ] ; then ogEcho log session "$MSG_INTERFACE_END $RETVAL" + [ -f $InSisRes ] && ./$InSisRes &>/dev/null ## Iniciar Sistema Restaurado exit $RETVAL fi +[ -f $InSisRes ] && ./$InSisRes &>/dev/null ## Iniciar Sistema Restaurado \ No newline at end of file diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh index 972ea71a..406feb0f 100755 --- a/installer/opengnsys_installer.sh +++ b/installer/opengnsys_installer.sh @@ -1099,7 +1099,7 @@ function installWebFiles() errorAndLog "${FUNCNAME}(): Error copying web files." exit 1 fi - + # Descomprimir librerías: Slim y Swagger-UI. unzip -o $WORKDIR/opengnsys/admin/$SLIMFILE -d $INSTALL_TARGET/www/rest unzip -o $WORKDIR/opengnsys/admin/$SWAGGERFILE -d $INSTALL_TARGET/www/rest @@ -1245,6 +1245,8 @@ function createDirs() mkdir -p $path_opengnsys_base/etc mkdir -p $path_opengnsys_base/lib mkdir -p $path_opengnsys_base/log/clients + mkdir -p $path_opengnsys_base/log/clients/setBootMode + chmod 777 $path_opengnsys_base/log/clients/setBootMode ln -fs $path_opengnsys_base/log /var/log/opengnsys mkdir -p $path_opengnsys_base/sbin mkdir -p $path_opengnsys_base/www diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh index 3a21072d..2378a8b4 100755 --- a/installer/opengnsys_update.sh +++ b/installer/opengnsys_update.sh @@ -749,7 +749,7 @@ function updateWebFiles() perl -pi -e 's!http://!https://!g' $INSTALL_TARGET/www/controlacceso.php NEWFILES="$NEWFILES $INSTALL_TARGET/www/controlacceso.php" fi - + # Compatibilidad con dispositivos móviles. COMPATDIR="$INSTALL_TARGET/www/principal" for f in acciones administracion aula aulas hardwares imagenes menus repositorios softwares; do @@ -841,6 +841,12 @@ function createDirs() mkdir -p ${INSTALL_TARGET}/{bin,doc,etc,lib,sbin,www} mkdir -p ${INSTALL_TARGET}/{client,images/groups} mkdir -p ${INSTALL_TARGET}/log/clients + if [ ! -d ${INSTALL_TARGET}/log/clients/setBootMode ]; then + mkdir -p ${INSTALL_TARGET}/log/clients/setBootMode + chmod 777 ${INSTALL_TARGET}/log/clients/setBootMode + else + chmod 777 ${INSTALL_TARGET}/log/clients/setBootMode + fi ln -fs ${INSTALL_TARGET}/log /var/log/opengnsys # Detectar directorio de instalación de TFTP. if [ ! -L ${INSTALL_TARGET}/tftpboot ]; then -- cgit v1.2.3-18-g5258
+ + + + + + + +
 
+ +

    +