require_once 'YATTA/ProcesoDB.php';
require_once 'YATTA/Servidor.php';
+define ('PATH_TACHO', '/var/www/yatta_tacho/');
+
/**
* Clase para el manejo centralizado de toda la informacion de YATTA.
*
* @access private
*/
function _obtenerServidor($db) {
-
- //@FIXME La ponderacion esta mal. No tengo que buscar el que tenga mas
- //alta o mas baja OJO!!! Volver a pensar el calculo.
-
$res = $db->query('SELECT s.id, s.escala * s.procesos AS ponderacion
FROM yatta.servidores AS s
ORDER BY ponderacion ASC, s.escala DESC');
//COPIO EL ARCHIVO
if (@$archivo) {
$arch = basename ($archivo);
- rename ($archivo, '/var/www/yatta_tacho/'.$arch);
+ rename ($archivo, PATH_TACHO.$arch);
}
//Actualizo los servidores
* 2 = Finalizado
* 3 = Error
* 4 = Abortado
+ * 5 = Abortar
*
* @var int $status
* @access public
*/
function guardar($db = null, $nuevo = true)
{
-/*
- //@TODO PASAR ESTO A UNA CLASE SERVIDOR
- //Busco el servidor
- $res = $db->query('SELECT id, escala * procesos AS ponderacion
- FROM yatta.servidores
- ORDER BY ponderacion, escala');
- $res = $res->fetchRow(DB_FETCHMODE_ASSOC);
- // Si hay error lo devuelve.
- if (DB::isError($res)) {
- return $res;
- }
- $this->server = $res['id'];
- //Asigno la fecha
- if (@is_null($this->fecha)) {
- $this->fecha = date ('Y-m-d');
- }
-
- if ($nuevo) {
- $datos = array (
- 'fecha' => $this->fecha,
- 'script' => $this->script,
- 'id_sistema' => $this->id_sistema,
- 'descripcion' => $this->descripcion,
- 'pid' => $this->pid,
- 'server' => $this->server,
- 'status' => $this->status,
- 'owner' => $this->owner,
- 'destinos' => $this->destinos,
- 'prioridad' => $this->prioridad,
- 'scheduling' => $this->scheduling,
- 'notificar' => $this->notificar,
- 'resultado' => $this->resultado,
- 'archivo' => $this->archivo,
- 'nota' => $this->nota
- );
-
- $res = $db->autoExecute('yatta.procesos', $datos,
- DB_AUTOQUERY_INSERT);
- }
- else {
- $datos = array (
- 'fecha' => $this->fecha,
- 'script' => $this->script,
- 'id_sistema' => $this->id_sistema,
- 'descripcion' => $this->descripcion,
- 'pid' => $this->pid,
- 'server' => $this->server,
- 'status' => $this->status,
- 'owner' => $this->owner,
- 'destinos' => $this->destinos,
- 'prioridad' => $this->prioridad,
- 'scheduling' => $this->scheduling,
- 'notificar' => $this->notificar,
- 'resultado' => $this->resultado,
- 'archivo' => $this->archivo,
- 'nota' => $this->nota
- );
-
- $res = $db->autoExecute('yatta.procesos', $datos,
- DB_AUTOQUERY_UPDATE, 'id = '.$this->id);
-
- }
-
- if (DB::isError($res)) {
- return $res;
- }
-
- return $db->query('
- UPDATE yatta.servidores
- SET procesos = procesos + 1
- WHERE id = '. $this->server);
-*/
}
/**
--- /dev/null
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-------------------------------------------------------------------------------
+ Ministerio de Economía
+ YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+YATTA! is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: mar ene 27 13:15:52 ART 2004
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+
+require_once 'MECON/DBO.php';
+require_once 'PEAR.php';
+
+/**
+ * Clase para el manejo de los servidores.
+ *
+ * @access public
+ */
+class YATTA_ServidorDB extends MECON_DBO {
+
+ /**
+ * Identificador del servidor.
+ *
+ * @var int $id
+ * @access public
+ */
+ var $id = null;
+
+ /**
+ * Nombre del servidor.
+ *
+ * @var string $nombre
+ * @access public
+ */
+ var $nombre = null;
+
+ /**
+ * Escala del servidor.
+ *
+ * @var int $escala
+ * @access public
+ */
+ var $escala = null;
+
+ /**
+ * Procesos que tiene asignado el servidor (incluye el proceso en
+ * ejecución).
+ *
+ * @var int $procesos
+ * @access public
+ */
+ var $procesos = null;
+
+ /**
+ * Carga el objeto con los datos que se pasan por parametro.
+ *
+ * @param DB $db DB o DB_Result a usar para la carga.
+ *
+ * @return mixed
+ * @access public
+ */
+ function cargar($db = null)
+ {
+ // Si es un resultado, obtengo los elemento.
+ if (is_a($db, 'db_result')) {
+ $this->predefinirAtributos();
+ $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
+ // Si hay error lo devuelve.
+ if (DB::isError($res)) {
+ return $res;
+ }
+ elseif (!$res) {
+ return false;
+ }
+ $this->id = $res['id'];
+ $this->nombre = $res['nombre'];
+ $this->escala = $res['escala'];
+ $this->procesos = $res['procesos'];
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Borra el objeto de una base de datos.
+ *
+ * @param DB $db Base de datos de donde borrar el objeto.
+ *
+ * @return mixed
+ * @access public
+ */
+ function borrar($db = null)
+ {
+ return $db->query ("DELETE FROM yatta.servidores
+ WHERE id = ". $this->id);
+ }
+
+ /**
+ * Busca los datos en la base.
+ *
+ * @param DB $db Conexion a la base de datos.
+ * @param string $operador Indica como deben concatenarse las condiciones de busqueda
+ * @param string $orden Indica de que manera deben ordenarse los resultados de la busqueda
+ *
+ * @return mixed
+ * @access public
+ */
+ function buscar($db = null, $operador = MECON_DBO_OR, $orden = null)
+ {
+ // Armo el WHERE.
+ $where = array();
+ if (!is_null($this->id)) {
+ $where[] = 's.id = '.$this->id;
+ }
+ if (!is_null($this->nombre)) {
+ $where[] = 's.nombre LIKE '. $db->quote("%$this->nombre%");
+ }
+ if ($where) {
+ $where = 'WHERE '. join ("$operador", $where);
+ }
+ else {
+ $where = '';
+ }
+ // Armo el ORDER BY.
+ if (is_string($orden))
+ {
+ $orden = array($orden);
+ }
+ if ($orden)
+ {
+ $orden = 'ORDER BY '.join(',',$orden);
+ }
+ else {
+ $orden = '';
+ }
+
+ return $db->query(
+ "SELECT s.id AS id, s.nombre AS nombre, s.escala AS escala,
+ s.procesos AS procesos
+ FROM yatta.servidores AS s
+ $where
+ $orden");
+ }
+
+ /**
+ * Guarda los datos en la base.
+ *
+ * @param DB $db Conexion a la base de datos.
+ * @param bool $nuevo Indica si se trata de un nuevo registro en la base.
+ *
+ * @return mixed
+ * @access public
+ */
+ function guardar($db = null, $nuevo = true)
+ {
+ //Reasigno las escalas a los servidores que ya estan.
+ $res = $db->query("UPDATE yatta.servidores SET escala = escala + 1 WHERE
+ escala >= ".$this->escala);
+ if (PEAR::isError($res)) {
+ die('Error: ' . $res->getMessage() . "\n");
+ }
+
+ if ($nuevo) {
+ $datos = array (
+ 'nombre' => $this->nombre,
+ 'escala' => $this->escala,
+ 'procesos' => 0
+ );
+ return $db->autoExecute('yatta.servidores', $datos,
+ DB_AUTOQUERY_INSERT);
+ }
+ else {
+ $datos = array (
+ 'nombre' => $this->nombre,
+ 'escala' => $this->escala,
+ 'procesos' => $this->procesos
+ );
+ return $db->autoExecute('yatta.servidores', $datos,
+ DB_AUTOQUERY_UPDATE, 'id = '. $this->id);
+ }
+ }
+
+ /**
+ * Hace un reset de los atributos.
+ *
+ * @return void
+ * @access public
+ */
+ function predefinirAtributos() {
+ $this->id = null;
+ $this->nombre = null;
+ $this->escala = null;
+ $this->procesos = null;
+ }
+}
+?>
\ No newline at end of file
--- /dev/null
+#!/usr/bin/php4 -qC
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+ Ministerio de Economía
+ YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+YATTA! is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: jue ene 8 16:53:47 ART 2004
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+
+//YATTA LOG {{{
+function yatta_log ($texto) {
+ GLOBAL $YATTA_SERVER;
+ GLOBAL $FH;
+ $linea = strftime("%b %e %H:%M:%S").' '.$YATTA_SERVER['name'].' '.
+ $YATTA_SERVER['script'].'['.$YATTA_SERVER['pid'].']: '. $texto ."\n";
+ fwrite($FH, $linea);
+}
+//}}}
+
+//ABRO EL ARCHIVO DE LOG {{{
+//Como root:
+//# touch /var/log/apache/YATTA_Tacho.log
+//# chown root.www-data /var/log/apache/YATTA_Tacho.log
+//# chmod 660 /var/log/apache/YATTA_Tacho.log
+if (!($FH = fopen ("/var/log/apache/YATTA_Tacho.log", "a"))) {
+ die ("No se pudo abrir el archivo de log. Se detiene el script.");
+}
+//}}}
+
+//REQUIRE ONCE {{{
+require_once 'DB.php';
+require_once 'PEAR.php';
+require_once 'YATTA/Controlador.php';
+require_once 'YATTA/Servidor.php';
+//}}}
+
+//CREO UNA CONEXION MYSQL{{{
+$db =& DB::connect('mysql://intranet:intranet@bal747f/yatta', true);
+if (DB::isError($db)) {
+ die ($db->getMessage());
+}
+//}}}
+
+//CREO LOS OBJETOS NECESARIOS {{{
+$CONTROLADOR =& new YATTA_Controlador;
+$SERVIDOR =& new YATTA_Servidor;
+//}}}
+
+//OBTENGO LOS DATOS DEL SERVER {{{
+$YATTA_SERVER['tacho'] = '/var/www/yatta_tacho/';
+$YATTA_SERVER['script'] = $argv[0];
+$YATTA_SERVER['pid'] = getmypid();
+$YATTA_SERVER['name'] = substr(file_get_contents('/etc/hostname'), 0, strpos
+ (file_get_contents('/etc/hostname'), "\n"));
+$YATTA_SERVER['id'] = $SERVIDOR->obtenerId($db, $YATTA_SERVER['name']);
+if (PEAR::isError($YATTA_SERVER['id'])) {
+ die('Error: ' . $YATTA_SERVER['id']->getMessage() . "\n");
+}
+yatta_log ('*************** Comienzo Ejecución ***************');
+//}}}
+
+//BORRO LOS ARCHIVOS CON MAS DE 7 DIAS {{{
+
+//}}}
+
+//VERIFICO LAS CUOTAS DE LOS USUARIOS{{{
+ //WHILEO POR USUARIO {{{
+ //HAY MAS DE LA CUOTA {{{
+ //BORRAR LOS ARCHIVOS MAS VIEJOS HASTA LLEGAR AL VALOR DE LA CUOTA.
+ //ENVIAR UN EMAIL AVISANDO DE ESTO.
+ //}}}
+ //HAY MENOS DE LA CUOTA PERO SUPERA EL 80%{{{
+ //ENVIAR EMAIL SOBRE LA SITUACION Y AVISANDO QUE SI SE SUPERA LA CUOTA
+ //LOS ARCHIVOS MAS VIEJOS SERAN BORRADOS HASTA CUMPLIR EL REQUERIMIENTO
+ //DE TAMAÑO
+ //}}}
+ //}}}
+//}}}
+
+//CIERRO EL ARCHIVO DE LOG {{{
+yatta_log ('*************** Finaliza Ejecución ***************');
+fclose ($FH);
+//}}}
+?>
\ No newline at end of file
array (
'nombre' => 'Consultas de Procesos',
'imagenComun' => 'general_procesos.gif',
- 'imagenMouseOn' => '', // --> Opcional
- 'imagenSelect' => '', // --> Opcional
'link' => 'procesos',
'permisos' => array (YATTA_PERM_ACCESO),
-// 'tipoMenu' => '<Tipo Menu (Vertical, Horizontal, Oculto)>',
-// 'hijos' => array (
-// array ( 'nombre' => '<Nombre Subseccion',
-// 'imagenComun' => '<IMAGEN>',
-// 'imagenMouseOn' => '', // --> Opcional
-// 'imagenSelect' => '', // --> Opcional
-// 'link' => '<Link>',
-// 'permisos' => array ( <PERMISOS> ),
-// 'subhijos' => array ( <Links Subhijos> ),
-// ),
-// ),
), //}}}
//SECCION 2 {{{
array (
'nombre' => 'Administracion de Archivos',
'imagenComun' => 'archivos.gif',
- 'imagenMouseOn' => '', // --> Opcional
- 'imagenSelect' => '', // --> Opcional
'link' => 'archivos',
'permisos' => array (YATTA_PERM_ACCESO),
-// 'tipoMenu' => '<Tipo Menu (Vertical, Horizontal, Oculto)>',
+ ),//}}}
+ //SECCION 3 {{{
+ array (
+ 'nombre' => 'Administración Servidores',
+ 'imagenComun' => 'general_admin.gif',
+ 'link' => 'admin_servidores',
+ 'permisos' => array (YATTA_PERM_ADMINISTRADOR),
+// 'tipoMenu' => 'vertical',
+ 'subhijos' => array ('admin_servidores-abm'),
// 'hijos' => array (
-// array ( 'nombre' => '<Nombre Subseccion',
-// 'imagenComun' => '<IMAGEN>',
+// array ( 'nombre' => 'Servidores',
+// 'imagenComun' => 'general_admin.gif',
// 'imagenMouseOn' => '', // --> Opcional
// 'imagenSelect' => '', // --> Opcional
-// 'link' => '<Link>',
-// 'permisos' => array ( <PERMISOS> ),
+// 'link' => 'admin_servidores',
+// 'permisos' => array (YATTA_PERM_ADMINISTRADOR),
// 'subhijos' => array ( <Links Subhijos> ),
// ),
// ),
// $Id$
/** @file
- * Definicion de Constantes del sistema YATTA
- */
+ * Definicion de Constantes del sistema YATTA
+ */
/**
- * Identificador del Sistema
- */
+ * Identificador del Sistema
+ */
define('YATTA_PERM', 74);
/**
- * Identificacion del permiso acceso
- */
+ * Identificacion del permiso acceso
+ */
define('YATTA_PERM_ACCESO', 105);
+/**
+ * Identificacion del permiso administrador
+ */
+define('YATTA_PERM_ADMINISTRADOR', 48);
+
?>
--- /dev/null
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+ Ministerio de Economía
+ YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+YATTA! is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: mar ene 27 14:48:57 ART 2004
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+//Require Once {{{
+//HTML {{{
+require_once 'MECON/HTML/QuickForm.php';
+require_once 'MECON/HTML/Tabla.php';
+require_once 'MECON/HTML/Error.php';
+require_once 'MECON/HTML/Link.php';
+require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/Link.php';
+//}}}
+//YATTA {{{
+require_once 'YATTA/Controlador.php';
+require_once 'YATTA/ServidorDB.php';
+//}}}
+//}}}
+
+//Obtengo los datos del get y del post {{{
+$accion = (@$_REQUEST['accion']) ? $_REQUEST['accion'] : 'nuevo';
+
+if (@$_REQUEST['_id']) {
+ $id = $_REQUEST['_id'];
+}
+elseif (@$_REQUEST['id']) {
+ $id = $_REQUEST['id'];
+}
+else {
+ $id = null;
+}
+//}}}
+
+//Obtengo los datos del servidor {{{
+$SERVIDOR =& new YATTA_ServidorDB();
+if ($id) {
+ $SERVIDOR->id = $id;
+ $res = $SERVIDOR->buscar($DB, MECON_DBO_OR, 'nombre');
+ if (PEAR::isError($res)) {
+ die('Error: ' . $res->getMessage() . "\n");
+ }
+ $SERVIDOR->cargar($res);
+}
+//}}}
+
+//Creo los objetos necesarios {{{
+$FORM =& new MECON_HTML_QuickForm('admin_servidores_abm', 'post',
+ 'admin_servidores-abm');
+$FORM->renderer->updateAttributes('width="400"');
+//}}}
+
+//Armo el formulario {{{
+if (@$id) {
+ $FORM->addElement('hidden', 'id', $id);
+}
+$FORM->addElement('hidden', 'accion', $accion.'2');
+$FORM->addElement('header', 'cabecera', 'Datos del Servidor');
+$nombre =& $FORM->addElement('text', 'nombre', 'Nombre', array('size'=>'30'));
+$escala =& $FORM->addElement('text', 'escala', 'Escala', array('size'=>'3'));
+$group[] =& HTML_QuickForm::createElement('submit', 'aceptar' , 'Aceptar');
+$group[] =& HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar');
+$FORM->addGroup($group,'botones');
+
+if (@$accion == 'modificar') {
+ $nombre->setValue($SERVIDOR->nombre);
+ $escala->setValue($SERVIDOR->escala);
+ $group[0]->setValue('Modificar');
+ $group[0]->setName('modificar');
+ $FORM->addRule ('nombre', 'El nombre del servidor es obligatorio.', 'required');
+ $FORM->addRule ('escala', 'La escala del servidor es obligatoria', 'required');
+}
+elseif (@$accion == 'eliminar') {
+ $nombre->setValue($SERVIDOR->nombre);
+ $escala->setValue($SERVIDOR->escala);
+ $group[0]->setValue('Eliminar');
+ $group[0]->setName('eliminar');
+ $FORM->freeze();
+}
+else {
+ $FORM->addRule ('nombre', 'El nombre del servidor es obligatorio.', 'required');
+ $FORM->addRule ('escala', 'La escala del servidor es obligatoria', 'required');
+}
+//}}}
+
+//Valido el formulario {{{
+if ($FORM->validate()) {
+ $f_botones = $FORM->getSubmitValue('botones');
+ //Cancelar {{{
+ if (@$f_botones['cancelar']) {
+ header ('location: admin_servidores');
+ exit;
+ }
+ //}}}
+ //Aceptar {{{
+ elseif (@$f_botones['aceptar']) {
+ $SERVIDOR->nombre = $nombre->getValue();
+ $SERVIDOR->escala = $escala->getValue();
+ $res = $SERVIDOR->guardar($DB, true);
+ }
+ //}}}
+ //Modificar {{{
+ elseif (@$f_botones['modificar']) {
+ $SERVIDOR->nombre = $nombre->getValue();
+ $SERVIDOR->escala = $escala->getValue();
+ $res = $SERVIDOR->guardar($DB, false);
+ }
+ //}}}
+ //Eliminar {{{
+ elseif (@$f_botones['eliminar']) {
+ $res = $SERVIDOR->borrar($DB);
+ }
+ //}}}
+ if (PEAR::isError($res)) {
+ die('Error: ' . $res->getMessage() . "\n");
+ }
+ header ('location: admin_servidores');
+ exit;
+}
+//}}}
+
+//Agrego la info al marco y la muestro {{{
+$MARCO->addStyleSheet('css/yatta.css');
+$MARCO->addBody($FORM);
+$MARCO->display();
+//}}}
+?>
--- /dev/null
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+ Ministerio de Economía
+ YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+YATTA! is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: mar ene 27 13:10:26 ART 2004
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+//Require Once {{{
+//HTML {{{
+require_once 'MECON/HTML/TablaDB.php';
+require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/Link.php';
+//}}}
+//YATTA {{{
+require_once 'YATTA/Controlador.php';
+require_once 'YATTA/ServidorDB.php';
+//}}}
+//}}}
+
+//Obtengo los datos de los servidores {{{
+$SERVIDOR =& new YATTA_ServidorDB();
+$res = $SERVIDOR->buscar ($DB, MECON_DBO_OR, 'nombre');
+//}}}
+
+//Agrego la informacion a la tabla {{{
+$TABLADB = new MECON_HTML_TablaDB ('Servidores', 'width="400"');
+
+$TABLADB->addLink('nuevo', new MECON_HTML_Link('admin_servidores-abm',
+ 'Nuevo Servidor'));
+
+$TABLADB->addRow(array('Listado de Servidores'),
+ 'cabecera colspan="6" align="left"');
+
+$TABLADB->addRow(array('Id', 'Nombre', 'Escala', 'Procesos', 'Modif.', 'Elim.'
+ ),'titulo');
+
+$pager = $TABLADB->addPager($res, null, new MECON_HTML_Link ('admin_servidores'
+ , null));
+
+$TABLADB->addRowsIcon('modificar', array ('id'), new MECON_HTML_Link
+ ('admin_servidores-abm', null, array('accion' => 'modificar')));
+
+$TABLADB->addRowsIcon('borrar', array ('id'), new MECON_HTML_Link
+ ('admin_servidores-abm', null, array('accion' => 'eliminar')));
+
+$TABLADB->addRows($pager, array ('id', 'nombre', 'escala', 'procesos'));
+
+$TABLADB->updateColAttributes(0, 'width="8%"');
+$TABLADB->updateColAttributes(1, 'width="52%"');
+$TABLADB->updateColAttributes(2, 'width="15%"');
+$TABLADB->updateColAttributes(3, 'width="15%"');
+$TABLADB->updateColAttributes(4, 'width="5%"');
+$TABLADB->updateColAttributes(5, 'width="5%"');
+//}}}
+
+//Agrego la info al marco y la muestro {{{
+$MARCO->addStyleSheet('css/yatta.css');
+$MARCO->addBody($TABLADB);
+$MARCO->display();
+//}}}
+?>