From 8d4c0f0f27f064fae5f7b9f3baca5efe1b079725 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Wed, 14 Jan 2004 19:33:58 +0000 Subject: [PATCH] Todavia no se probo en servidores. Se agrego funcionalidad que no estaba lista en la revision anterior --- lib/YATTA/Controlador.php | 41 +++++++++++++++++++++++++----- lib/YATTA/ProcesoDB.php | 1 + script/servidores/YATTA_Server.php | 10 +++++++- test/rename.php | 9 +++++++ 4 files changed, 54 insertions(+), 7 deletions(-) create mode 100755 test/rename.php diff --git a/lib/YATTA/Controlador.php b/lib/YATTA/Controlador.php index ec4790b..a1ba0db 100644 --- a/lib/YATTA/Controlador.php +++ b/lib/YATTA/Controlador.php @@ -142,7 +142,6 @@ class YATTA_Controlador { //Actualizo la base procesos $sql = 'UPDATE yatta.procesos SET status = '. $status; - if (@$nota) { $sql.= ', nota = '. $nota; } @@ -153,16 +152,46 @@ class YATTA_Controlador { $sql.= ', notificar = '. $notificar; } $sql.= ' WHERE id = '. $id_proceso; - $res = $db->query($sql); - // Si hay error lo devuelve. if (DB::isError($res)) { return $res; } - //@TODO Aca notificar -// if (@$notificar) { -// } + //NOTIFICO + if (@$notificar) { + $res = $db->query( + "SELECT p.descripcion AS descripcion, p.owner AS owner, ". + "p.destinos AS destinos ". + "FROM yatta.procesos AS p"/ + "WHERE p.id = ". $id_proceso); + if (DB::isError($res)) { + return $res; + } + $res = $res->fetchRow(DB_FETCHMODE_ASSOC); + $dest = split (',', @$res['destinos']); + $to = $owner.'.gov.ar'; + foreach ($dest as $d) { + $to = $to . ", $d.gov.ar"; + } + $headers = "From: Intranet - YATTA \r\n"; + $subject = "Proceso finalizado"; + $body = "El proceso:\n". + $res['descripcion'] . + "\nha finalizado. Puede verificar el estado de finalizacion\n". + "en el sistema YATTA dentro de la intranet.\n". + "\n\n\n". + "************************************************************\n". + "Este es un mensaje generado automaticamente por MECON_YATTA.\n". + "Por favor no responder a esta direccion de e-mail.\n". + "************************************************************\n"; + mail($to, $subject, $body, $headers); + } + + //COPIO EL ARCHIVO + if (@$archivo) { + $arch = basename ($archivo); + rename ($archivo, '/var/www/yatta_tacho/'.$arch); + } //Actualizo los servidores $SERVER =& new YATTA_Servidor; diff --git a/lib/YATTA/ProcesoDB.php b/lib/YATTA/ProcesoDB.php index 3540c3f..5e0138b 100644 --- a/lib/YATTA/ProcesoDB.php +++ b/lib/YATTA/ProcesoDB.php @@ -501,6 +501,7 @@ class YATTA_ProcesoDB extends MECON_DBO { 'prioridad' => $this->prioridad, 'scheduling' => $this->scheduling, 'notificar' => $this->notificar, + 'resultado' => $this->resultado, ); } } diff --git a/script/servidores/YATTA_Server.php b/script/servidores/YATTA_Server.php index 40d38d2..5f7ae01 100755 --- a/script/servidores/YATTA_Server.php +++ b/script/servidores/YATTA_Server.php @@ -89,6 +89,8 @@ while (1) { //Si hay un proceso lo lanzo {{{ if (@$proceso) { + + yatta_log ('Hay un nuevo proceso. Se forkea'); $pid = pcntl_fork(); //FORK ERROR {{{ @@ -104,9 +106,11 @@ while (1) { //FORK PADRE {{{ elseif ($pid) { + yatta_log ('Fork Padre.') //Espero a que termine el proceso. while (($wapid = pcntl_waitpid ($pid, $status, WNOHANG)) != $pid) { if ($CONTROLADOR->abortar($db, $proceso['id'])) { + yatta_log ('Hay que abortar el proceso en ejecucion.'); posix_kill($pid, 15); //SIGTERM $CONTROLADOR->terminarProceso($db, $proceso['id'], $YATTA_SERVER['id'], 4); @@ -120,10 +124,12 @@ while (1) { //FORk HIJO {{{ else { + yatta_log ('Fork Hijo.') require_once $proceso['script']; if (function_exists('create_process')) { $SCRIPT =& create_process(); + yatta_log ('Se instancio el proceso. Se ejecuta el metodo run.'); $SCRIPT->run(); } else { @@ -143,6 +149,7 @@ while (1) { $CONROLADOR->terminarProceso($db, $proceso['id'], $YATTA_SERVER['id'], $estado, @$SCRIPT->error, @$SCRIPT->archivo, @$SCRIPT->notificar); + yatta_log ('Finalizo el proceso.') } //}}} @@ -151,7 +158,7 @@ while (1) { //No hay proceso {{{ else { - yatta_log('No hay procesos asignados a este servidor.'); + yatta_log ('No hay procesos asignados a este servidor.'); sleep(60); } //}}} @@ -160,6 +167,7 @@ while (1) { //}}} //CIERRO EL ARCHIVO DE LOG {{{ +yatta_log ('*************** Finaliza EjecuciĆ³n ***************'); fclose ($FH); //}}} ?> \ No newline at end of file diff --git a/test/rename.php b/test/rename.php new file mode 100755 index 0000000..25bf964 --- /dev/null +++ b/test/rename.php @@ -0,0 +1,9 @@ +#!/usr/bin/php4 -qC + -- 2.43.0