source: admin/WebConsole/gestores/gestor_colasacciones.php @ 03e3f88

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacion
Last change on this file since 03e3f88 was 1d380e5, checked in by OpenGnSys Support Team <soporte-og@…>, 6 years ago

#915 Adapt web to use the new run/schedule cmd in REST API

This patch implements run/schedule in the set of available PHP functions.
It also replaces old SocketHidra? commands by run/schedule in
gestor_colasacciones.php and gestor_ejecutaracciones.php.

  • Property mode set to 100644
File size: 5.9 KB
Line 
1<?php
2// *************************************************************************************************************************************************
3// Aplicación WEB: ogAdmWebCon
4// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
5// Fecha Creación: Año 2009-2010
6// Fecha Última modificación: Agosto-2010
7// Nombre del fichero: colasacciones.php
8// Descripción :
9//              Gestiona las operaciones realizadas sobre las acciones registradas
10// *************************************************************************************************************************************************
11
12include_once("../includes/ctrlacc.php");
13include_once("../includes/TomanDatos.php");
14include_once("../clases/AdoPhp.php");
15include_once("../includes/constantes.php");
16include_once("../includes/comunes.php");
17include_once("../includes/CreaComando.php");
18include_once("../clases/SockHidra.php");
19include_once("../includes/restfunctions.php");
20//________________________________________________________________________________________________________
21       
22$opcion=0; // Inicializa parametros
23$acciones="";
24
25if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
26if (isset($_POST["acciones"])) $acciones=$_POST["acciones"];
27
28$cmd=CreaComando($cadenaconexion); // Crea objeto comando
29$resul=false;
30if ($cmd){
31        $resul=gestiona($cmd,$opcion,$acciones);
32        $cmd->Conexion->Cerrar();
33}
34if($resul)
35        echo $opcion; // Proceso con éxito, devuelve la opción
36else
37        echo 0; // Proceso con algún error, devuelve cero
38//
39// *****************************************************************************************************************
40//
41function gestiona($cmd,$opcion,$acciones){
42
43        global $ACCION_EXITOSA;
44        global $ACCION_FALLIDA;
45        global $ACCION_SINRESULTADO;
46       
47        global $LITACCION_EXITOSA;
48        global $LITACCION_FALLIDA;
49       
50        global $ACCION_DETENIDA;
51        global $ACCION_INICIADA;
52        global $ACCION_FINALIZADA;
53
54        $tbAcciones=explode(";",$acciones);
55        for($i=0;$i<sizeof($tbAcciones)-1;$i++){
56                list($tipoaccion,$idtipoaccion,$sesion,$idaccion)=explode(",",$tbAcciones[$i]);
57                switch($opcion){
58               
59                        case 1: // Eliminar ============================================================
60                                $cmd->texto="DELETE  FROM  acciones ";
61                                if(!empty($idaccion))
62                                        $cmd->texto.=" WHERE idaccion=".$idaccion;
63                                else
64                                        $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion;
65                                $resul=$cmd->Ejecutar();
66                                break;
67                               
68                        case  2: // Reiniciar ============================================================
69                                /* Recordset para envío de comando actualizar */
70                                $cmd->texto="SELECT     count(*) as con,
71                                                                        group_concat(cast(ordenadores.idordenador AS char( 11 ) ) SEPARATOR ',' ) AS cadenaid,
72                                                                        group_concat(ordenadores.ip SEPARATOR ';' ) AS cadenaip
73                                                                FROM acciones
74                                                                INNER JOIN ordenadores ON ordenadores.idordenador=acciones.idordenador";
75                                if(!empty($idaccion))
76                                        $cmd->texto.=" WHERE idaccion=".$idaccion;
77                                else   
78                                        $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion."
79                                                                        AND sesion=".$sesion;
80                                                       
81                                $rs=new Recordset;
82                                $rs->Comando=&$cmd;
83                                if (!$rs->Abrir()) return(false); // Error al abrir recordset
84                                if ($rs->EOF) return(true); // No existen registros                     
85                                $aplicacion="ido=".$rs->campos["cadenaid"].chr(13)."iph=".$rs->campos["cadenaip"].chr(13);
86
87                                /* Update de la tabla */
88                                $cmd->texto="UPDATE acciones
89                                                SET estado=".$ACCION_INICIADA.",resultado=".$ACCION_SINRESULTADO.",descrinotificacion='',fechahorafin=DEFAULT";
90                                if(!empty($idaccion))
91                                        $cmd->texto.=" WHERE idaccion=".$idaccion;
92                                else   
93                                        $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion;
94                                $resul=$cmd->Ejecutar();
95                                if($resul)
96                                        run_schedule($rs->campos["cadenaip"]);
97                                break; 
98                               
99                        case  3: // Para acciones ============================================================
100                                $cmd->texto="UPDATE acciones SET estado=".$ACCION_DETENIDA;
101                                if(!empty($idaccion))
102                                        $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_INICIADA;
103                                else   
104                                        $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_INICIADA;
105                                $resul=$cmd->Ejecutar();
106                                break; 
107                               
108                        case  4: // Reanuda acciones ============================================================
109                                $cmd->texto="UPDATE acciones SET estado=".$ACCION_INICIADA;
110                                if(!empty($idaccion))
111                                        $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_DETENIDA;
112                                else
113                                        $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_DETENIDA;
114                                $resul=$cmd->Ejecutar();
115                                break; 
116                               
117                        case  5: // Finalizar sin errores ============================================================
118                                $ahora=date("y/m/d H:i:s");
119                                $cmd->texto="UPDATE acciones SET estado=".$ACCION_FINALIZADA.",resultado=".$ACCION_EXITOSA.",
120                                                        fechahorafin='".$ahora."'".",descrinotificacion='".$LITACCION_EXITOSA."'";
121                                if(!empty($idaccion))
122                                        $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_INICIADA;
123                                else
124                                        $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_INICIADA;
125                                $resul=$cmd->Ejecutar();
126                                break; 
127                               
128                        case  6: // Finalizar con errores ============================================================
129                                $ahora=date("y/m/d H:i:s");
130                                $cmd->texto="UPDATE acciones SET estado=".$ACCION_FINALIZADA.",resultado=".$ACCION_FALLIDA.",
131                                                        fechahorafin='".$ahora."'".",descrinotificacion='".$LITACCION_FALLIDA."'";
132                                if(!empty($idaccion))
133                                        $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_INICIADA;
134                                else
135                                        $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_INICIADA;
136                                $resul=$cmd->Ejecutar();
137                                break;                                 
138                }
139                //echo $cmd->texto;
140        }
141        return($resul);
142}
Note: See TracBrowser for help on using the repository browser.