]> git.llucax.com Git - mecon/yatta.git/commitdiff
Todavia no se probo en servidores. Se agrego funcionalidad que no estaba lista en...
authorMartín Marrese <marrese@gmail.com>
Wed, 14 Jan 2004 19:33:58 +0000 (19:33 +0000)
committerMartín Marrese <marrese@gmail.com>
Wed, 14 Jan 2004 19:33:58 +0000 (19:33 +0000)
lib/YATTA/Controlador.php
lib/YATTA/ProcesoDB.php
script/servidores/YATTA_Server.php
test/rename.php [new file with mode: 0755]

index ec4790b7809776f4d39bc8083ff28a4297d64a21..a1ba0dbc6bf6e12dbaae9037e4f287fcad226e74 100644 (file)
@@ -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 <intranet@mecon.gov.ar>\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;
index 3540c3f5eb85baeb371a4d47d2b9aa6180d873e3..5e0138b3cadb409adfd21ee4ab7c1627db942324 100644 (file)
@@ -501,6 +501,7 @@ class YATTA_ProcesoDB extends MECON_DBO {
                         'prioridad'     => $this->prioridad,
                         'scheduling'    => $this->scheduling,
                         'notificar'     => $this->notificar,
+                        'resultado'     => $this->resultado,
                 );
     }
 }
index 40d38d2c565dad117cb8f8f71b3a796cbd01ae39..5f7ae014b45f6705860502689d2b3226ae2038cc 100755 (executable)
@@ -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 (executable)
index 0000000..25bf964
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/php4 -qC
+<?php
+
+touch('/tmp/yatta_rename');
+
+rename ('/tmp/yatta_rename',
+        '/home/mmarrese/public_html/yatta/test/yatta_rename');
+
+?>