summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
l---------admin/Database/ogAdmBD-1.0-1.0.6pre.sql1
l---------admin/Database/ogAdmBD-1.0-1.1.0pre.sql1
-rw-r--r--admin/Database/ogAdmBD-1.0.1-1.1.0pre.sql (renamed from admin/Database/ogAdmBD-1.0.1-1.0.6pre.sql)13
-rw-r--r--admin/Database/ogAdmBD-1.0.2-1.1.0pre.sql (renamed from admin/Database/ogAdmBD-1.0.2-1.0.6pre.sql)13
-rw-r--r--admin/Database/ogAdmBD-1.0.2a-1.1.0pre.sql (renamed from admin/Database/ogAdmBD-1.0.2a-1.0.6pre.sql)13
-rw-r--r--admin/Database/ogAdmBD-1.0.3-1.1.0pre.sql (renamed from admin/Database/ogAdmBD-1.0.3-1.0.6pre.sql)13
-rw-r--r--admin/Database/ogAdmBD-1.0.4-1.1.0pre.sql (renamed from admin/Database/ogAdmBD-1.0.4-1.0.6pre.sql)13
-rw-r--r--admin/Database/ogAdmBD-1.0.4a-1.1.0pre.sql (renamed from admin/Database/ogAdmBD-1.0.4a-1.0.6pre.sql)13
-rw-r--r--admin/Database/ogAdmBD-1.0.5-1.1.0pre.sql (renamed from admin/Database/ogAdmBD-1.0.5-1.0.6pre.sql)13
-rw-r--r--admin/Database/ogAdmBD-1.0.6pre.sql55
-rw-r--r--admin/Database/ogAdmBD-1.1.0pre-postinst.sql (renamed from admin/Database/ogAdmBD-1.0.6pre-postinst.sql)2
-rw-r--r--admin/Database/ogAdmBD.sql20
-rwxr-xr-xadmin/Interface/Configurar116
-rwxr-xr-xadmin/Interface/EjecutarScript3
-rw-r--r--admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h2
-rw-r--r--admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php9
-rw-r--r--admin/WebConsole/asistentes/jscripts/EjecutarScripts.js10
-rw-r--r--admin/WebConsole/asistentes/jscripts/asistentes.js26
-rw-r--r--admin/WebConsole/comandos/gestores/gestor_Comandos.php12
-rw-r--r--admin/WebConsole/comandos/includes/opcionesacciones.php5
-rw-r--r--admin/WebConsole/comandos/jscripts/Configurar.js6
-rw-r--r--admin/WebConsole/comandos/jscripts/RestaurarImagen.js2
-rw-r--r--admin/WebConsole/gestores/gestor_menus.php30
-rw-r--r--admin/WebConsole/gestores/gestor_repositorios.php16
-rw-r--r--admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js3
-rw-r--r--admin/WebConsole/idiomas/javascripts/cat/ejecutaracciones_cat.js3
-rw-r--r--admin/WebConsole/idiomas/javascripts/cat/propiedades_menus_cat.js1
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js18
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js1
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js1
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js4
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js1
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js1
-rw-r--r--admin/WebConsole/idiomas/php/cat/avisos_cat.php1
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php7
-rw-r--r--admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php1
-rw-r--r--admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php13
-rw-r--r--admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php10
-rw-r--r--admin/WebConsole/idiomas/php/eng/avisos_eng.php1
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php5
-rw-r--r--admin/WebConsole/idiomas/php/eng/pintaParticiones_eng.php1
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php12
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php7
-rw-r--r--admin/WebConsole/idiomas/php/esp/avisos_esp.php1
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php7
-rw-r--r--admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php1
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php11
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php6
-rw-r--r--admin/WebConsole/includes/pintaParticiones.php6
-rw-r--r--admin/WebConsole/index.php22
-rw-r--r--admin/WebConsole/jscripts/aulas.js6
-rw-r--r--admin/WebConsole/jscripts/propiedades_menus.js8
-rw-r--r--admin/WebConsole/jscripts/propiedades_repositorios.js10
-rw-r--r--admin/WebConsole/propiedades/propiedades_menus.php54
-rw-r--r--admin/WebConsole/propiedades/propiedades_repositorios.php26
-rw-r--r--admin/WebConsole/propiedades/propiedades_usuarios.php37
-rw-r--r--admin/WebConsole/validacion/functions.php12
-rw-r--r--admin/WebConsole/varios/informacion_repositorios.php25
-rw-r--r--admin/WebConsole/varios/menucliente.php16
-rw-r--r--client/boot-tools/INSTALL.es.txt2
-rwxr-xr-xclient/boot-tools/boottoolsfunctions.lib2
-rw-r--r--client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions59
-rwxr-xr-xclient/boot-tools/ogclientImg2Sqfs55
-rwxr-xr-xclient/boot-tools/ogclientSqfs2Img120
-rwxr-xr-xclient/engine/Boot.lib20
-rwxr-xr-xclient/engine/FileSystem.lib15
-rwxr-xr-xclient/engine/Inventory.lib9
-rwxr-xr-xclient/engine/Protocol.lib33
-rwxr-xr-xclient/engine/Rsync.lib58
-rwxr-xr-xclient/engine/String.lib7
-rwxr-xr-xclient/engine/System.lib3
-rw-r--r--client/shared/etc/engine.cfg7
-rwxr-xr-xclient/shared/etc/init/default.sh17
-rw-r--r--client/shared/etc/lang.ca_ES.conf4
-rw-r--r--client/shared/etc/lang.en_GB.conf2
-rw-r--r--client/shared/etc/lang.es_ES.conf5
-rwxr-xr-xclient/shared/etc/preinit/loadenviron.sh2
-rwxr-xr-xclient/shared/etc/preinit/mountrepo.sh23
-rwxr-xr-xclient/shared/scripts/cloneRemoteFromMaster53
-rwxr-xr-xclient/shared/scripts/configureOs14
-rwxr-xr-xclient/shared/scripts/createBaseImage3
-rwxr-xr-xclient/shared/scripts/createDiffImage12
-rwxr-xr-xclient/shared/scripts/deployImage51
-rwxr-xr-xclient/shared/scripts/generateMenuDefault13
-rwxr-xr-xclient/shared/scripts/installOfflineMode60
-rwxr-xr-xclient/shared/scripts/poweroff2
-rwxr-xr-xclient/shared/scripts/reboot3
-rwxr-xr-xclient/shared/scripts/restoreBaseImage3
-rwxr-xr-xclient/shared/scripts/restoreDiffImage16
-rwxr-xr-xclient/shared/scripts/restoreImage2
-rwxr-xr-xclient/shared/scripts/updateCache13
-rw-r--r--doc/CHANGELOG.es.txt32
-rw-r--r--doc/INSTALL.es.txt12
-rw-r--r--installer/INSTALL.es.txt4
-rwxr-xr-xinstaller/opengnsys_installer.sh20
-rwxr-xr-xinstaller/opengnsys_makecompress.sh2
-rwxr-xr-xinstaller/opengnsys_update.sh19
-rwxr-xr-xrepoman/bin/deleteimage7
-rwxr-xr-xrepoman/bin/deletepreimage2
99 files changed, 994 insertions, 538 deletions
diff --git a/admin/Database/ogAdmBD-1.0-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0-1.0.6pre.sql
deleted file mode 120000
index 935874bd..00000000
--- a/admin/Database/ogAdmBD-1.0-1.0.6pre.sql
+++ /dev/null
@@ -1 +0,0 @@
-ogAdmBD-1.0.1-1.0.6pre.sql \ No newline at end of file
diff --git a/admin/Database/ogAdmBD-1.0-1.1.0pre.sql b/admin/Database/ogAdmBD-1.0-1.1.0pre.sql
new file mode 120000
index 00000000..f4795620
--- /dev/null
+++ b/admin/Database/ogAdmBD-1.0-1.1.0pre.sql
@@ -0,0 +1 @@
+ogAdmBD-1.0.1-1.1.0pre.sql \ No newline at end of file
diff --git a/admin/Database/ogAdmBD-1.0.1-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.1-1.1.0pre.sql
index 9b3d9677..eac82176 100644
--- a/admin/Database/ogAdmBD-1.0.1-1.0.6pre.sql
+++ b/admin/Database/ogAdmBD-1.0.1-1.1.0pre.sql
@@ -1,5 +1,5 @@
### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0 y 1.0.1 - 1.0.6
+# OpenGnSys 1.0 y 1.0.1 - 1.1.0
#use ogAdmBD
# Mostrar protocolo de clonación en la cola de acciones (ticket #672)
@@ -221,3 +221,14 @@ UPDATE comandos
SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
WHERE idcomando = 9;
+# Eliminar campos que ya no se usan (ticket #705).
+ALTER TABLE repositorios
+ DROP pathrepoconf,
+ DROP pathrepod,
+ DROP pathpxe;
+ALTER TABLE menus
+ DROP coorx,
+ DROP coory,
+ DROP scoorx,
+ DROP scoory;
+
diff --git a/admin/Database/ogAdmBD-1.0.2-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.2-1.1.0pre.sql
index 1fb7066d..049a08a3 100644
--- a/admin/Database/ogAdmBD-1.0.2-1.0.6pre.sql
+++ b/admin/Database/ogAdmBD-1.0.2-1.1.0pre.sql
@@ -1,5 +1,5 @@
### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0.2 - 1.0.6
+# OpenGnSys 1.0.2 - 1.1.0
#use ogAdmBD
UPDATE entornos SET ipserveradm = 'SERVERIP' WHERE ipserveradm = '' LIMIT 1;
@@ -221,3 +221,14 @@ UPDATE comandos
SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
WHERE idcomando = 9;
+# Eliminar campos que ya no se usan (ticket #705).
+ALTER TABLE repositorios
+ DROP pathrepoconf,
+ DROP pathrepod,
+ DROP pathpxe;
+ALTER TABLE menus
+ DROP coorx,
+ DROP coory,
+ DROP scoorx,
+ DROP scoory;
+
diff --git a/admin/Database/ogAdmBD-1.0.2a-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.2a-1.1.0pre.sql
index 1e73cdd8..b162f9f1 100644
--- a/admin/Database/ogAdmBD-1.0.2a-1.0.6pre.sql
+++ b/admin/Database/ogAdmBD-1.0.2a-1.1.0pre.sql
@@ -1,5 +1,5 @@
### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0.2a - 1.0.6
+# OpenGnSys 1.0.2a - 1.1.0
#use ogAdmBD
UPDATE idiomas SET descripcion = 'English' WHERE ididioma = 2;
@@ -219,3 +219,14 @@ UPDATE comandos
SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
WHERE idcomando = 9;
+# Eliminar campos que ya no se usan (ticket #705).
+ALTER TABLE repositorios
+ DROP pathrepoconf,
+ DROP pathrepod,
+ DROP pathpxe;
+ALTER TABLE menus
+ DROP coorx,
+ DROP coory,
+ DROP scoorx,
+ DROP scoory;
+
diff --git a/admin/Database/ogAdmBD-1.0.3-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.3-1.1.0pre.sql
index dc6de007..c48f5cbf 100644
--- a/admin/Database/ogAdmBD-1.0.3-1.0.6pre.sql
+++ b/admin/Database/ogAdmBD-1.0.3-1.1.0pre.sql
@@ -1,5 +1,5 @@
### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0.3 - 1.0.6
+# OpenGnSys 1.0.3 - 1.1.0
#use ogAdmBD
# Añadir tipo de arranque Windows al perfil hardware.
@@ -230,3 +230,14 @@ UPDATE comandos
SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
WHERE idcomando = 9;
+# Eliminar campos que ya no se usan (ticket #705).
+ALTER TABLE repositorios
+ DROP pathrepoconf,
+ DROP pathrepod,
+ DROP pathpxe;
+ALTER TABLE menus
+ DROP coorx,
+ DROP coory,
+ DROP scoorx,
+ DROP scoory;
+
diff --git a/admin/Database/ogAdmBD-1.0.4-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.4-1.1.0pre.sql
index 0151d4dd..adb426f7 100644
--- a/admin/Database/ogAdmBD-1.0.4-1.0.6pre.sql
+++ b/admin/Database/ogAdmBD-1.0.4-1.1.0pre.sql
@@ -1,5 +1,5 @@
### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0.4 - 1.0.6
+# OpenGnSys 1.0.4 - 1.1.0
#use ogAdmBD
# Mejorar el rendimiento en acceso a la cola de acciones.
@@ -166,3 +166,14 @@ UPDATE comandos
SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
WHERE idcomando = 9;
+# Eliminar campos que ya no se usan (ticket #705).
+ALTER TABLE repositorios
+ DROP pathrepoconf,
+ DROP pathrepod,
+ DROP pathpxe;
+ALTER TABLE menus
+ DROP coorx,
+ DROP coory,
+ DROP scoorx,
+ DROP scoory;
+
diff --git a/admin/Database/ogAdmBD-1.0.4a-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.4a-1.1.0pre.sql
index a12d5eb8..a882e5de 100644
--- a/admin/Database/ogAdmBD-1.0.4a-1.0.6pre.sql
+++ b/admin/Database/ogAdmBD-1.0.4a-1.1.0pre.sql
@@ -1,5 +1,5 @@
### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0.4a - 1.0.6
+# OpenGnSys 1.0.4a - 1.1.0
#use ogAdmBD
# Añadir validación del cliente.
@@ -158,3 +158,14 @@ UPDATE comandos
SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
WHERE idcomando = 9;
+# Eliminar campos que ya no se usan (ticket #705).
+ALTER TABLE repositorios
+ DROP pathrepoconf,
+ DROP pathrepod,
+ DROP pathpxe;
+ALTER TABLE menus
+ DROP coorx,
+ DROP coory,
+ DROP scoorx,
+ DROP scoory;
+
diff --git a/admin/Database/ogAdmBD-1.0.5-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.5-1.1.0pre.sql
index 383e26d8..db8c19f6 100644
--- a/admin/Database/ogAdmBD-1.0.5-1.0.6pre.sql
+++ b/admin/Database/ogAdmBD-1.0.5-1.1.0pre.sql
@@ -1,5 +1,5 @@
### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0.5 - 1.0.6
+# OpenGnSys 1.0.5 - 1.1.0
#use ogAdmBD
# Incluir ordenador modelo y fecha de creación de imagen y
@@ -31,3 +31,14 @@ UPDATE comandos
SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
WHERE idcomando = 9;
+# Eliminar campos que ya no se usan (ticket #705).
+ALTER TABLE repositorios
+ DROP pathrepoconf,
+ DROP pathrepod,
+ DROP pathpxe;
+ALTER TABLE menus
+ DROP coorx,
+ DROP coory,
+ DROP scoorx,
+ DROP scoory;
+
diff --git a/admin/Database/ogAdmBD-1.0.6pre.sql b/admin/Database/ogAdmBD-1.0.6pre.sql
deleted file mode 100644
index c6e58a45..00000000
--- a/admin/Database/ogAdmBD-1.0.6pre.sql
+++ /dev/null
@@ -1,55 +0,0 @@
-### Fichero de actualización de la base de datos.
-# OpenGnSys 1.0.6
-#use ogAdmBD
-
-# Eliminar procedimiento para evitar errores de ejecución.
-DROP PROCEDURE IF EXISTS addcols;
-# Procedimiento para actualización condicional de tablas.
-delimiter '//'
-CREATE PROCEDURE addcols() BEGIN
- # Incluir ordenador modelo y fecha de creación de imagen y
- # establecer valores por defecto (ticket #677).
- IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
- WHERE COLUMN_NAME='fechacreacion' AND TABLE_NAME='imagenes' AND TABLE_SCHEMA=DATABASE())
- THEN
- ALTER TABLE imagenes
- MODIFY idrepositorio INT(11) NOT NULL DEFAULT 0,
- MODIFY numdisk SMALLINT NOT NULL DEFAULT 0,
- MODIFY numpar SMALLINT NOT NULL DEFAULT 0,
- MODIFY codpar INT(8) NOT NULL DEFAULT 0,
- ADD idordenador INT(11) NOT NULL DEFAULT 0 AFTER idrepositorio,
- ADD fechacreacion DATETIME DEFAULT NULL;
- else
- ALTER TABLE imagenes
- MODIFY idrepositorio INT(11) NOT NULL DEFAULT 0,
- MODIFY idordenador INT(11) NOT NULL DEFAULT 0,
- MODIFY numdisk SMALLINT NOT NULL DEFAULT 0,
- MODIFY numpar SMALLINT NOT NULL DEFAULT 0,
- MODIFY codpar INT(8) NOT NULL DEFAULT 0;
- END IF;
- # Incluir fecha de despliegue/restauración de imagen (ticket #677).
- IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
- WHERE COLUMN_NAME='fechadespliegue' AND TABLE_NAME='ordenadores_particiones' AND TABLE_SCHEMA=DATABASE())
- THEN
- ALTER TABLE ordenadores_particiones
- ADD fechadespliegue DATETIME NULL AFTER idperfilsoft;
- END IF;
-END//
-# Ejecutar actualización condicional.
-delimiter ';'
-CALL addcols();
-DROP PROCEDURE addcols;
-
-# Mostrar protocolo de clonación en la cola de acciones (ticket #672).
-UPDATE parametros
- SET tipopa = 0
- WHERE idparametro = 30;
-
-# Mostrar disco en comandos Inventario de software e Iniciar sesión.
-UPDATE comandos
- SET visuparametros = 'dsk;par', parametros = 'nfn;iph;mac;dsk;par'
- WHERE idcomando = 7;
-UPDATE comandos
- SET visuparametros = 'dsk;par', parametros = 'nfn;iph;dsk;par'
- WHERE idcomando = 9;
-
diff --git a/admin/Database/ogAdmBD-1.0.6pre-postinst.sql b/admin/Database/ogAdmBD-1.1.0pre-postinst.sql
index 8b2e7be6..1ce377db 100644
--- a/admin/Database/ogAdmBD-1.0.6pre-postinst.sql
+++ b/admin/Database/ogAdmBD-1.1.0pre-postinst.sql
@@ -1,5 +1,5 @@
### Procedimiento para actualización de la base de datos.
-# Postinstalación de OpenGnSys 1.0.5
+# Postinstalación de OpenGnSys 1.1.0
#use ogAdmBD
# Nota: retocar el fichero para sustituir KERNELVERSION por la versión del
diff --git a/admin/Database/ogAdmBD.sql b/admin/Database/ogAdmBD.sql
index feb0bdf5..cdfcf536 100644
--- a/admin/Database/ogAdmBD.sql
+++ b/admin/Database/ogAdmBD.sql
@@ -1,11 +1,4 @@
--- phpMyAdmin SQL Dump
--- version 3.2.2.1deb1
--- http://www.phpmyadmin.net
---
--- Servidor: localhost
--- Tiempo de generación: 20-09-2010 a las 22:43:50
--- Versión del servidor: 5.1.37
--- Versión de PHP: 5.2.10-2ubuntu6.4
+-- Fichero de instalación de la base de datos.
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
@@ -445,11 +438,7 @@ CREATE TABLE IF NOT EXISTS `menus` (
`idcentro` int(11) NOT NULL DEFAULT '0',
`idurlimg` int(11) NOT NULL DEFAULT '0',
`titulo` varchar(250) DEFAULT NULL,
- `coorx` int(11) DEFAULT NULL,
- `coory` int(11) DEFAULT NULL,
`modalidad` tinyint(4) DEFAULT NULL,
- `scoorx` int(11) DEFAULT NULL,
- `scoory` int(11) DEFAULT NULL,
`smodalidad` tinyint(4) DEFAULT NULL,
`comentarios` text,
`grupoid` int(11) NOT NULL DEFAULT '0',
@@ -740,9 +729,6 @@ CREATE TABLE IF NOT EXISTS `repositorios` (
`nombrerepositorio` varchar(250) NOT NULL,
`ip` varchar(15) NOT NULL DEFAULT '',
`passguor` varchar(50) NOT NULL DEFAULT '',
- `pathrepoconf` varchar(250) NOT NULL,
- `pathrepod` varchar(250) NOT NULL,
- `pathpxe` varchar(250) NOT NULL,
`idcentro` int(11) DEFAULT NULL,
`grupoid` int(11) DEFAULT NULL,
`comentarios` text,
@@ -750,8 +736,8 @@ CREATE TABLE IF NOT EXISTS `repositorios` (
PRIMARY KEY (`idrepositorio`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-INSERT INTO `repositorios` (`idrepositorio`,`nombrerepositorio`,`ip`,`passguor`,`pathrepoconf`,`pathrepod`,`pathpxe`,`idcentro`,`grupoid`,`comentarios`,`puertorepo`) VALUES
- (1,'Repositorio (Default)','SERVERIP','','','/opt/opengnsys/admin','/opt/opengnsys/tftpboot/pxelinux.cfg',1,0,'',2002);
+INSERT INTO `repositorios` (`idrepositorio`,`nombrerepositorio`,`ip`,`passguor`,`idcentro`,`grupoid`,`comentarios`,`puertorepo`) VALUES
+ (1,'Repositorio (Default)','SERVERIP','',1,0,'',2002);
-- --------------------------------------------------------
diff --git a/admin/Interface/Configurar b/admin/Interface/Configurar
index 661f4d57..18a68ebf 100755
--- a/admin/Interface/Configurar
+++ b/admin/Interface/Configurar
@@ -67,83 +67,85 @@ IFS='%' read -a TBPRM <<<"$sparam"
maxp=0
for ((i=0; i<${#TBPRM[@]}; i++)); do
- # Leer datos de la partición, separados por "*".
- unset par
- IFS='*' read -a CFG <<<"${TBPRM[i]}" 2>/dev/null
- [[ ${CFG} =~ = ]] && eval ${CFG[@]} # Comprobar asignación antes de exportar valores.
- # Saltar si no existe definición de partición.
- if [ -n "$par" -a $par != 0 ]; then
- # Componer datos de particionado.
- TBP[par]="$cpt:$tam"
- # Si se activa operación de formatear, componer datos de formateo.
- if [ "$ope" == 1 ]; then
- TBF[par]="$sfi"
- else
- TBF[par]="EMPTY"
- fi
- # Obtener la partición mayor por si hay que rellenar con valores EMPTY.
- [ $par -gt $maxp ] && maxp=$par
- fi
+ # Leer datos de la partición, separados por "*".
+ unset par
+ IFS='*' read -a CFG <<<"${TBPRM[i]}" 2>/dev/null
+ [[ ${CFG} =~ = ]] && eval ${CFG[@]} # Comprobar asignación antes de exportar valores.
+ # Componer datos de particionado.
+ if [ "$cpt" != "CACHE" ]; then
+ TBP[par]="$cpt:$tam"
+ fi
+ # Si se activa operación de formatear, componer datos de formateo.
+ if [ "$ope" == 1 ]; then
+ # Comprobamos que la particion y el s.f sean validos.
+ ogCheckStringInGroup $cpt "EMPTY EXTENDED LINUX-SWAP LINUX-LVM"
+ [ $? -ne 0 ] && TBF[par]="$sfi"
+ fi
+ # Obtener la partición mayor.
+ [ $par -gt $maxp ] && maxp=$par
done
-
-# Control de datos.
-for ((par=1; par<=maxp; par++)); do
- # Ignorar partición 4 si existe caché.
- if [ $che != 1 -o $par -ne 4 ]; then
- # Rellenar con "EMPTY:0" la configuración de particiones no definidas.
- [ -z "${TBP[par]}" ] && TBP[par]="EMPTY:0"
- fi
- # Ignorar formateo en particiones que no soportan sistemas de archivos.
- case "${TBP[par]%:*}" in
- ""|EMPTY|EXTENDED|LINUX-SWAP|LINUX-LVM)
- TBF[par]="EMPTY" ;;
- esac
-done
-
#____________________________________________________
#
# Proceso
#____________________________________________________
+# Tamaño actual de la cache
+CACHESIZE=$(ogGetCacheSize)
# Desmonta todas las particiones y la caché
-ogUnmountCache
+
+ogEcho session log "[10] $MSG_HELP_ogUnmountAll"
ogUnmountAll $dis &>/dev/null
+ogUnmountCache
# Elimina la tabla de particiones
-ogDeletePartitionTable $dis
-ogExecAndLog session log ogUpdatePartitionTable $dis
+ogDeletePartitionTable $dis
+ogExecAndLog COMMAND ogUpdatePartitionTable $dis
# Crea tabla de particiones MSDOS (NOTA: adaptar para tablas GPT).
-ogCreatePartitionTable $dis MSDOS
+ogCreatePartitionTable $dis MSDOS
-# Cuestión caché
-if [ "$che" == "1" ]; then
- ogExecAndLog session log initCache $tch
+# Inicia la cache.
+if echo "$sparam" |grep "CACHE" >/dev/null; then
+ ogEcho session log "[30] $MSG_HELP_ogCreateCache"
+ ogEcho session log " initCache $tch"
+ ogExecAndLog COMMAND initCache $tch
fi
# Definir particionado.
-ogExecAndLog session log ogCreatePartitions $dis ${TBP[@]}
-ogExecAndLog session log ogUpdatePartitionTable $dis
+ogEcho session log "[50] $MSG_HELP_ogCreatePartitions"
+ogEcho session log " ogCreatePartitions $dis ${TBP[@]}"
+ogExecAndLog COMMAND ogCreatePartitions $dis ${TBP[@]}
+if [ $? -ne 0 ]; then
+ kill $COPROC_PID
+ exit $(ogRaiseError session log $OG_ERR_GENERIC "ogCreatePartitions $dis ${TBP[@]}")
+fi
+ogExecAndLog COMMAND ogUpdatePartitionTable $dis
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
- kill $COPROC_PID
- exit $RETVAL
-fi
+# Formatear particiones
+ogEcho session log "[70] $MSG_HELP_ogFormat"
-# Formatear particiones, excepto las marcadas como "EMPTY".
for ((par=1; par<=$maxp; par++)); do
- sfi="${TBF[par]}"
- if [ "$sfi" != "EMPTY" ]; then
- ogExecAndLog session log ogFormatFs $dis $par $sfi
- RETVAL=$?
- if [ $RETVAL -ne 0 ]; then
- kill $COPROC_PID
- exit $OG_ERR_PARTITION
- fi
- fi
-done
+ case "${TBF[par]}" in
+ CACHE) # Si el tamaño es distinto ya se ha formateado.
+ if [ "$CACHESIZE" == $tch ]; then
+ ogEcho session log " ogFormatCache"
+ ogExecAndLog COMMAND ogFormatCache
+ fi
+ ;;
+ "") ;;
+ *) ogEcho session log " ogFormatFs $dis $par ${TBF[par]}"
+ ogExecAndLog COMMAND ogFormatFs $dis $par ${TBF[par]}
+ if [ $? -ne 0 ]; then
+ kill $COPROC_PID
+ exit $(ogRaiseError session log $OG_ERR_GENERIC "ogFormatFs $dis $par ${TBF[par]}");
+ fi
+ ;;
+ esac
+done
+RETVAL=$?
+# Registro de fin de ejecución
+ogEcho log session "$MSG_INTERFACE_END $RETVAL"
#___________________________________________________________________
#
diff --git a/admin/Interface/EjecutarScript b/admin/Interface/EjecutarScript
index 50b54a56..26453ed4 100755
--- a/admin/Interface/EjecutarScript
+++ b/admin/Interface/EjecutarScript
@@ -31,7 +31,8 @@ if [ $RETVAL == 0 ]
then
ogEcho log session "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s"
else
- ogEcho log session "ERROR: operacion no realizada"
+ ogRaiseError log session $RETVAL
+ ogEcho log session error "Operacion no realizada"
fi
diff --git a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
index 85bbe795..9539afbf 100644
--- a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
+++ b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
@@ -86,7 +86,7 @@ char* tbErroresScripts[]={"Se han generado errores desconocidos. No se puede con
"029-Error no definido",\
"030-Error al restaurar imagen - Imagen mas grande que particion",\
"031-Error al realizar el comando updateCache",\
- "032-Error no definido",\
+ "032-Error al formatear",\
"033-Error no definido",\
"034-Error no definido",\
"035-Error no definido",\
diff --git a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php
index 0a6da102..78502d83 100644
--- a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php
+++ b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php
@@ -12,8 +12,8 @@ for($cfgIndex = 0; $cfgIndex < $conKeys; $cfgIndex++){
?>
<? echo $TbMsg["WDI13"] ?> <br>
- <input type="radio" name="modo" value="deployImage" checked ><? echo $TbMsg["WDI14"] ?> <br>
- <input type="radio" name="modo" value="updateCache" > <? echo $TbMsg["WDI15"] ?> <br>
+ <input type="radio" name="modo" value="deployImage" onClick="enableDirect(this.form)" checked ><? echo $TbMsg["WDI14"] ?> <br>
+ <input type="radio" name="modo" value="updateCache" onClick="disableDirect(this.form)" > <? echo $TbMsg["WDI15"] ?> <br>
<tr> <td> <? echo $TbMsg["WDI16"] ?> </td> <td> <? echo $TbMsg["WDI17"] ?> </td> <td> <? echo $TbMsg["WDI18"] ?> </td> <td> <? echo $TbMsg["WDI19"] ?> </td></tr>
@@ -43,11 +43,12 @@ for($cfgIndex = 0; $cfgIndex < $conKeys; $cfgIndex++){
<? echo $TbMsg["WDI23"] ?>
<br />
- <select name="idmetodo" id="idmetodo" style="WIDTH:220";">
- <!-- <option value="UNICAST"> UNICAST </option> -->
+ <select name="idmetodo" id="idmetodo" style="WIDTH:220;">
<option value="TORRENT"> TORRENT </option>
<option value="MULTICAST"> MULTICAST </option>
+ <option value="MULTICAST-DIRECT"> MULTICAST-DIRECT </option>
<option value="UNICAST"> UNICAST </option>
+ <option value="UNICAST-DIRECT"> UNICAST-DIRECT </option>
</select>
<br />
</td>
diff --git a/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js b/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js
index e17411c0..81a916ba 100644
--- a/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js
+++ b/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js
@@ -11,7 +11,15 @@
if (comprobar_datos()){
var RC='@';
document.fdatosejecucion.atributos.value="scp="+escape(document.fdatos.codigo.value)+RC;
- document.fdatosejecucion.submit();
+ if( document.fdatosejecucion.ambito.value!=16 && document.fdatos.idmetodo.value=="UNICAST" || document.fdatos.idmetodo.value=="UNICAST-DIRECT"){
+ if (confirm(TbMsg[4]) == true) {
+ document.fdatosejecucion.submit();
+ } else {
+ cancelar();
+ }
+ }else{
+ document.fdatosejecucion.submit();
+ }
}
}
//________________________________________________________________________________________________________
diff --git a/admin/WebConsole/asistentes/jscripts/asistentes.js b/admin/WebConsole/asistentes/jscripts/asistentes.js
index dab6cf06..97ae9173 100644
--- a/admin/WebConsole/asistentes/jscripts/asistentes.js
+++ b/admin/WebConsole/asistentes/jscripts/asistentes.js
@@ -26,18 +26,40 @@ ogEcho log session \"[0] $MSG_SCRIPTS_TASK_START " + command + "\"\n \
ogExecAndLog command " + command + " \n ";
}
+// disableDirect(form): En Deploy de imagenes si se elige updateCache se impide elegir multicast-direct o unicast-direct
+function disableDirect(form){
+ // MULTICAST-DIRECT
+ form.idmetodo.options[2].disabled=true;
+ // UNICAST-DIRECT
+ form.idmetodo.options[4].disabled=true;
+}
+// enableDirect(form): En Deploy de imagenes si se elige deployCache se permite elegir multicast-direct o unicast-direct
+function enableDirect(form){
+ // MULTICAST-DIRECT
+ form.idmetodo.options[2].disabled=false;
+ // UNICAST-DIRECT
+ form.idmetodo.options[4].disabled=false;
+}
+
+
function codeDeployImage(form){
switch (form.idmetodo.value)
{
case "MULTICAST":
protocol="MULTICAST " + form.mcastpuerto.value + ":" + form.mcastmodo.value + ":" + form.mcastdireccion.value + ":" + form.mcastvelocidad.value + "M:" + form.mcastnclien.value + ":" + form.mcastseg.value + " ";
break;
+ case "MULTICAST-DIRECT":
+ protocol="MULTICAST-DIRECT " + form.mcastpuerto.value + ":" + form.mcastmodo.value + ":" + form.mcastdireccion.value + ":" + form.mcastvelocidad.value + "M:" + form.mcastnclien.value + ":" + form.mcastseg.value + " ";
+ break;
case "TORRENT":
protocol=" TORRENT " + form.modp2p.value + ":" + form.timep2p.value;
break;
case "UNICAST":
protocol=" UNICAST";
break;
+ case "UNICAST-DIRECT":
+ protocol=" UNICAST-DIRECT";
+ break;
}
//form.codigo.value="deployImage REPO /";
if (form.modo[0].checked)
@@ -202,8 +224,8 @@ partCode += " EMPTY:0";
ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
ogEcho log session \"[0] $MSG_HELP_ogCreatePartitions \"\n \
ogEcho session \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\"\n \
-ogUnmountCache \n \
ogUnmountAll "+n_disk+" 2>/dev/null\n \
+ogUnmountCache \n \
" + cacheCode + " \n \
ogEcho session \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
ogExecAndLog command session ogListPartitions "+n_disk+" \n \
@@ -289,8 +311,8 @@ partCode += " EMPTY:0";
ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
ogEcho log session \"[0] $MSG_HELP_ogCreatePartitions "+n_disk+"\"\n \
ogEcho session \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\"\n \
-ogUnmountCache \n \
ogUnmountAll "+n_disk+" \n \
+ogUnmountCache \n \
" + cacheCode + " \n \
ogEcho session \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
ogExecAndLog command session ogListPartitions "+n_disk+" \n \
diff --git a/admin/WebConsole/comandos/gestores/gestor_Comandos.php b/admin/WebConsole/comandos/gestores/gestor_Comandos.php
index cd01a728..7e22d431 100644
--- a/admin/WebConsole/comandos/gestores/gestor_Comandos.php
+++ b/admin/WebConsole/comandos/gestores/gestor_Comandos.php
@@ -75,8 +75,20 @@ $atributos=str_replace('$',chr(9),$atributos);
<BODY>
<SCRIPT language="javascript" src="../jscripts/comunescomandos.js"></SCRIPT>
<? echo '<SCRIPT language="javascript" src="../../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../../idiomas/javascripts/'.$idioma.'/comandos/ejecutarscripts_'.$idioma.'.js"></SCRIPT>'?>
<?php
+//##################################################################
+if ( ereg("ptc=UNICAST", $atributos) & $ambito!=16) { ?>
+ <SCRIPT language="javascript">
+ if (confirm(TbMsg[4]) == false) {
+ alert(CTbMsg[0]);
+ location.href="../../nada.php"
+ }
+ </SCRIPT>
+<?php } ?>
+<?php
+//##################################################################
/* Recopila identificadore ,ipes y macs para envío de comandos */
$cadenaid="";
$cadenaip="";
diff --git a/admin/WebConsole/comandos/includes/opcionesacciones.php b/admin/WebConsole/comandos/includes/opcionesacciones.php
index 601403b0..c973a691 100644
--- a/admin/WebConsole/comandos/includes/opcionesacciones.php
+++ b/admin/WebConsole/comandos/includes/opcionesacciones.php
@@ -10,8 +10,9 @@
// *************************************************************************************************************************************************
?>
<P align=center><span align=center class=subcabeceras><? echo $TbMsgAux[0] ?></span></P>
-
-
+<?php if ($ambito !=16 ){ ?>
+ <INPUT type="hidden" name="ambito" value="<? echo $ambito?>">
+<?php } ?>
<?if($idcomando!=10){?>
<TABLE align=center>
<TR>
diff --git a/admin/WebConsole/comandos/jscripts/Configurar.js b/admin/WebConsole/comandos/jscripts/Configurar.js
index bcb9e0ff..2b7e5f29 100644
--- a/admin/WebConsole/comandos/jscripts/Configurar.js
+++ b/admin/WebConsole/comandos/jscripts/Configurar.js
@@ -101,6 +101,7 @@ function Confirmar(cc)
// Confirma un bloque de configuración de particiones
// Parametros:
// cc: Identificador de la configuración (bloque de particiones)
+// Version 1.1: 2015-02-25. Irina Gomez ETSII US. Se envian datos de cuarta particion.
//________________________________________________________________________________________________________
function comprobarDatos(cc)
@@ -213,12 +214,13 @@ function comprobarDatos(cc)
}
for(var i=1;i<=maxpar;i++){
- if(i!=4){
+ // Version 1.1: Se envian datos cuarta particion.
+ //if(i!=4){
if(tbparam[i]!=undefined)
atributos+=tbparam[i];
else
atributos+="par="+i+TB+"cpt=EMPTY"+TB+"sfi=EMPTY"+TB+"tam=0"+TB+"ope=0"+SL;
- }
+ //}
}
// Completa con EMPTY si las particiones son menores a 4 y no hay cache
diff --git a/admin/WebConsole/comandos/jscripts/RestaurarImagen.js b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js
index 91e7b3ea..d675fa8d 100644
--- a/admin/WebConsole/comandos/jscripts/RestaurarImagen.js
+++ b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js
@@ -59,7 +59,7 @@
}
//________________________________________________________________________________________________________
function cancelar(){
- alert(CTbMsg[0]);
+ alert(TbMsg[0]);
location.href="../nada.php"
}
//________________________________________________________________________________________________________
diff --git a/admin/WebConsole/gestores/gestor_menus.php b/admin/WebConsole/gestores/gestor_menus.php
index 0b1bb948..e024100c 100644
--- a/admin/WebConsole/gestores/gestor_menus.php
+++ b/admin/WebConsole/gestores/gestor_menus.php
@@ -23,11 +23,7 @@ $opcion=0; // Inicializa parametros
$idmenu=0;
$descripcion="";
$titulo="";
-$coorx=0;
-$coory=0;
$modalidad=0;
-$scoorx=0;
-$scoory=0;
$smodalidad=0;
$comentarios="";
$grupoid=0;
@@ -42,12 +38,8 @@ if (isset($_POST["idmenu"])) $idmenu=$_POST["idmenu"];
if (isset($_POST["identificador"])) $idmenu=$_POST["identificador"];
if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
if (isset($_POST["titulo"])) $titulo=$_POST["titulo"];
-if (isset($_POST["coorx"])) $coorx=$_POST["coorx"];
-if (isset($_POST["coory"])) $coory=$_POST["coory"];
-if (isset($_POST["modalidad"])) $modalidad=$_POST["modalidad"];
-if (isset($_POST["scoorx"])) $scoorx=$_POST["scoorx"];
-if (isset($_POST["scoory"])) $scoory=$_POST["scoory"];
+if (isset($_POST["modalidad"])) $modalidad=$_POST["modalidad"];
if (isset($_POST["smodalidad"])) $smodalidad=$_POST["smodalidad"];
if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
@@ -120,13 +112,9 @@ function Gestiona(){
global $idcentro;
global $idmenu;
global $descripcion;
- global $titulo;
- global $coorx;
- global $coory;
- global $modalidad;
- global $scoorx;
- global $scoory;
- global $smodalidad;
+ global $titulo;
+ global $modalidad;
+ global $smodalidad;
global $comentarios;
global $grupoid;
global $htmlmenupub;
@@ -146,11 +134,7 @@ function Gestiona(){
$cmd->CreaParametro("@idmenu",$idmenu,1);
$cmd->CreaParametro("@descripcion",$descripcion,0);
$cmd->CreaParametro("@titulo",$titulo,0);
- $cmd->CreaParametro("@coorx",$coorx,1);
- $cmd->CreaParametro("@coory",$coory,1);
$cmd->CreaParametro("@modalidad",$modalidad,1);
- $cmd->CreaParametro("@scoorx",$scoorx,1);
- $cmd->CreaParametro("@scoory",$scoory,1);
$cmd->CreaParametro("@smodalidad",$smodalidad,1);
$cmd->CreaParametro("@comentarios",$comentarios,0);
$cmd->CreaParametro("@grupoid",$grupoid,1);
@@ -161,9 +145,9 @@ function Gestiona(){
switch($opcion){
case $op_alta :
- $cmd->texto="INSERT INTO menus (descripcion,titulo,coorx,coory,modalidad,scoorx,scoory,smodalidad,
+ $cmd->texto="INSERT INTO menus (descripcion,titulo,modalidad,smodalidad,
comentarios,idcentro,grupoid,htmlmenupub,htmlmenupri,resolucion,idurlimg)
- VALUES (@descripcion,@titulo,@coorx,@coory,@modalidad,@scoorx,@scoory,@smodalidad,
+ VALUES (@descripcion,@titulo,@modalidad,@smodalidad,
@comentarios,@idcentro,@grupoid,@htmlmenupub,@htmlmenupri,@resolucion,@idurlimg)";
$resul=$cmd->Ejecutar();
if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
@@ -176,7 +160,7 @@ function Gestiona(){
}
break;
case $op_modificacion:
- $cmd->texto="UPDATE menus SET descripcion=@descripcion,titulo=@titulo,coorx=@coorx,coory=@coory,modalidad=@modalidad,scoorx=@scoorx,scoory=@scoory,smodalidad=@smodalidad,
+ $cmd->texto="UPDATE menus SET descripcion=@descripcion,titulo=@titulo,modalidad=@modalidad,smodalidad=@smodalidad,
comentarios=@comentarios,htmlmenupub=@htmlmenupub ,htmlmenupri=@htmlmenupri,resolucion=@resolucion,idurlimg=@idurlimg
WHERE idmenu=@idmenu";
$resul=$cmd->Ejecutar();
diff --git a/admin/WebConsole/gestores/gestor_repositorios.php b/admin/WebConsole/gestores/gestor_repositorios.php
index c8eb14a2..88727394 100644
--- a/admin/WebConsole/gestores/gestor_repositorios.php
+++ b/admin/WebConsole/gestores/gestor_repositorios.php
@@ -23,9 +23,6 @@ $idrepositorio=0;
$nombrerepositorio="";
$ip="";
$passguor="";
-$pathrepoconf="";
-$pathrepod="";
-$pathpxe="";
$grupoid=0;
$puertorepo="";
@@ -40,9 +37,6 @@ if (isset($_POST["identificador"])) $idrepositorio=$_POST["identificador"];
if (isset($_POST["nombrerepositorio"])) $nombrerepositorio=$_POST["nombrerepositorio"];
if (isset($_POST["ip"])) $ip=$_POST["ip"];
if (isset($_POST["passguor"])) $passguor=$_POST["passguor"];
-if (isset($_POST["pathrepoconf"])) $pathrepoconf=$_POST["pathrepoconf"];
-if (isset($_POST["pathrepod"])) $pathrepod=$_POST["pathrepod"];
-if (isset($_POST["pathpxe"])) $pathpxe=$_POST["pathpxe"];
if (isset($_POST["puertorepo"])) $puertorepo=$_POST["puertorepo"];
if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
@@ -114,9 +108,6 @@ function Gestiona(){
global $nombrerepositorio;
global $ip;
global $passguor;
- global $pathrepoconf;
- global $pathrepod;
- global $pathpxe;
global $puertorepo;
global $comentarios;
@@ -134,15 +125,12 @@ function Gestiona(){
$cmd->CreaParametro("@nombrerepositorio",$nombrerepositorio,0);
$cmd->CreaParametro("@ip",$ip,0);
$cmd->CreaParametro("@passguor",$passguor,0);
- $cmd->CreaParametro("@pathrepoconf",$pathrepoconf,0);
- $cmd->CreaParametro("@pathrepod",$pathrepod,0);
- $cmd->CreaParametro("@pathpxe",$pathpxe,0);
$cmd->CreaParametro("@puertorepo",$puertorepo,0);
$cmd->CreaParametro("@comentarios",$comentarios,0);
switch($opcion){
case $op_alta :
- $cmd->texto="INSERT INTO repositorios(idcentro,grupoid,nombrerepositorio,ip,passguor,pathrepoconf,pathrepod,pathpxe,puertorepo,comentarios) VALUES (@idcentro,@grupoid,@nombrerepositorio,@ip,@passguor,@pathrepoconf,@pathrepod,@pathpxe,@puertorepo,@comentarios)";
+ $cmd->texto="INSERT INTO repositorios(idcentro,grupoid,nombrerepositorio,ip,passguor,puertorepo,comentarios) VALUES (@idcentro,@grupoid,@nombrerepositorio,@ip,@passguor,@puertorepo,@comentarios)";
$resul=$cmd->Ejecutar();
if ($resul){ // Crea una tabla nodo para devolver a la p�gina que llam� �sta
$idrepositorio=$cmd->Autonumerico();
@@ -154,7 +142,7 @@ function Gestiona(){
}
break;
case $op_modificacion:
- $cmd->texto="UPDATE repositorios SET nombrerepositorio=@nombrerepositorio,ip=@ip,passguor=@passguor,pathrepoconf=@pathrepoconf,pathrepod=@pathrepod,pathpxe=@pathpxe,puertorepo=@puertorepo,comentarios=@comentarios WHERE idrepositorio=@idrepositorio";
+ $cmd->texto="UPDATE repositorios SET nombrerepositorio=@nombrerepositorio,ip=@ip,passguor=@passguor,puertorepo=@puertorepo,comentarios=@comentarios WHERE idrepositorio=@idrepositorio";
$resul=$cmd->Ejecutar();
break;
case $op_eliminacion :
diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js
index b4b05984..57a833e0 100644
--- a/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js
+++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js
@@ -9,4 +9,7 @@ TbMsg[1]="El número de la partición debe ser mayor de 0";
TbMsg[2]="El tipo de partición no se ha especificado";
TbMsg[3]="El tamaño de la partición debe ser mayor que cero";
TbMsg[4]="ATENCIÓN: Se va a eliminar esta partición ¿ Está seguro ?";
+TbMsg[5]="Debe especificar el tipo de sistema de fichero si desea formatear la partición";
+TbMsg[6]="La CACHE sólo puede definirse en la partición 4";
+TbMsg[7]="El número máximo de particiones es 4";
diff --git a/admin/WebConsole/idiomas/javascripts/cat/ejecutaracciones_cat.js b/admin/WebConsole/idiomas/javascripts/cat/ejecutaracciones_cat.js
index 5a655679..2ebeff37 100644
--- a/admin/WebConsole/idiomas/javascripts/cat/ejecutaracciones_cat.js
+++ b/admin/WebConsole/idiomas/javascripts/cat/ejecutaracciones_cat.js
@@ -6,5 +6,4 @@
TbMsg=new Array;
TbMsg[0]="ATENCIÓN.- El Procedimiento será ejecutado aplicándolo a este ámbito. ¿ Está seguro ?";
TbMsg[1]="El Procedimiento ha sido gestionado correctamente para este ámbito";
-TbMsg[2]="ATENCIÓN.- El Procedimiento se convertirá en procedimiento de inicio (Autoexec) para todos los ordenadores de este ámbito. ¿ Está seguro ?";
-
+TbMsg[4]="\t!!!!! ATENCIÓ !!!!! \nHa seleccionat Unicast en diversos ordinadors,\nLa transferència pot demorar en el temps"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/cat/propiedades_menus_cat.js b/admin/WebConsole/idiomas/javascripts/cat/propiedades_menus_cat.js
index 5aafbe88..b0e2c34f 100644
--- a/admin/WebConsole/idiomas/javascripts/cat/propiedades_menus_cat.js
+++ b/admin/WebConsole/idiomas/javascripts/cat/propiedades_menus_cat.js
@@ -6,3 +6,4 @@
TbMsg=new Array;
TbMsg[0]="Debe introducir un nombre para este menú";
TbMsg[1]="ATENCIÓN: Hay ordenadores con este menú. No puede darlo de baja hasta que cambie este dato en dichos ordenadores";
+TbMsg[2]="Las url de los menús personalizados,privados o públicos, deben empezar con http:// o https://";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js
index 0175c9a6..3c62905a 100644
--- a/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js
@@ -4,12 +4,12 @@
// Idioma: Ings
//________________________________________________________________________________________________________
TbMsg=new Array;
-TbMsg[0]="WARNING.- There are not partitions table modified, therefore no command will be registered";
-TbMsg[1]="WARNING.- There are partitions with the same number, you must select another or remove it clicking in the last column";
-TbMsg[2]="WARNING.- The size of the partition must be greater than zero";
-TbMsg[3]="WARNING.- The partition must be correlative and there would not have spaces between partitions";
-TbMsg[4]="WARNING.- This partition is empty, therefore you can't to perform any operation";
-TbMsg[5]="WARNING.- This partition must be just formatted because the operating system has changed or has changed the size of some partition";
-TbMsg[6]="WARNING.- There is not coherent to hide this partition because it is not a Windows partition";
-TbMsg[7]="WARNING.- There is not coherent to show this partition because it is not a Windows partition";
-TbMsg[8]="You can't add more partitions";
+TbMsg[0]="WARNING.- There are partitions with the same number, you must select another or remove it clicking in the last column";
+TbMsg[1]="WARNING.- The number of the partition must be greater than zero";
+TbMsg[2]="El tipo de particin no se ha especificado";
+TbMsg[3]="WARNING.- The size of the partition must be greater than zero";
+TbMsg[4]="ATENCION: Se va a eliminar esta particin Esta seguro ?";
+TbMsg[5]="Debe especificar el tipo de sistema de ficheros si desea formatear la particion";
+TbMsg[6]="La CACHE solo puede definirse en la particion 4";
+TbMsg[7]="El nmero maximo de particiones es 4";
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js
index e2de10f6..577b52c8 100644
--- a/admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js
@@ -8,3 +8,4 @@ TbMsg[0]="WARNING.- Bash code will be performed Are you sure ?";
TbMsg[1]="You must introduce some code lines or at least a file with Bash code";
TbMsg[2]="You must introduce the title of the script whether you want to follow-up the accion or to save it like a procedure or task";
TbMsg[3]="You must introduce the description of the script whether you want to follow-up the accion or to save it like a procedure or task";
+TbMsg[4]="\t!!!!! WARNING !!!!! \nYou have selected unicast to multiple computers,\nThe transfer may be delayed in time"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js
index 22f45bae..ab85bf7e 100644
--- a/admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js
@@ -6,3 +6,4 @@
TbMsg=new Array;
TbMsg[0]="You must introduce a name for this menu";
TbMsg[1]="WARNING: There are computers managed by this menu. You can't remove them until you change menu to this computers";
+TbMsg[2]="Las url de los mens personalizados,privados o pblicos, deben empezar con http:// o https://";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js
index 0bbde452..2a65e061 100644
--- a/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js
@@ -9,4 +9,6 @@ TbMsg[1]="El número de la partición debe ser mayor de 0";
TbMsg[2]="El tipo de partición no se ha especificado";
TbMsg[3]="El tamaño de la partición debe ser mayor que cero";
TbMsg[4]="ATENCIÓN: Se va a eliminar esta partición ¿ Está seguro ?";
-TbMsg[5]="Debe especificar el tipo de fichero si desea formatear la partición";
+TbMsg[5]="Debe especificar el tipo de sistema de ficheros si desea formatear la partición";
+TbMsg[6]="La CACHE sólo puede definirse en la partición 4";
+TbMsg[7]="El número máximo de particiones es 4";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js
index 80da1b67..4d084149 100644
--- a/admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js
@@ -6,3 +6,4 @@
TbMsg=new Array;
TbMsg[0]="";
TbMsg[1]="El script debe tener alguna linea de código";
+TbMsg[4]="\t!!!!! ATENCIÓN !!!!! \nHa seleccionado UNICAST en varios ordenadores,\nLa transferencia puede demorarse en el tiempo"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js
index 5aafbe88..b0e2c34f 100644
--- a/admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js
@@ -6,3 +6,4 @@
TbMsg=new Array;
TbMsg[0]="Debe introducir un nombre para este menú";
TbMsg[1]="ATENCIÓN: Hay ordenadores con este menú. No puede darlo de baja hasta que cambie este dato en dichos ordenadores";
+TbMsg[2]="Las url de los menús personalizados,privados o públicos, deben empezar con http:// o https://";
diff --git a/admin/WebConsole/idiomas/php/cat/avisos_cat.php b/admin/WebConsole/idiomas/php/cat/avisos_cat.php
index 4ae75daa..eb927081 100644
--- a/admin/WebConsole/idiomas/php/cat/avisos_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/avisos_cat.php
@@ -9,5 +9,6 @@ if (empty ($TbMsg)) $TbMsg=array();
$TbMsg["WARN_NAMELENGTH"]='AVÍS: El nom d\'equip no ha de superar els 15 caràcters si s\'instalen sistemes Windows.';
$TbMsg["WARN_NETBOOT"]='ATENCI&Oacute;N: El equipo iniciar&aacute; en local por defecto; usar NetBoot Avanzado para modificar su arranque.';
$TbMsg["WARN_REBOOTAFTER"]='AVÍS: Es realitzarà automàticament un reinici després d\'executar l\'operació.';
+$TbMsg["WARN_NOTESOFMENU"]='NOTAS: Los men&uacute;s personalizados tienen mayor prioridad que los men&uacute;s autom&aacute;ticos.<br>Un men&uacute; personalizado se define introduciendo la URL de la p&aacute;gina HTML que lo define.<br>Un men&uacute; autom&aacute;tico se compone a partir de los procedimientos definidos.';
?>
diff --git a/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php
index acc4c2e8..0501064a 100644
--- a/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php
@@ -1,16 +1,19 @@
-<?
+<?php
//________________________________________________________________________________________________________
//
// Fichero de idiomas php: informacion_repositorio_cat.php
// Idioma: Català
//________________________________________________________________________________________________________
- $TbMsg=array();
+ if (empty ($TbMsg)) $TbMsg=array();
$TbMsg[0]='Repositoris';
$TbMsg[1]='Informació sobre Repositoris';
$TbMsg[2]='Repositori';
$TbMsg[3]='Informació Repositori';
$TbMsg[4]='Comentaris';
$TbMsg[5]='Imatges allotjades';
+ $TbMsg["IMGTYPE1"]='monolitic';
+ $TbMsg["IMGTYPE2"]='sincronizada b&iacute;sica';
+ $TbMsg["IMGTYPE3"]='sincronizada incremental';
$TbMsg[6]='Ordinadors assignats';
?>
diff --git a/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php b/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php
index fc760544..5365ff39 100644
--- a/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php
@@ -23,6 +23,7 @@ $TbMsg["CONFIG_PARTTABLE"]='Tabla de particiones';
$TbMsg["VARIABLE"]='Variable';
$TbMsg["CACHE_CONTENT"]='Data/Caché';
$TbMsg["CACHE_FREESPACE"]='Cach&eacute; libre';
+$TbMsg["CACHE_COMPLETE"]='CACHE COMPLETA';
$TbMsg["SAMESYSTEM_IMAGE"]='Imagen (mismo tipo partici&oacute;n)';
$TbMsg["DIFFERENTSYSTEM_IMAGE"]='Imagen (distinto tipo partici&oacute;n)';
diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php
index 12fa7942..c3c72b9d 100644
--- a/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php
@@ -1,4 +1,4 @@
-<?
+<?php
//________________________________________________________________________________________________________
//
// Fitxer d'idioms php: propiedades_menus_cat.php
@@ -13,14 +13,13 @@ $TbMsg[4]="Gesti Menus";
$TbMsg[5]="Nom del Men";
$TbMsg[6]="Ttol";
$TbMsg[7]="Comentaris";
-$TbMsg[8]="tems pblics del Men";
+$TbMsg[8]="Items de Men Pblico";
$TbMsg[9]="Coordenada x";
$TbMsg[10]="Coordenada y";
-$TbMsg[11]="Modalitat";
-$TbMsg[12]="tems privats del Men";
+$TbMsg[11]="Columnas men automtico";
$TbMsg[13]="Men simple";
$TbMsg[14]="Men doble";
-$TbMsg[15]="Html men pblic";
-$TbMsg[16]="Html men privat";
+$TbMsg[15]="URL men personalizado";
$TbMsg[17]="Resoluci de pantalla";
-?> \ No newline at end of file
+$TbMsg[18]="Imagen de fondo";
+?>
diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php
index 7848de59..440cbba9 100644
--- a/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php
@@ -16,4 +16,12 @@ $TbMsg[7]="Nom complet";
$TbMsg[8]="E-mail";
$TbMsg[9]="Unitat organitzativa";
$TbMsg[10]="Idioma";
-?>
+$TbMsg[11]="SuperAdministrador ";
+$TbMsg[12]="Administrador";
+$TbMsg[13]="Operador";
+$TbMsg[14]="Per realitzar canvis en aquest usuari<br>";
+$TbMsg[15]="creat en el procs d'installaci,<br><br>";
+$TbMsg[16]="
+premi aqu<br>";
+$TbMsg[17]="http://opengnsys.es/wiki/ModificarUsuarios";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/avisos_eng.php b/admin/WebConsole/idiomas/php/eng/avisos_eng.php
index ecfca0a1..316a167d 100644
--- a/admin/WebConsole/idiomas/php/eng/avisos_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/avisos_eng.php
@@ -9,5 +9,6 @@ if (empty ($TbMsg)) $TbMsg=array();
$TbMsg["WARN_NAMELENGTH"]='WARNING: The hostname must not exceed 15 characters if you install Windows systems.';
$TbMsg["WARN_NETBOOT"]='ATENCI&Oacute;N: El equipo iniciar&aacute; en local por defecto; usar NetBoot Avanzado para modificar su arranque.';
$TbMsg["WARN_REBOOTAFTER"]='WARNING: Client(s) will be automatically rebooted after executing the operation.';
+$TbMsg["WARN_NOTESOFMENU"]='NOTAS: Los men&uacute;s personalizados tienen mayor prioridad que los men&uacute;s autom&aacute;ticos.<br>Un men&uacute; personalizado se define introduciendo la URL de la p&aacute;gina HTML que lo define.<br>Un men&uacute; autom&aacute;tico se compone a partir de los procedimientos definidos.';
?>
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php
index 04db56b7..c9ae6ef5 100644
--- a/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/informacion_repositorio_eng.php
@@ -4,13 +4,16 @@
// Fichero de idiomas php: informacion_repositorio_eng.php
// Idioma: English
//________________________________________________________________________________________________________
- $TbMsg=array();
+ if (empty ($TbMsg)) $TbMsg=array();
$TbMsg[0]='Repositories';
$TbMsg[1]='Repositories Information';
$TbMsg[2]='Repository';
$TbMsg[3]='Repository Information';
$TbMsg[4]='Comments';
$TbMsg[5]='Hosted Images';
+ $TbMsg["IMGTYPE1"]='monolithic';
+ $TbMsg["IMGTYPE2"]='base synchronized';
+ $TbMsg["IMGTYPE3"]='incremental synchronized';
$TbMsg[6]='Computers assigned';
?>
diff --git a/admin/WebConsole/idiomas/php/eng/pintaParticiones_eng.php b/admin/WebConsole/idiomas/php/eng/pintaParticiones_eng.php
index 3e3cf4f6..d67825b8 100644
--- a/admin/WebConsole/idiomas/php/eng/pintaParticiones_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/pintaParticiones_eng.php
@@ -23,6 +23,7 @@ $TbMsg["CONFIG_PARTTABLE"]='Tabla de particiones';
$TbMsg["VARIABLE"]='Variable';
$TbMsg["CACHE_CONTENT"]='Contenido cach&eacute;';
$TbMsg["CACHE_FREESPACE"]='Cach&eacute; libre';
+$TbMsg["CACHE_COMPLETE"]='FULL CACHE';
$TbMsg["SAMESYSTEM_IMAGE"]='Imagen (mismo tipo partici&oacute;n)';
$TbMsg["DIFFERENTSYSTEM_IMAGE"]='Imagen (distinto tipo partici&oacute;n)';
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php
index 81fec455..f1bf3262 100644
--- a/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php
@@ -1,4 +1,4 @@
-<?
+<?php
//________________________________________________________________________________________________________
//
// Fichero de idiomas php: propiedades_menus_eng.php
@@ -13,16 +13,14 @@ $TbMsg[4]="Menus Management";
$TbMsg[5]="Menu name";
$TbMsg[6]="Title";
$TbMsg[7]="Comments";
-$TbMsg[8]="Public Items Menu";
+$TbMsg[8]="Public Menu Items";
$TbMsg[9]="Coordinate x";
$TbMsg[10]="Coordinate y";
-$TbMsg[11]="Modality";
-$TbMsg[12]="Private Items Menu";
+$TbMsg[11]="Columnas menú automático";
+$TbMsg[12]="Private Menu Items";
$TbMsg[13]="Simple menu";
$TbMsg[14]="Double menu";
-$TbMsg[15]="Html public menu";
-$TbMsg[16]="Html private menu";
+$TbMsg[15]="URL menú personalizado";
$TbMsg[17]="Screen resolution";
$TbMsg[18]="Background image";
?>
-
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php
index f8d3bfeb..c06c95f8 100644
--- a/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php
@@ -19,5 +19,8 @@ $TbMsg[10]="Language ";
$TbMsg[11]="Super-Administrator";
$TbMsg[12]="Administrator";
$TbMsg[13]="Operator";
-?>
-
+$TbMsg[14]="To make changes to this user<br>";
+$TbMsg[15]="created in the installation,<br><br>";
+$TbMsg[16]="click here<br>";
+$TbMsg[17]="http://opengnsys.es/wiki/ModificarUsuarios";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/avisos_esp.php b/admin/WebConsole/idiomas/php/esp/avisos_esp.php
index 5d20dc91..e3f35c23 100644
--- a/admin/WebConsole/idiomas/php/esp/avisos_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/avisos_esp.php
@@ -9,5 +9,6 @@ if (empty ($TbMsg)) $TbMsg=array();
$TbMsg["WARN_NAMELENGTH"]='AVISO: El nombre de equipo no debe superar los 15 caracteres si se instalan sistemas Windows.';
$TbMsg["WARN_NETBOOT"]='ATENCI&Oacute;N: El equipo iniciar&aacute; en local por defecto; usar NetBoot Avanzado para modificar su arranque.';
$TbMsg["WARN_REBOOTAFTER"]='AVISO: Se realizar&aacute; autom&aacute;ticamente un reinicio despu&eacute;s de ejecutar la operaci&oacute;n.';
+$TbMsg["WARN_NOTESOFMENU"]='NOTAS: Los men&uacute;s personalizados tienen mayor prioridad que los men&uacute;s autom&aacute;ticos.<br>Un men&uacute; personalizado se define introduciendo la URL de la p&aacute;gina HTML que lo define.<br>Un men&uacute; autom&aacute;tico se compone a partir de los procedimientos definidos.';
?>
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php
index a05dca48..ccfd489d 100644
--- a/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php
@@ -1,16 +1,19 @@
-<?
+<?php
//________________________________________________________________________________________________________
//
// Fichero de idiomas php: informacion_repositorio_esp.php
// Idioma: Español
//________________________________________________________________________________________________________
- $TbMsg=array();
+ if (empty ($TbMsg)) $TbMsg=array();
$TbMsg[0]='Repositorios';
$TbMsg[1]='Información sobre Repositorios';
$TbMsg[2]='Repositorio';
$TbMsg[3]='Información Repositorio';
$TbMsg[4]='Comentarios';
$TbMsg[5]='Imágenes alojadas';
+ $TbMsg["IMGTYPE1"]='monol&iacute;tica';
+ $TbMsg["IMGTYPE2"]='sincronizada b&iacute;sica';
+ $TbMsg["IMGTYPE3"]='sincronizada incremental';
$TbMsg[6]='Ordenadores asigandos';
?>
diff --git a/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php b/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php
index 99985f7d..2b0bdc3f 100644
--- a/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php
@@ -23,6 +23,7 @@ $TbMsg["CONFIG_PARTTABLE"]='Tabla de particiones';
$TbMsg["VARIABLE"]='Variable';
$TbMsg["CACHE_CONTENT"]='Fecha/Cach&eacute;';
$TbMsg["CACHE_FREESPACE"]='Cach&eacute; libre';
+$TbMsg["CACHE_COMPLETE"]='CACHE COMPLETA';
$TbMsg["SAMESYSTEM_IMAGE"]='Imagen (mismo tipo partici&oacute;n)';
$TbMsg["DIFFERENTSYSTEM_IMAGE"]='Imagen (distinto tipo partici&oacute;n)';
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php
index d27cb5c9..b39705ef 100644
--- a/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php
@@ -13,15 +13,12 @@ $TbMsg[4]="Gestión Menús";
$TbMsg[5]="Nombre del Menú";
$TbMsg[6]="Título";
$TbMsg[7]="Comentarios";
-$TbMsg[8]="Items públicos del Menú";
-$TbMsg[9]="Coordenada X";
-$TbMsg[10]="Coordenada Y";
-$TbMsg[11]="Modalidad";
-$TbMsg[12]="Items privados del Menú";
+$TbMsg[8]="Items de Menú Público";
+$TbMsg[11]="Columnas menú automático";
+$TbMsg[12]="Items de Menú Privado";
$TbMsg[13]="Menú simple";
$TbMsg[14]="Menú doble";
-$TbMsg[15]="URL menú público";
-$TbMsg[16]="URL menú privado";
+$TbMsg[15]="URL menú personalizado";
$TbMsg[17]="Resolución de pantalla";
$TbMsg[18]="Imagen de fondo";
?>
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php
index fd06af09..dfe15349 100644
--- a/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php
@@ -19,4 +19,8 @@ $TbMsg[10]="Idioma ";
$TbMsg[11]="SuperAdministrador ";
$TbMsg[12]="Administrador";
$TbMsg[13]="Operador";
-?>
+$TbMsg[14]="Para realizar cambios en este usuario<br>";
+$TbMsg[15]="creado en el proceso de instalación,<br><br>";
+$TbMsg[16]="pulse aquí<br>";
+$TbMsg[17]="http://opengnsys.es/wiki/ModificarUsuarios";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/pintaParticiones.php b/admin/WebConsole/includes/pintaParticiones.php
index 2ef909e6..90dff53f 100644
--- a/admin/WebConsole/includes/pintaParticiones.php
+++ b/admin/WebConsole/includes/pintaParticiones.php
@@ -123,7 +123,11 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
$numero=1;
for ($x=0;$x<count($ima); $x++) {
if(substr($ima[$x],-3)==".MB") {
- echo '<strong>'.$TbMsg["CACHE_FREESPACE"].': '.$ima[$x].'</strong>';
+ if ( $ima[$x] == "0.MB" ){
+ echo '<font color=red><strong>'.$TbMsg["CACHE_COMPLETE"].': '.$ima[$x].'</strong></font>';
+ }else{
+ echo '<strong>'.$TbMsg["CACHE_FREESPACE"].': '.$ima[$x].'</strong>';
+ }
}elseif (! empty($ima[1])){
// $dir=is_dir('$ima');echo $dir;
// if ($ima == "directorio"){$dir="si";}
diff --git a/admin/WebConsole/index.php b/admin/WebConsole/index.php
index 11eb7746..61ea54b9 100644
--- a/admin/WebConsole/index.php
+++ b/admin/WebConsole/index.php
@@ -25,10 +25,6 @@ include_once("./includes/CreaComando.php");
include_once("./clases/AdoPhp.php");
include_once("./includes/HTMLSELECT.php");
-// Valores por defecto.
-$herror=0;
-$idcentro="";
-
// Control de errores.
if (isset($_GET["herror"])) $herror=$_GET["herror"];
if (isset($_POST["herror"])) $herror=$_POST["herror"];
@@ -39,10 +35,28 @@ if (!empty ($parmidi) and file_exists ("idiomas/php/$parmidi/acceso_$parmidi.php
}
include ("idiomas/php/$idi/acceso_$idi.php");
+$busidcentro="";
$cmd=CreaComando($cnx); // Crea objeto comando
if (!$cmd)
die($TbMsg["ACCESS_ERROR"]);
+ $rs=new Recordset;
+// $cmd->texto="SELECT * FROM centros WHERE idcentro='$idc'";
+ $cmd->texto="SELECT * FROM centros ";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $busidcentro=$rs->campos["identidad"];
+ }$rs->Cerrar();
+
+// Valores por defecto.
+$herror=0;
+if (empty($busidcentro)){
+ $idcentro="";
+}else{
+ $idcentro=$busidcentro;
+}
?>
<html>
<head>
diff --git a/admin/WebConsole/jscripts/aulas.js b/admin/WebConsole/jscripts/aulas.js
index c2634c3b..254e0ac0 100644
--- a/admin/WebConsole/jscripts/aulas.js
+++ b/admin/WebConsole/jscripts/aulas.js
@@ -140,7 +140,7 @@ function consola_remota(ambito){
function ver_log(ambito){
var nombre_ordenador=currentNodo.toma_infonodo();
var whref="../principal/verlog.php?nombreordenador="+nombre_ordenador;
- window.open(whref,"","width=400,height=100,scrollbars=YES,resizable=YES")
+ window.open(whref,"","width=1024,height=870,scrollbars=YES,resizable=YES")
}
//________________________________________________________________________________________________________
@@ -152,7 +152,7 @@ function ver_log(ambito){
function ver_log_seguimiento(ambito){
var nombre_ordenador=currentNodo.toma_infonodo();
var whref="../principal/verlogseguimiento.php?nombreordenador="+nombre_ordenador;
- window.open(whref,"","width=400,height=100,scrollbars=YES,resizable=YES")
+ window.open(whref,"","width=1024,height=870,scrollbars=YES,resizable=YES")
}
//________________________________________________________________________________________________________
@@ -231,7 +231,7 @@ function confirmarcomando(ambito,idcomando,descricomando,pagina,gestor,funcion){
reset_contextual(-1,-1); // Oculta menu contextual
document.fcomandos.idcomando.value=idcomando; // Identificador del comandos
document.fcomandos.descricomando.value=descricomando; // Descripción del comandos
- document.fcomandos.ambito.value=ambito; // Ámbito de aplicación
+ document.fcomandos.ambito.value=ambito; // ?mbito de aplicación
document.fcomandos.idambito.value=currentNodo.toma_identificador(); // Identificador del ámbito
document.fcomandos.nombreambito.value=currentNodo.toma_infonodo() ; // Nombre del ámbito
document.fcomandos.action=pagina; // Página interactiva del comando
diff --git a/admin/WebConsole/jscripts/propiedades_menus.js b/admin/WebConsole/jscripts/propiedades_menus.js
index b270eebf..7a7ae518 100644
--- a/admin/WebConsole/jscripts/propiedades_menus.js
+++ b/admin/WebConsole/jscripts/propiedades_menus.js
@@ -74,10 +74,18 @@ function confirmar(op){
// Comprobar_datos
//___________________________________________________________________________________________________________
function comprobar_datos(){
+ var url=[document.fdatos.htmlmenupub.value,document.fdatos.htmlmenupri.value];
+ var expreg=new RegExp("^http://|^https://");
if (document.fdatos.descripcion.value=="") {
alert(TbMsg[0]);
document.fdatos.descripcion.focus();
return(false);
}
+ for (i = 0; i < url.length; i++) {
+ if (url[i]!="" && ! expreg.test(url[i])) {
+ alert(TbMsg[2]);
+ return(false);
+ }
+ }
return(true);
}
diff --git a/admin/WebConsole/jscripts/propiedades_repositorios.js b/admin/WebConsole/jscripts/propiedades_repositorios.js
index abe90b46..62c742f5 100644
--- a/admin/WebConsole/jscripts/propiedades_repositorios.js
+++ b/admin/WebConsole/jscripts/propiedades_repositorios.js
@@ -95,16 +95,6 @@ function comprobar_datos(){
document.fdatos.puertorepo.focus();
return(false);
}
- if (document.fdatos.pathrepod.value=="") {
- alert(TbMsg[4]);
- document.fdatos.pathrepod.focus();
- return(false);
- }
- if (document.fdatos.pathpxe.value=="") {
- alert(TbMsg[5]);
- document.fdatos.pathpxe.focus();
- return(false);
- }
return(true);
}
diff --git a/admin/WebConsole/propiedades/propiedades_menus.php b/admin/WebConsole/propiedades/propiedades_menus.php
index ffc645d1..efe3575b 100644
--- a/admin/WebConsole/propiedades/propiedades_menus.php
+++ b/admin/WebConsole/propiedades/propiedades_menus.php
@@ -25,11 +25,7 @@ $opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
$idmenu=0;
$descripcion="";
$titulo="";
-$coorx=0;
-$coory=0;
$modalidad=0;
-$scoorx=0;
-$scoory=0;
$smodalidad=0;
$comentarios="";
$grupoid=0;
@@ -160,23 +156,12 @@ if ($opcion!=$op_alta){
<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
<TR>
- <TD align=center colspan=6>&nbsp;<b><?echo $TbMsg[8]?></b>&nbsp;</TD>
+ <TD align=center colspan=2>&nbsp;<b><?echo $TbMsg[8]?></b>&nbsp;</TD>
</TR>
<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<TR>
- <TH align=center>&nbsp; <?echo $TbMsg[9]?>&nbsp;</TH>
- <?if ($opcion==$op_eliminacion)
- echo '<TD style="width:50">'.$coorx.'</TD>';
- else
- echo '<TD><INPUT class="formulariodatos" name=coorx style="width:50" type=text value="'.$coorx.'"></TD>';?>
- <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TH>
- <?if ($opcion==$op_eliminacion)
- echo '<TD style="width:50">'.$coorx.'</TD>';
- else
- echo '<TD><INPUT class="formulariodatos" name=coory style="width:50" type=text value="'.$coory.'"></TD>';?>
- <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TH>
- <?
- if ($opcion==$op_eliminacion){
+ <TH align=center>&nbsp;<?php echo $TbMsg[11]?>&nbsp;</TH>
+ <?php if ($opcion==$op_eliminacion){
$tbmodalidad[1]=$TbMsg[13];
$tbmodalidad[2]=$TbMsg[14];
echo '<TD style="width:100">'.$tbmodalidad[$modalidad].'</TD>';
@@ -206,19 +191,8 @@ if ($opcion!=$op_alta){
</TR>
<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<TR>
- <TH align=center>&nbsp;<?echo $TbMsg[9]?>&nbsp;</TH>
- <?if ($opcion==$op_eliminacion)
- echo '<TD style="width:50">'.$scoorx.'</TD>';
- else
- echo '<TD><INPUT class="formulariodatos" name=scoorx style="width:50" type=text value="'.$scoorx.'"></TD>';?>
- <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TH>
- <?if ($opcion==$op_eliminacion)
- echo '<TD style="width:50">'.$scoorx.'</TD>';
- else
- echo '<TD><INPUT class="formulariodatos" name=scoory style="width:50" type=text value="'.$scoory.'"></TD>';?>
- <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TH>
- <?
- if ($opcion==$op_eliminacion){
+ <TH align=center>&nbsp;<?php echo $TbMsg[11]?>&nbsp;</TH>
+ <?php if ($opcion==$op_eliminacion){
$tbmodalidad[1]=$TbMsg[13];
$tbmodalidad[2]=$TbMsg[14];
echo '<TD style="width:100">'.$tbmodalidad[$smodalidad].'</TD>';
@@ -234,15 +208,21 @@ if ($opcion!=$op_alta){
?>
</TR>
<TR>
- <TH align=center>&nbsp; <?echo $TbMsg[16]?>&nbsp;</TH>
+ <TH align=center>&nbsp; <?echo $TbMsg[15]?>&nbsp;</TH>
<?if ($opcion==$op_eliminacion)
echo '<TD colspan=5">'.$htmlmenupri.'</TD>';
else
echo '<TD colspan=5><INPUT class="formulariodatos" name=htmlmenupri style="width:350" type=text value="'.$htmlmenupri.'"></TD>';
?>
</TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
</TABLE>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <br>
+ <table align="center" border="0" cellpadding="1" cellspacing="1" class="tabla_datos">
+ <?php if ($opcion!=$op_eliminacion)
+ echo '<tr><th align="center">&nbsp;'.$TbMsg["WARN_NOTESOFMENU"].'&nbsp;</th></th>';
+ ?>
+ </table>
</FORM>
</DIV>
<?php
@@ -262,11 +242,7 @@ include_once("../includes/opcionesbotonesop.php");
function TomaPropiedades($cmd,$id){
global $descripcion;
global $titulo;
- global $coorx;
- global $coory;
global $modalidad;
- global $scoorx;
- global $scoory;
global $smodalidad;
global $comentarios;
global $htmlmenupub;
@@ -282,11 +258,7 @@ function TomaPropiedades($cmd,$id){
if (!$rs->EOF){
$descripcion=$rs->campos["descripcion"];
$titulo=$rs->campos["titulo"];
- $coorx=$rs->campos["coorx"];
- $coory=$rs->campos["coory"];
$modalidad=$rs->campos["modalidad"];
- $scoorx=$rs->campos["scoorx"];
- $scoory=$rs->campos["scoory"];
$smodalidad=$rs->campos["smodalidad"];
$comentarios=$rs->campos["comentarios"];
$htmlmenupub=$rs->campos["htmlmenupub"];
diff --git a/admin/WebConsole/propiedades/propiedades_repositorios.php b/admin/WebConsole/propiedades/propiedades_repositorios.php
index deee1367..0e396ff8 100644
--- a/admin/WebConsole/propiedades/propiedades_repositorios.php
+++ b/admin/WebConsole/propiedades/propiedades_repositorios.php
@@ -21,8 +21,6 @@ $idrepositorio=0;
$nombrerepositorio="";
$ip="";
$puertorepo="2002";
-$pathrepod="/opt/opengnsys/admin";
-$pathpxe="/opt/opengnsys/tftpboot/pxelinux.cfg";
$grupoid=0;
$comentarios="";
$ordenadores=0; // Número de ordenador a los que da servicio
@@ -137,26 +135,6 @@ else{
</TR>
<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<TR>
- <TH align=center>&nbsp;<?echo $TbMsg[9]?>&nbsp;</TD>
- <?
- if ($opcion==$op_eliminacion)
- echo '<TD colspan=2>'.$pathrepod.'</TD>';
- else
- echo'<TD colspan=2><INPUT class="formulariodatos" name=pathrepod type=text style="width:330" value="'.$pathrepod.'"></TD>';
- ?>
- </TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
- <TR>
- <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TD>
- <?
- if ($opcion==$op_eliminacion)
- echo '<TD colspan=2>'.$pathpxe.'</TD>';
- else
- echo'<TD colspan=2><INPUT class="formulariodatos" name=pathpxe type=text style="width:330" value="'.$pathpxe.'"></TD>';
- ?>
- </TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
- <TR>
<TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
<?
if ($opcion==$op_eliminacion)
@@ -218,8 +196,6 @@ function TomaPropiedades($cmd,$id){
global $ip;
global $comentarios;
global $puertorepo;
- global $pathrepod;
- global $pathpxe;
global $ordenadores;
@@ -240,8 +216,6 @@ function TomaPropiedades($cmd,$id){
$ip=$rs->campos["ip"];
$comentarios=$rs->campos["comentarios"];
$puertorepo=$rs->campos["puertorepo"];
- $pathrepod=$rs->campos["pathrepod"];
- $pathpxe=$rs->campos["pathpxe"];
// $ordenadores=$rs->campos["numordenadores"];
}
$rs->Cerrar();
diff --git a/admin/WebConsole/propiedades/propiedades_usuarios.php b/admin/WebConsole/propiedades/propiedades_usuarios.php
index 8ba7762e..1bfb4d84 100644
--- a/admin/WebConsole/propiedades/propiedades_usuarios.php
+++ b/admin/WebConsole/propiedades/propiedades_usuarios.php
@@ -86,31 +86,31 @@ switch($idtipousuario){
<P align=center class=cabeceras><?echo $TbMsg[4]." (".$litusu.")"?><BR>
<SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
<TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
-<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+<!------------------------------------------------ NOMBRE USUARIO -------------------------------------------------------------------------------------------------->
<TR>
<TH>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TH>
- <?if ($opcion==$op_eliminacion || ($opcion==$op_modificacion && $idtipousuario!=$SUPERADMINISTRADOR)){?>
- <TD><?echo $usuario?>&nbsp&nbsp;<IMG src="<? echo $urlimg ?>"></TD>
+ <?if ($opcion==$op_eliminacion || $opcion==$op_modificacion && $idusuario==1){?>
+ <TD><INPUT type=hidden class=cajatexto name="usuario" style="width:100" value="<? echo $usuario?>"></INPUT><?echo $usuario?>&nbsp&nbsp;<IMG src="<? echo $urlimg ?>"></TD>
<?}else{?>
<TD><INPUT type=text class=cajatexto name="usuario" style="width:100" value="<? echo $usuario?>">
<IMG src="<? echo $urlimg ?>">
<?}?>
</TR>
-<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+<!---------------------------------------------------- PASSWORD -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<TR>
<TH>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TH>
- <?if ($opcion==$op_eliminacion || ($opcion==$op_modificacion && $idtipousuario!=$SUPERADMINISTRADOR)){?>
- <TD><?echo $pasguor?></TD>
+ <?if ($opcion==$op_eliminacion || $opcion==$op_modificacion && $idusuario==1){?>
+ <TD><INPUT type=hidden class=cajatexto name="pasguor" style="width:100" value="<? echo $pasguor?>"></INPUT><?echo $pasguor?></TD>
<?}else{?>
<TD><INPUT type=text class=cajatexto name="pasguor" style="width:100" value="<? echo $pasguor?>">
<?}?>
</TR>
-<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+<!--------------------------------------------------- NOMBRE COMPLETO ----------------------------------------------------------------------------------------------->
<TR>
<TH>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TH>
- <?if ($opcion==$op_eliminacion){?>
- <TD><?echo $nombre?></TD>
+ <?if ($opcion==$op_eliminacion || ($opcion==$op_modificacion && $idusuario==1)){?>
+ <TD><INPUT type=hidden class=cajatexto name="nombre" style="width:250" value="<? echo $nombre?>"></INPUT><?echo $nombre?></TD>
<?}else{?>
<TD><INPUT type=text class=cajatexto name="nombre" style="width:250" value="<? echo $nombre?>">
<?}?>
@@ -138,10 +138,29 @@ switch($idtipousuario){
</TABLE>
</FORM>
</DIV>
+
+<?php
+if ($idusuario==1){
+///*
+
+ echo '<TABLE id=tabla_conf align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>';
+ echo '<TR>';
+ echo '</TR>';
+ echo '<div onclick=window.open("http://opengnsys.es/wiki/ModificarUsuarios")><TR>';
+ echo '<TH align=center >&nbsp;'.$TbMsg[14].$TbMsg[15].$TbMsg[16].$TbMsg[17].'<a color=white href='.$TbMsg[17].' target=blank></a></br>'.$nombreambito.$TbMsg[23].'</br>'.$TbMsg[24].'&nbsp;</TH>';
+ echo '</TR></div>';
+ echo '</TABLE>';
+
+//*/
+}
+?>
<?
+if ($opcion==$op_eliminacion && $idusuario==1)
+{}else{
//________________________________________________________________________________________________________
include_once("../includes/opcionesbotonesop.php");
//________________________________________________________________________________________________________
+}
?>
</BODY>
</HTML>
diff --git a/admin/WebConsole/validacion/functions.php b/admin/WebConsole/validacion/functions.php
index c605c9eb..0d23c195 100644
--- a/admin/WebConsole/validacion/functions.php
+++ b/admin/WebConsole/validacion/functions.php
@@ -55,8 +55,8 @@ function TomaPropiedades($cmd){
//___________________________________________________________________________________________________
function RecuperaMenu($cmd,$iph){
$rs=new Recordset;
- $cmd->texto="SELECT menus.idcentro,menus.resolucion,menus.titulo,menus.idurlimg,menus.coorx,menus.coory,
- menus.modalidad,menus.scoorx,menus.scoory,menus.smodalidad,menus.htmlmenupub,menus.htmlmenupri,
+ $cmd->texto="SELECT menus.idcentro,menus.resolucion,menus.titulo,menus.idurlimg,
+ menus.modalidad,menus.smodalidad,menus.htmlmenupub,menus.htmlmenupri,
acciones_menus.tipoaccion,acciones_menus.idaccionmenu,acciones_menus.idtipoaccion,
acciones_menus.tipoitem,acciones_menus.descripitem,iconos.urlicono
FROM ordenadores
@@ -81,13 +81,8 @@ function GeneraMenu($rs,$tipo,$iph){
global $UrlPaginaIconos;
$titulo=$rs->campos["titulo"];
- $coorx=$rs->campos["coorx"];
- $coory=$rs->campos["coory"];
$modalidad=$rs->campos["modalidad"];
- $scoorx=$rs->campos["scoorx"];
- $scoory=$rs->campos["scoory"];
$smodalidad=$rs->campos["smodalidad"];
- $scoory=$rs->campos["scoory"];
$resolucion=$rs->campos["resolucion"];
$htmlmenupub=$rs->campos["htmlmenupub"];
$htmlmenupri=$rs->campos["htmlmenupri"];
@@ -98,8 +93,7 @@ function GeneraMenu($rs,$tipo,$iph){
$mod=$modalidad;
$codeHTML="";
- // Genera HTML de la p�ina en funci� de las propiedades del Men del clioente
- //$codeHTML.='<DIV style="POSITION:absolute;TOP:'.$coory."px;LEFT:".$coorx.'px">';
+ // Genera HTML de la página en función de las propiedades del menú del cliente.
$codeHTML.='<P align=center>';
$codeHTML.='<SPAN style="COLOR: #999999;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE: 20px;"><U>'.$titulo.'</U></SPAN>';
$codeHTML.='</BR>';
diff --git a/admin/WebConsole/varios/informacion_repositorios.php b/admin/WebConsole/varios/informacion_repositorios.php
index 22174c3d..40e6b819 100644
--- a/admin/WebConsole/varios/informacion_repositorios.php
+++ b/admin/WebConsole/varios/informacion_repositorios.php
@@ -1,4 +1,4 @@
-<?
+<?php
// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
@@ -41,13 +41,13 @@ $arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titul
</HEAD>
<BODY>
<P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
- <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/repositorios.gif"><BR><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/repositorio.gif"><BR><BR>
<IMG src="../images/iconos/repositorio.gif"><SPAN class=presentaciones>&nbsp;&nbsp;
<U><?echo $TbMsg[2]?></U>:<? echo $descripcionrepositorio?></SPAN></P>
<?echo $arbol->CreaArbolVistaXml(); // Crea arbol de configuraciones?>
</BODY>
</HTML>
-<?
+<?php
/**************************************************************************************************************************************************
Devuelve una cadena con formato XML de toda la información de los repositorios
Parametros:
@@ -145,7 +145,6 @@ function SubarbolXML_ImagenesDisponibles($cmd,$idrepositorio)
global $TbMsg;
$cadenaXML="";
- $gidimagen=0;
$cmd->texto="SELECT DISTINCT imagenes.* FROM imagenes
WHERE imagenes.idrepositorio=".$idrepositorio."
@@ -161,21 +160,13 @@ function SubarbolXML_ImagenesDisponibles($cmd,$idrepositorio)
$cadenaXML.='>';
}
while (!$rs->EOF){
- if ($gidimagen!=$rs->campos["idperfilsoft"]){
- if ($gidimagen){
- $cadenaXML.='</IMAGENES>';
- }
- $gidimagen=$rs->campos["idperfilsoft"];
- $cadenaXML.='<IMAGENES';
- // Atributos
- $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
- $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
- $cadenaXML.='>';
- }
+ $cadenaXML.='<IMAGENES';
+ $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].' ('.$TbMsg["IMGTYPE".$rs->campos["tipo"]].')"';
+ $cadenaXML.='</IMAGENES>';
$rs->Siguiente();
}
- if ($gidimagen){
- $cadenaXML.='</IMAGENES>';
+ if ($rs->numeroderegistros>0) {
$cadenaXML.='</DISPONIBLESIMAGENES>';
}
$rs->Cerrar();
diff --git a/admin/WebConsole/varios/menucliente.php b/admin/WebConsole/varios/menucliente.php
index b7694993..daaf76c6 100644
--- a/admin/WebConsole/varios/menucliente.php
+++ b/admin/WebConsole/varios/menucliente.php
@@ -50,7 +50,15 @@ else{
$gestor = fopen($nombre_archivo, 'r');
$contenidofichero = fread($gestor, filesize($nombre_archivo));
fclose($gestor);
- if (! empty ($contenidofichero)) {
+ if (empty ($contenidofichero)) {
+ // Sin caché local.
+ $cmd->texto="UPDATE ordenadores_particiones
+ SET cache=''
+ WHERE idordenador=(SELECT idordenador
+ FROM ordenadores
+ WHERE ip='".$iph."')";
+ } else {
+ // Actualizar datos de caché local.
$cmd->texto="UPDATE ordenadores_particiones
SET cache='".$contenidofichero."'
WHERE idordenador=(SELECT idordenador
@@ -59,8 +67,8 @@ else{
AND idsistemafichero=(SELECT idsistemafichero
FROM sistemasficheros
WHERE descripcion='CACHE')";
- $resul=$cmd->Ejecutar();
}
+ $resul=$cmd->Ejecutar();
//agp
//________________________________________________________________________________________________________
$rsmenu=RecuperaMenu($cmd,$iph); // Recupera un recordset con los datos del m en
@@ -69,7 +77,7 @@ else{
case $ITEMS_PUBLICOS:
if(!empty($rsmenu->campos["htmlmenupub"])){
$urlHtml=$rsmenu->campos["htmlmenupub"];
- if(strtoupper(substr($urlHtml,0,7))!="HTTP://") $urlHtml="http://".$urlHtml;
+ //if(strtoupper(substr($urlHtml,0,7))!="HTTP://") $urlHtml="http://".$urlHtml;
Header('Location: '.$urlHtml); // Url del menu personalizado
}
else{
@@ -82,7 +90,7 @@ else{
if(!empty($rsmenu->campos["htmlmenupri"])){
$urlHtml=$rsmenu->campos["htmlmenupri"];
- if(strtoupper(substr($urlHtml,0,7))!="HTTP://") $urlHtml="http://".$urlHtml;
+ //if(strtoupper(substr($urlHtml,0,7))!="HTTP://") $urlHtml="http://".$urlHtml;
Header('Location: '.$urlHtml); // Url del menu personalizado
}
else{
diff --git a/client/boot-tools/INSTALL.es.txt b/client/boot-tools/INSTALL.es.txt
index 3b7cd89d..afbf1de8 100644
--- a/client/boot-tools/INSTALL.es.txt
+++ b/client/boot-tools/INSTALL.es.txt
@@ -23,7 +23,7 @@ mv /opt/opengnsys/tftpboot/ogclient /opt/opengnsys/tftpboot/ogclient-old;
#1. Descargar del Subversion las herramientas del cliente
apt-get install subversion wget
-svn checkout http://www.opengnsys.es/svn/branches/version1.0/client /tmp/opengnsys_installer/opengnsys/client/;
+svn checkout http://www.opengnsys.es/svn/branches/version1.1/client /tmp/opengnsys_installer/opengnsys/client/;
find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null;
#2. Ejecutar el instalador:
diff --git a/client/boot-tools/boottoolsfunctions.lib b/client/boot-tools/boottoolsfunctions.lib
index 936b02a7..5027c650 100755
--- a/client/boot-tools/boottoolsfunctions.lib
+++ b/client/boot-tools/boottoolsfunctions.lib
@@ -92,7 +92,7 @@ case "${1,,}" in
export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
;;
esac
-SVNURL="http://opengnsys.es/svn/branches/version1.0/client"
+SVNURL="http://opengnsys.es/svn/branches/version1.1/client"
VERSIONSVN=$(LANG=C svn info $SVNURL | awk '/Rev:/ {print "r"$4}')
NAMEISOCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$OSRELEASE-$VERSIONSVN"
NAMEHOSTCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$VERSIONSVN"
diff --git a/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions
index 56b5187e..991ec890 100644
--- a/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions
+++ b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions
@@ -74,6 +74,8 @@ ogExportVarEnvironment ()
{
export CFGINITRD="/tmp/initrd.cfg"
OGPROTOCOL="${ogprotocol:-smb}"
+ # OPTIONS Para samba y local (a nfs no le afecta)
+ export OPTIONS=" -o user=opengnsys,pass=og"
case "$OGPROTOCOL" in
nfs|NFS)
export SRCOGLIVE="/var/lib/tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
@@ -82,14 +84,17 @@ ogExportVarEnvironment ()
export SRCOGIMAGES="/opt/opengnsys/images" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
;;
smb|SMB|cifs|CIFS|samba|SAMBA)
- export OPTIONS=" -o user=opengnsys,pass=og"
export SRCOGLIVE="tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
export SRCOGSHARE="ogclient" && echo "SRCOGSHARE=$SRCOGSHARE" >> $CFGINITRD
export SRCOGLOG="oglog" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
export SRCOGIMAGES="ogimages" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
;;
local|LOCAL)
+ # Ponemos variables SRC compatibles con smb y nfs.
export SRCOGLIVE="local"
+ export SRCOGSHARE="client" && echo "SRCOGSHARE=$SRCOGSHARE" >> $CFGINITRD
+ export SRCOGLOG="log" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
+ export SRCOGIMAGES="images" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
;;
esac
#punto de acceso al boot-tools live
@@ -214,8 +219,39 @@ ogPostConfigureFS()
#enlace si iniciamos desde ogprotocolo=local { cdrom, usb, cache } .
# monta el raiz del dispositivo local en /opt/og2fs/tftpboot - acceso al fichero .sqfs
# y monta el sistema root sqfs en /opt/og2fs/2ndfs
- [ "$LOCALMEDIA" == "CACHE" ] && ln -s $DSTOGLIVE /opt/opengnsys/cache
- [ "$ogprotocol" == "local" ] && ln -s ${OGLIVEROOTFS}/opt/opengnsys/* /opt/opengnsys/
+ #[ "$LOCALMEDIA" == "CACHE" ] && ln -s $DSTOGLIVE /opt/opengnsys/cache
+ #[ "$ogprotocol" == "local" ] && ln -s ${OGLIVEROOTFS}/opt/opengnsys/* /opt/opengnsys/
+ if [ "$ogprotocol" == "local" ]; then
+ # Creamos los subdirectorios de /opt/opengnsys/
+ [ "$ogstatus" == "offline" ] && ln -s ${OGLIVEROOTFS}/opt/opengnsys/* /opt/opengnsys/
+ # Montamos CACHE
+ # Si existe particion identificada como CACHE se monta.
+ DEVICECACHE=$(blkid -L "CACHE")
+ if [ "$DEVICECACHE" != "" ]; then
+ # Se monta diferente segun el dispositivo de cache igual o no al de ogclient.
+ DEVICEOGLIVE=$(df |grep $DSTOGLIVE|awk '{print $1}')
+ if [[ "$DEVICECACHE" == "*$DEVICEOGLIVE*" ]];then
+ mount --bind $DSTOGLIVE /opt/opengnsys/cache
+ else
+ mount $DEVICECACHE /opt/opengnsys/cache
+ fi
+ if [ "$ogstatus" == "offline" ]; then
+ [ -d /opt/opengnsys/cache/log ] || mkdir /opt/opengnsys/cache/log
+ mount --bind /opt/opengnsys/cache/log /opt/opengnsys/log
+ fi
+ fi
+ # Montamos REPO
+ if [ "$ogstatus" == "offline" ]; then
+ # Si estatus distinto de online buscamos un dispositivo con etiqueta repo
+ # y si no existe montamos la cache como repo (si existe).
+ TYPE=$(blkid | grep REPO | awk -F"TYPE=" '{print $2}' | tr -d \")
+ if [ "$TYPE" == "" ]; then
+ [ -d "/opt/opengnsys/cache$DSTOGIMAGES" ] && mount --bind /opt/opengnsys/cache$DSTOGIMAGES $DSTOGIMAGES
+ else
+ mount -t $TYPE LABEL=REPO $DSTOGIMAGES &>/dev/null
+ fi
+ fi
+ fi
#Montamos un directorio temporal para el apt-get
mount tmpfs /var/cache/apt/archives -t tmpfs -o size=15M
@@ -361,6 +397,17 @@ ogConnect ()
smb)
mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS}${READONLY}
;;
+ local)
+ # Comprobamos que estatus sea online y que la variable del server no esta vacia.
+ if [ "$ogstatus" != "offline" -a "$SERVER" != "" -a "$SRC" != "" ]; then
+ # Comprobamos que existe un servicio de samba.
+ smbclient -L $SERVER -N &>/dev/null
+ if [ $? -eq 0 ]; then
+ mount.cifs //${SERVER}/og${SRC} ${DST} ${OPTIONS}${READONLY}
+ fi
+ # TODO: buscar condicion para NFS
+ fi
+ ;;
esac
}
@@ -387,11 +434,11 @@ ogConnectOgLive ()
then
# Si local es particion CACHE es identificada como CACHE
mount LABEL=CACHE $DSTOGLIVE
- export LOCALMEDIA=CACHE
+ #export LOCALMEDIA=CACHE
fi
else
-# Si ogprotocol es remoto. TODO en smb rw y en nfs ro??
- ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
+ # Si ogprotocol es remoto. TODO en smb rw y en nfs ro??
+ ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
fi
# Si el montaje ha sido correcto, tanto en local como en remoto. Procedemos con la union
ogMergeLive
diff --git a/client/boot-tools/ogclientImg2Sqfs b/client/boot-tools/ogclientImg2Sqfs
new file mode 100755
index 00000000..5dfb2b00
--- /dev/null
+++ b/client/boot-tools/ogclientImg2Sqfs
@@ -0,0 +1,55 @@
+#!/bin/bash
+#/**
+#@brief Comprime el fichero ogclient.img en ogclient.sqfs.
+#@param none
+#@exeption 1 No es usuario root
+#@exeption 2 No existe el fichero ogclient.img
+#@date 2013-11.27
+#*/
+PROG="$(basename $0)"
+# Mostrar ayuda: Si se solicita, si faltan parametros o $3 no es SYNC1 o SYNC2.
+if [ "$*" == "help" ]; then
+ echo -e "$PROG: Comprime el fichero ogclient.img en ogclient.sqfs. \n"
+ " Uso: $PROG (sin parametros)"
+ exit 0
+fi
+
+if [ "$USER" != "root" ]; then
+ echo "$PROG: Error: solo ejecutable por root" >&2
+ exit 1
+fi
+
+
+DATE=$(date +%y-%m-%d)
+OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
+OGCLIENTBASEDIR=$OPENGNSYS/tftpboot/ogclient/;
+OGCLIENTFILE=${OGCLIENTBASEDIR}ogclient.img;
+OGCLIENTSQFS=${OGCLIENTBASEDIR}ogclient.sqfs
+OGCLIENTMOUNT=${OGCLIENTBASEDIR}ogclientmount;
+OGCLIENTSIZEMB=1900;
+OGCLIENTLABEL=ogClient;
+
+# Comprobamos que existe el cliente .sqfs
+! [ -f $OGCLIENTFILE -a -d $OGCLIENTMOUNT ] && echo "No existe $OGCLIENTFILE o $OGCLIENTMOUNT" && exit 3
+# Montamos ogclient.img.
+echo "Montamos ogclient.img."
+mkdir -p $OGCLIENTMOUNT;
+mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256;
+
+# Si existe ogclient.sqfs hacemos copia de seguridad.
+echo "Si existe ogclient.sqfs hacemos copia de seguridad."
+[ -f ${OGCLIENTSQFS} ] && mv ${OGCLIENTSQFS} ${OGCLIENTSQFS}.$DATE
+
+# Comprimimos el cliente.
+echo "Comprimimos el cliente."
+echo "mksquashfs $OGCLIENTMOUNT ${OGCLIENTSQFS}"
+mksquashfs $OGCLIENTMOUNT ${OGCLIENTSQFS}
+
+# Desmontamos el ogclient.img
+echo "Desmontamos el ogclient.img"
+umount $OGCLIENTMOUNT
+
+# Generamos nuevo archivo de suma de comprobación.
+echo "Generamos nuevo archivo de suma de comprobacion."
+mv ${OGCLIENTSQFS}.sum ${OGCLIENTSQFS}.sum.$DATE
+md5sum ${OGCLIENTSQFS} |awk '{print $1}' >${OGCLIENTSQFS}.sum
diff --git a/client/boot-tools/ogclientSqfs2Img b/client/boot-tools/ogclientSqfs2Img
new file mode 100755
index 00000000..4f8447da
--- /dev/null
+++ b/client/boot-tools/ogclientSqfs2Img
@@ -0,0 +1,120 @@
+#!/bin/bash
+#/**
+#@brief Descomprime el fichero ogclient.sqfs en ogclient.img con un formato donde podemos escribir.
+#@param none
+#@note Copiado del wiki: http://opengnsys.es/wiki/ClienteInitrdDSGenerarlo
+#@note para "entrar" en ogclient: schroot -c ogclient.img o mount ogclient.img ogclientmount -o loop,offset=32256
+#@exeption 1 No es usuario root
+#@exeption 2 No existe el fichero ogclient.sqfs
+#@date 2013-11.27
+#*/
+PROG="$(basename $0)"
+# Mostrar ayuda si se solicita.
+if [ "$*" == "help" ]; then
+ echo -e "$PROG: Descomprime el fichero ogclient.sqfs en ogclient.img con un formato donde podemos escribir. \n" \
+ " Uso: $PROG (sin parametros)"
+ exit 0
+fi
+
+if [ "$USER" != "root" ]; then
+ echo "$PROG: Error: solo ejecutable por root" >&2
+ exit 1
+fi
+
+
+
+DATE=$(date +%y-%m-%d)
+OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
+OGCLIENTBASEDIR=$OPENGNSYS/tftpboot/ogclient/;
+OGCLIENTSQFS=${OGCLIENTBASEDIR}ogclient.sqfs
+OGCLIENTFILE=${OGCLIENTBASEDIR}ogclient.img;
+OGCLIENTMOUNT=${OGCLIENTBASEDIR}ogclientmount;
+OGCLIENTSIZEMB=1900;
+OGCLIENTLABEL=ogClient;
+
+# Comprobamos que existe el cliente .sqfs
+! [ -f $OGCLIENTSQFS ] && echo "No existe $OGCLIENTSQFS" && exit 3
+
+# instalamos los paquetes necesarios.
+echo "Si no existen, instalamos los paquetes necesarios: squashfs-tools schroot."
+if ! which schroot unsquashfs 2>&1 >/dev/null; then
+ apt-get update
+ apt-get -y install squashfs-tools schroot
+fi
+
+# Creamos el archivo.
+echo -e "\nCreamos el archivo."
+echo dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB;
+dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB;
+DISKLOOP=$(losetup -f);
+losetup $DISKLOOP $OGCLIENTFILE;
+echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP;
+losetup -d $DISKLOOP ;
+
+# Creamos el sistema de ficheros.
+echo "Creamos el sistema de ficheros."
+echo "mkfs.ext4 -b 4096 -L $OGCLIENTLABEL $PARTLOOP"
+PARTLOOP=$(losetup -f);
+losetup -o 32256 $PARTLOOP $OGCLIENTFILE && mkfs.ext4 -b 4096 -L $OGCLIENTLABEL $PARTLOOP;
+losetup -d $PARTLOOP ;
+
+# Descomprimimos el ogclient.sqfs en el sistema de ficheros.
+mkdir -p $OGCLIENTMOUNT;
+echo "Descomprimimos el ogclient.sqfs en el sistema de ficheros."
+mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256;
+echo "unsquashfs -d ${OGCLIENTMOUNT}/ -f $OGCLIENTSQFS"
+unsquashfs -d ${OGCLIENTMOUNT}/ -f $OGCLIENTSQFS
+umount $OGCLIENTMOUNT;
+
+# Creamos los archivos de configuracion de schroot.
+echo "Creamos los archivos de configuracion de schroot."
+cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.$DATE
+cat << EOF > /etc/schroot/schroot.conf
+[ogclient.img]
+type=loopback
+file=${OGCLIENTBASEDIR}ogclient.img
+description=ogclient ubuntu luc IMGi
+#priority=1
+users=root
+groups=root
+root-groups=root
+mount-options=-o offset=32256
+root-users=root
+#[DIRogclient]
+#type=directory
+#directory=${OGCLIENTBASEDIR}ogclientmount
+#description=ogclient ubuntu lucid DIR
+#priority=2
+#users=root
+#groups=root
+#root-groups=root
+#root-users=root
+EOF
+
+cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.$DATE
+cat << EOF > /etc/schroot/mount-defaults
+# mount.defaults: static file system information for chroots.
+# Note that the mount point will be prefixed by the chroot path
+# (CHROOT_PATH)
+#
+# <file system> <mount point> <type> <options> <dump> <pass>
+proc /proc proc defaults 0 0
+#procbususb /proc/bus/usb usbfs defaults 0 0
+/dev /dev none rw,bind 0 0
+/dev/pts /dev/pts none rw,bind 0 0
+/dev/shm /dev/shm none rw,bind 0 0
+#/home /home none rw,bind 0 0
+/tmp /tmp none rw,bind 0 0
+EOF
+
+# Si existen dispositivos loop los eliminamos.
+echo "Si existen dispositivos loop los eliminamos."
+LOOPDEVICES=$(losetup -a|grep $OGCLIENTFILE |cut -d: -f1)
+for DEVICE in $LOOPDEVICES
+do
+ echo "losetup -d $DEVICE"
+ losetup -d $DEVICE
+done
+
+echo -e "Para \"entrar\" en ogclient: \n \t schroot -c ogclient.img o \n \t mount ogclient.img ogclientmount -o loop,offset=32256"
+echo "El servicio schroot montará el cliente automaticamente, si no queremos que pase hay que apagarlo."
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib
index 47a6f420..ea3badb7 100755
--- a/client/engine/Boot.lib
+++ b/client/engine/Boot.lib
@@ -990,11 +990,12 @@ rm -f ${MNTDIR}/etc/udev/rules.d/70-persistent-net.rules
}
#/**
-# ogGrubAddOgclient num_disk num_part [ timeout ]
+# ogGrubAddOgclient num_disk num_part [ timeout ] [ offline ]
#@brief Crea entrada de menu grub para ogclient, tomando como paramentros del kernel los actuales del cliente.
#@param 1 Numero de disco
#@param 2 Numero de particion
-#@param 3 timeout: Segundos de espera para iniciar el sistema operativo por defecto.
+#@param 3 timeout Segundos de espera para iniciar el sistema operativo por defecto (opcional)
+#@param 4 offline configura el modo offline [offline|online] (opcional)
#@return (nada)
#@exception OG_ERR_FORMAT Formato incorrecto.
#@exception OG_ERR_NOTFOUND No existe kernel o initrd en cache.
@@ -1003,18 +1004,19 @@ rm -f ${MNTDIR}/etc/udev/rules.d/70-persistent-net.rules
#*/
ogGrubAddOgclient () {
- local TIMEOUT DIRMOUNT GRUBGFC PARTTABLETYPE NUMDISK NUMPART KERNEL NUMLINE MENUENTRY
+ local TIMEOUT DIRMOUNT GRUBGFC PARTTABLETYPE NUMDISK NUMPART KERNEL STATUS NUMLINE MENUENTRY
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
- ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition time_out" \
- "$FUNCNAME 1 6 15"
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition [ time_out ] [ offline|online ] " \
+ "$FUNCNAME 1 1" \
+ "$FUNCNAME 1 6 15 offline"
return
fi
# Error si no se reciben 2 parámetros.
[ $# -lt 2 ] && return $(ogRaiseError session $OG_ERR_FORMAT "$MSG_FORMAT: $FUNCNAME num_disk num_part [ timeout ]"; echo $?)
- TIMEOUT="$3"
+ [[ "$3" =~ ^[0-9]*$ ]] && TIMEOUT="$3"
# Error si no existe el kernel y el initrd en la cache.
# Falta crear nuevo codigo de error.
@@ -1038,6 +1040,12 @@ ogGrubAddOgclient () {
let NUMDISK=$NUMDISK-1
# kernel y sus opciones. Pasamos a modo usuario
KERNEL="/boot/ogvmlinuz $(sed -e s/^.*linuz//g -e s/ogactiveadmin=true/ogactiveadmin=false/g /proc/cmdline)"
+
+ # Configuracion offline si existe parametro
+ echo "$@" |grep offline &>/dev/null && STATUS=offline
+ echo "$@" |grep online &>/dev/null && STATUS=online
+ [ -z "$STATUS" ] || KERNEL="$(echo $KERNEL | sed s/"ogprotocol=[a-z]* "/"ogprotocol=local "/g ) ogstatus=$STATUS"
+
# Numero de línea de la primera entrada del grub.
NUMLINE=$(grep -n -m 1 "^menuentry" $GRUBGFC|cut -d: -f1)
# Texto de la entrada de opengnsys
diff --git a/client/engine/FileSystem.lib b/client/engine/FileSystem.lib
index d3e164d6..257c5a23 100755
--- a/client/engine/FileSystem.lib
+++ b/client/engine/FileSystem.lib
@@ -227,7 +227,7 @@ esac
function ogFormatFs ()
{
# Variables locales
-local PART ID TYPE LABEL PROG PARAMS LABELPARAM ERRCODE
+local PART TYPE LABEL PROG PARAMS LABELPARAM ERRCODE
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -244,7 +244,7 @@ fi
PART="$(ogDiskToDev $1 $2)" || return $?
# Error si la partición está montada o bloqueada.
if ogIsMounted $1 $2; then
- ogRaiseError $OG_ERR_PARTITION "$1 $2" # Indicar nuevo error
+ ogRaiseError $OG_ERR_DONTFORMAT "$MSG_MOUNT: $1 $2"
return $?
fi
if ogIsLocked $1 $2; then
@@ -384,7 +384,7 @@ echo ${SIZE%.0*}
function ogGetFsType ()
{
# Variables locales.
-local PART ID TYPE
+local PART TYPE
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_nfilesys" \
@@ -396,16 +396,13 @@ fi
# Detectar tipo de sistema de archivo (independientemente del tipo de partición).
PART=$(ogDiskToDev "$1" "$2") || return $?
-TYPE=$(blkid -o export $PART | awk -F= '$1~/^TYPE/ { print toupper($2) }')
+TYPE=$(blkid -o export $PART | awk -F= '$1=="TYPE" { print toupper($2) }')
# Componer valores correctos.
case "$TYPE" in
EXT4) # Comprobar si es caché o Ext4.
- if [ "$1 $2" == "$(ogFindCache)" ]; then
- ogIsFormated $1 $2 2>/dev/null && TYPE="CACHE"
- fi
- ;;
- VFAT) TYPE="$(blkid -po export $PART | awk -F= '$1~/^VERSION$/ { print toupper($2) }')" ;;
+ [ "$1 $2" == "$(ogFindCache)" ] && TYPE="CACHE" ;;
+ VFAT) TYPE="$(blkid -po export $PART | awk -F= '$1=="VERSION" { print toupper($2) }')" ;;
SWAP) TYPE="LINUX-SWAP" ;;
LVM*) TYPE="LINUX-LVM" ;;
*RAID*) TYPE="LINUX-RAID" ;;
diff --git a/client/engine/Inventory.lib b/client/engine/Inventory.lib
index 03e9b589..4cbdcabb 100755
--- a/client/engine/Inventory.lib
+++ b/client/engine/Inventory.lib
@@ -68,7 +68,7 @@ ogGetOsVersion "$@" | cut -sf1 -d:
#@version 1.0.5 - Incluir tipos GrubLoader, Hurd y WinLoader, leer por defecto fichero /etc/os-release.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2013-10-07
-#@version 1.0.6 - Detectar GrubLoader al final.
+#@version 1.0.6 - Detectar GrubLoader al final y sistemas basados en EFI.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2014-08-27
#*/ ##
@@ -133,12 +133,11 @@ fi
if [ -z "$VERSION" ]; then
TYPE="WinLoader"
FILE="$(ogGetPath $MNTDIR/boot/bcd)"
+ [ -z "$FILE" ] && FILE="$(ogGetPath $MNTDIR/EFI/Microsoft/boot/bcd)"
if [ -n "$FILE" ]; then
- for DISTRIB in "Windows 8" "Windows 7" "Windows Vista" \
- "Windwos Server 2008" "Windwos Server 2008 R2" \
- "Windwos Recovery Environment"; do
+ for DISTRIB in "Windows Recovery" "Windows Boot"; do
if grep -qs "$(echo "$DISTRIB" | sed 's/./&./g')" $FILE; then
- VERSION="$DISTRIB loader"
+ VERSION="$DISTRIB loader"
fi
done
fi
diff --git a/client/engine/Protocol.lib b/client/engine/Protocol.lib
index 75755fa4..8c0b4c61 100755
--- a/client/engine/Protocol.lib
+++ b/client/engine/Protocol.lib
@@ -984,8 +984,8 @@ ctorrent -t `basename $SOURCE` -u http://$IPTORRENT:6969/announce -s $SOURCE.tor
#@param 1 str_REPO
#@param 2 str_Relative_path_file_OGIMG_with_/
#@param 3 md5 to check: use full to check download image torrent
-#@return 0 (true)si es necesario actualizar el fichero.
-#@return 1 (false) si la imagen ya esta en la cache, por lo tanto no es necesario actualizar el fichero
+#@return 0 (true) cache sin imagen, SI es necesario actualizar el fichero.
+#@return 1 (false) imagen en la cache, NO es necesario actualizar el fichero
#@return >1 (false) error de sintaxis (TODO)
#@note
#@todo: Proceso en el caso de que el fichero tenga el mismo nombre, pero su contenido sea distinto.
@@ -1016,37 +1016,34 @@ fi
#Control de la cache
ogFindCache || return $(ogRaiseError $OG_ERR_NOTCACHE; echo $?)
-
-#TODO: return 0->true, 1->false; si error, aunque sintaxis devuelve > 1
-
#Control de parametros: ahora admite tres.
[ $# > "3" ] || return $(ogRaiseError $OG_ERR_NOTFOUND " $1 $2"; echo $?)
ogCheckStringInGroup "$1" "REPO repo" || return $(ogRaiseError $OG_ERR_NOTFOUND " $1 $2"; echo $?)
FILESOURCE=`ogGetPath $1 $2` || return $(ogRaiseError $OG_ERR_NOTFOUND " $1 $2"; echo $?)
-#echo "paso 1. si no existe la imagen, confirmamos que es necesaria la actualizacion de la cache."
+#echo "paso 1. si no existe la imagen, confirmar que es necesario actualizar la cache."
FILETARGET=`ogGetPath CACHE $2`
if [ -z $FILETARGET ]
then
# borramos el fichero bf del torrent, en el caso de que se hubiese quedado de algun proceso fallido
- ogDeleteFile CACHE "/$2.torrent.bf" &> /dev/null
- ogDeleteFile CACHE "/$2.sum" &> /dev/null
- ogDeleteFile CACHE "/$2.full.sum" &> /dev/null
- echo "TRUE=0, es necesario actualizar. Paso 1, la cache no contiene esa imagen "
+ ogGetPath CACHE "/$2.torrent.bf" && ogDeleteFile CACHE "/$2.torrent.bf" &> /dev/null
+ ogGetPath CACHE "/$2.sum" && ogDeleteFile CACHE "/$2.sum" &> /dev/null
+ ogGetPath CACHE "/$2.full.sum" && ogDeleteFile CACHE "/$2.full.sum" &> /dev/null
+ echo "TRUE(0), es necesario actualizar. Paso 1, la cache no contiene esa imagen "
return 0
fi
#echo "Paso 2. Comprobamos que la imagen no estuviese en un proceso previo torrent"
if ogGetPath $FILETARGET.torrent.bf > /dev/null
then
- #TODO: comprobar los md5 para asegurarnos que la imagen es la misma.
- echo "TRUE=0, es necesario actualizar. Paso 2, la imagen esta en un estado de descarga torrent interrumpido"
+ #TODO: comprobar los md5 del fichero .torrent para asegurarnos que la imagen a descarga es la misma.
+ echo "TRUE(0), es necesario actualizar. Paso 2, la imagen esta en un estado de descarga torrent interrumpido"
return 0
fi
## En este punto la imagen en el repo y en la cache se llaman igual,
-#echo "paso 4. recuperamos o calculamos los md5 de los ficheros segun PROTOCOLO"
+#echo "paso 4. Obtener los md5 del fichero imagen en la cacha segun PROTOCOLO $3"
case "$3" in
full|FULL|torrent|TORRENT)
#Buscamos MD5 en el REPO SOURCE
@@ -1087,15 +1084,15 @@ case "$3" in
fi
esac
-#echo "Paso 5. comparamos los md5"
-#TODO: que hacer cuando los md5 son distintos. Por defecto borrar.
+#echo "Paso 5. comparar los md5"
if [ "$MD5SOURCE" == "$MD5TARGET" ]
then
- echo "FALSE=1, No es neceario actualizar. Paso5.A la imagen esta en cache"
+ echo "FALSE (1), No es neceario actualizar. Paso5.A la imagen esta en cache"
return 1
else
- echo "TRUE=0, Si es necesario actualizar. paso 5.b la imagen en cache es distinta, borramos la imagen anterior y devolvemos 0 para confirmar la actualizacion"
- rm -f $FILETARGET $FILETARGET.sum $FILETARGET.torrent
+ echo "imagen en cache distinta, borramos la imagen anterior"
+ rm -f $FILETARGET $FILETARGET.sum $FILETARGET.torrent $FILETARGET.full.sum
+ echo "TRUE (0), Si es necesario actualizar."
return 0
fi
}
diff --git a/client/engine/Rsync.lib b/client/engine/Rsync.lib
index 3435a119..70f5bbcc 100755
--- a/client/engine/Rsync.lib
+++ b/client/engine/Rsync.lib
@@ -100,7 +100,7 @@ if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
#Formateamos imagen
losetup $LOOPDEVICE $IMGFILE
# FS de la imagen segun la configuracion y la version del kernel: < 3.7 ext4, si >= btrfs
- [ $KERNELVERSION \< 3.07 ] && IMGFS = "EXT4" || IMGFS=${IMGFS:-"BTRFS"}
+ [ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS=${IMGFS:-"BTRFS"}
if [ "$IMGFS" == "EXT4" ]; then
echo " mkfs.ext4 -i 4096 -b 4096 -L "${2##*\/}" $LOOPDEVICE"
@@ -195,7 +195,7 @@ SIZEDATA=${SIZEDATA:-"SIZEDATA"}
# Incluimos información de la imagen. Segun el kernel sera ext4 o btrfs.
KERNELVERSION=$(uname -r| awk '{printf("%d",$1);sub(/[0-9]*\./,"",$1);printf(".%02d",$1)}')
-[ $KERNELVERSION \< 3.07 ] && IMGFS = "EXT4" || IMGFS=${IMGFS:-"BTRFS"}
+[ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS=${IMGFS:-"BTRFS"}
echo "#$IMGFS:NO:$FSTYPE:$SIZEDATA" > $IMGINFO
if [ "$IMGTYPE" == "img" ]; then
@@ -241,14 +241,14 @@ fi
#/**
# ogAclFilter
-#@brief Del fichero de acl de la partición extraemos las acl de los ficheros de la diferencial
+#@brief Del fichero de acl de la partición extraemos las acl de los ficheros de la diferencial (falla: no se usa)
#@param No.
#@return (nada)
#*/
function ogAclFilter () {
local IMGACL IMGINFO FILES ACLTMP
-# Ayuda o menos de 5 parametros y la imagen no es basica
+# Ayuda
if [ "$*" == "help" ]; then
ogHelp "$MSG_HELP_ogAclFilter" \
"$FUNCNAME [ no parameters ] "
@@ -267,14 +267,12 @@ ACLFILES="/tmp/aclfiles$$"
echo "" > $ACLTMP
grep -n -e "File" -e "Directory" $IMGACL > $ACLFILES
-# Al fichero le quitamos las líneas sobrantes: comentarios y lineas vacias.
-sed -e s/"^#.*$"//g $IMGINFO > $FILES
-sed -i '/^$/d' $FILES
+# Al listado de ficheros le quitamos las líneas sobrantes: comentarios y lineas vacias.
+sed -e s/"^#.*$"//g -e '/^$/d' $IMGINFO > $FILES
# Recorremos el listado y extraemos la acl correspondiente al fichero o directorio.
while read LINE; do
- #read END INI <<< "$(grep -n -e "File" -e "Directory" $IMGACL| grep -A 1 "$LINE"| awk -F : '!(NR%2){print $1" "p}{p=$1}' )"
read END INI <<< "$(grep -A 1 "$LINE" $ACLFILES | awk -F : '!(NR%2){print $1" "p}{p=$1}' )"
let NUM=$END-$INI-1
# Si algún archivo no se encuentra, el error lo mandamos a /dev/null
@@ -316,12 +314,16 @@ DEST=$(ogMount $1 $2) || return $?
IMGACL="ogimg.acl"
IMGLN="ogimg.ln"
+IMGINFO="ogimg.info"
+
+# Copiamos informacion de la imagen a /tmp (para basicas)
+[ -r $DEST/$IMGACL ] && cp $DEST/ogimg.* /tmp
#Creamos o modificamos los enlaces.
# La imagen diferencial tiene ogimg.ln
# para la completa lo generamos con los enlaces que contengan /mnt/
-[ -r "$DEST/$IMGLN" ] || grep -e "->" -e "=>" "$DEST/ogimg.info"|grep "/mnt/" > "$DEST/$IMGLN"
-if [ $(wc -l "$DEST/$IMGLN"|cut -f1 -d" ") -ne 0 ]; then
+[ -r "/tmp/$IMGLN" ] || grep -e "->" -e "=>" "/tmp/$IMGINFO"|grep "/mnt/" > "/tmp/$IMGLN"
+if [ $(wc -l "/tmp/$IMGLN"|cut -f1 -d" ") -ne 0 ]; then
while read LINEA
do
ORIGLN="${LINEA#*> }"
@@ -342,15 +344,26 @@ if [ $(wc -l "$DEST/$IMGLN"|cut -f1 -d" ") -ne 0 ]; then
rm -f "$(basename "$DESTLN")"
ln $OPTLN "$ORIGLN" "$(basename "$DESTLN")"
echo -n "."
- done < "$DEST/$IMGLN" 2>/dev/null
+ done < "/tmp/$IMGLN" 2>/dev/null
echo ""
fi
+cd /
+}
+#/**
+# ogRestoreAclImage
+#@brief Restaurar las ACL. La informacion esta ya copiada al directorio /tmp
+#@param 1 num_disk
+#@param 2 num_part
+#*/
+function ogRestoreAclImage () {
+local PART IMGACL
+PART=$(ogDiskToDev "$1" "$2") || return $?
+IMGACL="ogimg.acl"
# Restauramos acl
-if [ "$(ogGetFsType $1 $2)" == "NTFS" -a -f "$DEST/$IMGACL" ] ; then
+if [ "$(ogGetFsType $1 $2)" == "NTFS" -a -f "/tmp/$IMGACL" ] ; then
cd /
- cp "$DEST/$IMGACL" /tmp
ogUnmount "$1" "$2"
echo "ntfs-3g.secaudit -se $PART /tmp/$IMGACL"
ntfs-3g.secaudit -se $PART /tmp/$IMGACL
@@ -457,6 +470,7 @@ DESTRSYNC=$(ogGetMountPoint $4 $5)
# Borramos ficheros de informacion de restauraciones antiguas
rm -rf $DESTRSYNC/ogimg.*
+rm -rf /tmp/ogimg.*
# Origen y destino de la sincronizacion y en REPO opciones rsync
if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
@@ -482,23 +496,25 @@ ogEcho log session " $MSG_SYNC_RESTORE"
if [ "$3" == "diff" ]; then
# Lista de archivos a copiar:
IMGINFO="ogimg.info"
- FILESFROM=" --files-from=$DESTRSYNC/$IMGINFO"
+ FILESFROM=" --files-from=/tmp/$IMGINFO"
- echo " rsync -aHAX$OPTRSYNC --progress $ORIG/ogimg* $DESTRSYNC"
- rsync -aHAX$OPTRSYNC $PASSWORD --progress "$ORIG"/ogimg* $DESTRSYNC
+ echo " rsync -aHAX$OPTRSYNC --progress $ORIG/ogimg* /tmp"
+ rsync -aHAX$OPTRSYNC $PASSWORD --progress "$ORIG"/ogimg* /tmp
# Borramos linea de información de la imagen, sino busca un fichero con ese nombre
- sed -i '/^\#/d' $DESTRSYNC/$IMGINFO
+ sed -i '/^\#/d' /tmp/$IMGINFO
cd $DESTRSYNC
# Diferencial: Borramos archivos sobrantes.
ogEcho log session " $MSG_SYNC_DELETE"
- cat "$DESTRSYNC/ogimg.rm" 2>/dev/null | xargs rm -rf
+ sed -e s/^/\"/g -e s/$/\"/g "/tmp/ogimg.rm" 2>/dev/null | xargs rm -rf
fi
echo " rsync -aHAX$OPTRSYNC --progress $FILESFROM $ORIG/ $DESTRSYNC"
rsync -aHAX$OPTRSYNC $PASSWORD --progress $FILESFROM "$ORIG/" "$DESTRSYNC" 2>$OGLOGCOMMAND | egrep "^deleting|^sent|^sending|^total|%" |tee -a $OGLOGCOMMAND
-return ${PIPESTATUS[0]}
+RETVAL=${PIPESTATUS[0]}
+cd /
+return $RETVAL
}
@@ -684,7 +700,7 @@ echo -n -e " $MSG_SYNC_SLEEP: $DIRMOUNT\n #" | tee -a $OGLOGSESSION $
let TIMEOUT=$SIZE/$CREATESPEED
[ $TIMEOUT -lt 60 ] && TIMEOUT=60
until $(grep -i $STATE $LOCKFILE &>/dev/null) ; do
- [ $STATE = "mounted" -a -f "$DIRMOUNT/ogimg.info" ] && ogEcho session "" && return 0
+ [ $STATE = "mounted" -a -f "$DIRMOUNT/ogimg.info" ] && ogEcho log session "" && return 0
TIMEAUX=$[SECONDS-TIME]
[ "$TIMEAUX" -lt "$TIMEOUT" ] || return $(ogRaiseError $OG_ERR_DONTMOUNT_IMAGE "$3 $4 $IMGEXT: time_out."; echo $?)
echo -n "#" | tee -a $OGLOGSESSION $OGLOGFILE
@@ -856,7 +872,7 @@ if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
else
[ -f "$OGIMG/mount/$2${IMGEXT#img}/ogimg.info" ] && ISMOUNT=TRUE
fi
-[ "$ISMOUNT" == TRUE ] && ogEcho session warning "$MSG_SYNC_NOCHECK" && return 0
+[ "$ISMOUNT" == TRUE ] && ogEcho log session warning "$MSG_SYNC_NOCHECK" && return 0
DIRMOUNT="/tmp/ogCheckImage$$"
mkdir "$DIRMOUNT"
diff --git a/client/engine/String.lib b/client/engine/String.lib
index a81e3b07..3c4430e6 100755
--- a/client/engine/String.lib
+++ b/client/engine/String.lib
@@ -15,8 +15,9 @@
#@date 2010/05/09
#*/ ##
#/**
-ogCheckStringInGroup ()
+function ogCheckStringInGroup ()
{
+local i
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME str_elemento str_grupo" \
@@ -56,7 +57,7 @@ return 1
#/**
-ogCheckStringInReg()
+function ogCheckStringInReg()
{
local REG
@@ -91,7 +92,7 @@ REG=$2
#@date 2010/05/09
#*/ ##
#/**
-ogCheckIpAddress()
+function ogCheckIpAddress()
{
local REG IP arrIP
diff --git a/client/engine/System.lib b/client/engine/System.lib
index 70a1b066..cbadd952 100755
--- a/client/engine/System.lib
+++ b/client/engine/System.lib
@@ -107,6 +107,8 @@ fi
# Ejecutar comando.
eval $COMMAND $REDIREC | tee -a $FILES
+# Salida de error del comando ejecutado.
+return ${PIPESTATUS[0]}
}
@@ -210,6 +212,7 @@ case "$CODE" in
$OG_ERR_EXTENDFS) MSG="$MSG_ERR_EXTENDFS \"$2\"" ;;
$OG_ERR_IMGSIZEPARTITION) MSG="$MSG_ERR_IMGSIZEPARTITION \"$2\"" ;;
$OG_ERR_UPDATECACHE) MSG="$MSG_ERR_UPDATECACHE \"$2\"" ;;
+ $OG_ERR_DONTFORMAT) MSG="$MSG_ERR_DONTFORMAT \"$2\"" ;;
$OG_ERR_UCASTSYNTAXT) MSG="$MSG_ERR_UCASTSYNTAXT \"$2\"" ;;
$OG_ERR_UCASTSENDPARTITION) MSG="$MSG_ERR_UCASTSENDPARTITION \"$2\"" ;;
$OG_ERR_UCASTSENDFILE) MSG="$MSG_ERR_UCASTSENDFILE \"$2\"" ;;
diff --git a/client/shared/etc/engine.cfg b/client/shared/etc/engine.cfg
index 82766a2f..895881be 100644
--- a/client/shared/etc/engine.cfg
+++ b/client/shared/etc/engine.cfg
@@ -10,8 +10,8 @@ OGWINCHKDISK=TRUE
#Configuracion de interface restauracion
#Que hacer cuando la cache no tenga espacio libre. [ NONE | FORMAT ] ]
ACTIONCACHEFULL=NONE
-# Protocolo a usar en el caso de que no exita cache o no haya espacio sufiencie.
-RESTOREPROTOCOLNOCACHE=UNICAST
+#Que protocolo de restauracion usar en el caso de que no exista cache o no exista espacio sufiente. [NONE | UNICAST | MULTICAST].NONE retorna error
+RESTOREPROTOCOLNOTCACHE=UNICAST
#script Creacion imagen
IMGPROG="partclone"
@@ -35,3 +35,6 @@ IMGFS=EXT4
# Tiempo de sleep antes de realizar el reboot
OGSLEEP="20"
+
+# Indica si se instala automáticamente el cliente OpenGnSys en el despliegue de un SO (por defecto, no instalar).
+INSTALLOSCLIENT=FALSE
diff --git a/client/shared/etc/init/default.sh b/client/shared/etc/init/default.sh
index 29a8cc04..e87b4b61 100755
--- a/client/shared/etc/init/default.sh
+++ b/client/shared/etc/init/default.sh
@@ -20,13 +20,20 @@ if [ -x $OPENGNSYS/job_executer/init.d/job_executer ]; then
fi
# Arranque de OpenGnSys Client daemon (socket).
-if [ -x "$OPENGNSYS/bin/ogAdmClient" ]; then
- echo "${MSG_LAUNCHCLIENT:-.}"
- [ "$ogactiveadmin" == "true" ] && boot="admin"
- # Indicar fichero de teclado de Qt para el idioma especificado (tipo "es.qmap").
- [ -f /usr/local/etc/${LANG%_*}.qmap ] && export QWS_KEYBOARD="TTY:keymap=/usr/local/etc/${LANG%_*}.qmap"
+echo "${MSG_LAUNCHCLIENT:-.}"
+[ "$ogactiveadmin" == "true" ] && boot="admin"
+# Indicar fichero de teclado de Qt para el idioma especificado (tipo "es.qmap").
+[ -f /usr/local/etc/${LANG%_*}.qmap ] && export QWS_KEYBOARD="TTY:keymap=/usr/local/etc/${LANG%_*}.qmap"
+
+if [ -x "$OPENGNSYS/bin/ogAdmClient" -a "$ogstatus" != "offline" ]; then
# Ejecutar servicio cliente.
$OPENGNSYS/bin/ogAdmClient -f $OPENGNSYS/etc/ogAdmClient.cfg -l $OGLOGFILE -d $LOGLEVEL
+else
+ for FILE in index $OGGROUP $(ogGetIpAddress)
+ do
+ [ -f $OGCAC/menus/$FILE.html ] && OGMENU="$OGCAC/menus/$FILE.html"
+ done
+ $OPENGNSYS/bin/browser -qws $OGMENU
fi
# Si fallo en cliente y modo "admin", cargar shell; si no, salir.
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf
index d6257dc0..5220ff6e 100644
--- a/client/shared/etc/lang.ca_ES.conf
+++ b/client/shared/etc/lang.ca_ES.conf
@@ -31,6 +31,7 @@ MSG_ERR_MCASTRECEIVERFILE="Error en la recepcion MULTICAST de un fichero"
MSG_ERR_MCASTSENDPARTITION="Error en envio MULTICAST de una particion"
MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero"
MSG_ERR_PROTOCOLJOINMASTER="Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER"
+MSG_ERR_DONTFORMAT="Error al formatear"
MSG_ERR_DONTMOUNT_IMAGE="Error al montar/reducir la imagen"
MSG_ERR_DONTUNMOUNT_IMAGE="Error al desmontar la imagen"
MSG_ERR_DONTSYNC_IMAGE="Imagen no sincronizable"
@@ -40,6 +41,7 @@ MSG_ERR_SYNCHRONIZING="Error al sincronizar, puede afectar la creacion|restaurac
# Mensajes de avisos.
MSG_DONTMOUNT="Sistema de archivos no montado"
MSG_DONTUNMOUNT="El sistema de archivos no se puede desmontar o no está montado"
+MSG_MOUNT="Sistema de archivos montado"
# Mensajes complementarios para las ayudas.
MSG_64BIT="64 bits"
@@ -233,7 +235,7 @@ MSG_SCRIPTS_FILE_RENAME=" Renombrar fichero-imagen previo: "
MSG_SCRIPTS_CREATE_SIZE=" Calcular espacio (KB) requerido para almacenarlo y el disponible: "
# Script updateCache.
-MSG_SCRIPTS_UPDATECACHE_DOUPDATE="Comprobamos si Actualizacion - existe una imagen con igual nombre pero distinto sum-"
+MSG_SCRIPTS_UPDATECACHE_DOUPDATE="comprovar si es necessari actualitzar el fitxer imatge"
MSG_SCRIPTS_UPDATECACHE_CHECKSIZECACHE="Comprobar que el tamaño de la cache es mayor que el fichero a descargar."
# Script updateCache: para las imágenes sincronizadas tipo dir.
MSG_SCRIPTS_UPDATECACHE_CHECKSIZEDIR="Calculamos el tamaño de la imagen."
diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf
index 42a39b9c..737da340 100644
--- a/client/shared/etc/lang.en_GB.conf
+++ b/client/shared/etc/lang.en_GB.conf
@@ -31,6 +31,7 @@ MSG_ERR_MCASTRECEIVERFILE="Error en la recepcion MULTICAST de un fichero"
MSG_ERR_MCASTSENDPARTITION="Error en envio MULTICAST de una particion"
MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero"
MSG_ERR_PROTOCOLJOINMASTER="Error in connecting a Unicast|Multicast session to the master"
+MSG_ERR_DONTFORMAT="Error al formatear"
MSG_ERR_DONTMOUNT_IMAGE="Failed to mount/reduce image"
MSG_ERR_DONTUNMOUNT_IMAGE="Failed to unmount image"
MSG_ERR_DONTSYNC_IMAGE="Not synchronized image"
@@ -40,6 +41,7 @@ MSG_ERR_SYNCHRONIZING="Error al sincronizar, puede afectar la creacion|restaurac
# Warning messages.
MSG_DONTMOUNT="Unmounted filesystem"
MSG_DONTUNMOUNT="Cannot unmount the filesystem"
+MSG_MOUNT="Sistema de archivos montado"
# Help auxiliary menssages.
MSG_64BIT="64 bit"
diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf
index 524e95cf..46b87890 100644
--- a/client/shared/etc/lang.es_ES.conf
+++ b/client/shared/etc/lang.es_ES.conf
@@ -31,6 +31,7 @@ MSG_ERR_MCASTRECEIVERFILE="Error en la recepción Multicast de un fichero"
MSG_ERR_MCASTSENDPARTITION="Error en envío Multicast de una partición"
MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepción Multicast de un fichero"
MSG_ERR_PROTOCOLJOINMASTER="Error en la conexión de una sesión Unicast|Multicast con el Master"
+MSG_ERR_DONTFORMAT="Error al formatear"
MSG_ERR_DONTMOUNT_IMAGE="Error al montar/reducir la imagen"
MSG_ERR_DONTUNMOUNT_IMAGE="Error al desmontar la imagen"
MSG_ERR_DONTSYNC_IMAGE="Imagen no sincronizable"
@@ -40,6 +41,7 @@ MSG_ERR_SYNCHRONIZING="Error al sincronizar, puede afectar la creacion|restaurac
# Mensajes de avisos.
MSG_DONTMOUNT="Sistema de archivos no montado"
MSG_DONTUNMOUNT="El sistema de archivos no se puede desmontar o no está montado"
+MSG_MOUNT="Sistema de archivos montado"
# Mensajes complementarios para las ayudas.
MSG_64BIT="64 bits"
@@ -210,6 +212,7 @@ MSG_HELP_ogWaitMountImage="Se espera un tiempo estimado a que se monte la imagen
MSG_HELP_configureOs="Post-configura de arranque del sistema"
MSG_HELP_createBaseImage="Genera imagen básica de la partición"
MSG_HELP_createDiffImage="Genera imagen diferencial de la partición respecto a la imagen básica"
+MSG_HELP_installOfflineMode="Prepara el equipo cliente para el modo offline."
MSG_HELP_partclone2sync="Convierte imagen de partclone en imagen sincronizable."
MSG_HELP_restoreBaseImage="Restaura una imagen básica en una partición"
MSG_HELP_restoreDiffImage="Restaura una imagen diferencial en una partición"
@@ -233,7 +236,7 @@ MSG_SCRIPTS_FILE_RENAME=" Renombrar fichero-imagen previo: "
MSG_SCRIPTS_CREATE_SIZE=" Calcular espacio (KB) requerido para almacenarlo y el disponible: "
# Script updateCache.
-MSG_SCRIPTS_UPDATECACHE_DOUPDATE="Comprobar si actualización -existe una imagen con igual nombre pero distinto sum-"
+MSG_SCRIPTS_UPDATECACHE_DOUPDATE="Comprobar si es necesario actualizar el fichero imagen "
MSG_SCRIPTS_UPDATECACHE_CHECKSIZECACHE="Comprobar que el tamaño de la caché es mayor que el fichero a descargar."
# Script updateCache: para las imágenes sincronizadas tipo dir.
MSG_SCRIPTS_UPDATECACHE_CHECKSIZEDIR="Calcular el tamaño de la imagen."
diff --git a/client/shared/etc/preinit/loadenviron.sh b/client/shared/etc/preinit/loadenviron.sh
index f5f45628..b165ecfd 100755
--- a/client/shared/etc/preinit/loadenviron.sh
+++ b/client/shared/etc/preinit/loadenviron.sh
@@ -119,6 +119,7 @@ export OG_ERR_NOGPT=22 # El disco indicado no contiene una particion GPT
export OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen
export OG_ERR_UPDATECACHE=31 # Error al realizar el comando updateCache
+export OG_ERR_DONTFORMAT=32 # Error al formatear
export OG_ERR_GENERIC=40 # Error imprevisto no definido
export OG_ERR_UCASTSYNTAXT=50 # Error en la generación de sintaxis de transferenica UNICAST
export OG_ERR_UCASTSENDPARTITION=51 # Error en envío UNICAST de partición
@@ -137,3 +138,4 @@ export OG_ERR_DONTSYNC_IMAGE=71 # Imagen no sincronizable (es monolitica)
export OG_ERR_DONTUNMOUNT_IMAGE=72 # Error al desmontar la imagen
export OG_ERR_NOTDIFFERENT=73 # No se detectan diferencias entre la imagen basica y la particion.
export OG_ERR_SYNCHRONIZING=74 # Error al sincronizar, puede afectar la creacion/restauracion de la imagen
+
diff --git a/client/shared/etc/preinit/mountrepo.sh b/client/shared/etc/preinit/mountrepo.sh
index e12990fd..62b1107e 100755
--- a/client/shared/etc/preinit/mountrepo.sh
+++ b/client/shared/etc/preinit/mountrepo.sh
@@ -25,6 +25,29 @@ if [ "$ogactiveadmin" == "true" ]; then
PASS=${PASS:-"og"}
mount.cifs //${ROOTREPO}/ogimages $OGIMG -o rw,serverino,acl,username=opengnsys,password=$PASS
;;
+ local) # TODO: hacer funcion dentro de este script que monte smb
+ # Comprobamos que estatus sea online.
+ if [ "$ogstatus" == "offline" -o "$SERVER" == "" ]; then
+ # Si estatus es offline buscamos un dispositivo con etiqueta repo
+ # y si no existe montamos la cache como repo (si existe).
+ TYPE=$(blkid | grep REPO | awk -F"TYPE=" '{print $2}' | tr -d \")
+ if [ "$TYPE" == "" ]; then
+ [ -d $OGCAC/$OGIMG ] && mount --bind $OGCAC/$OGIMG $OGIMG
+ else
+ mount -t $TYPE LABEL=REPO $OGIMG &>/dev/null
+ fi
+ else
+ # Comprobamos que existe un servicio de samba.
+ smbclient -L $SERVER -N &>/dev/null
+ if [ $? -eq 0 ]; then
+ PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \
+ sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/')
+ PASS=${PASS:-"og"}
+ mount.cifs //${ROOTREPO}/ogimages $OGIMG -o rw,serverino,acl,username=opengnsys,password=$PASS
+ fi
+ # TODO: buscar condicion para NFS
+ fi
+ ;;
esac
fi
diff --git a/client/shared/scripts/cloneRemoteFromMaster b/client/shared/scripts/cloneRemoteFromMaster
index c8575915..9aedefde 100755
--- a/client/shared/scripts/cloneRemoteFromMaster
+++ b/client/shared/scripts/cloneRemoteFromMaster
@@ -54,6 +54,9 @@
#@version 1.0.3 - Habilita el uso de la variable OGWINREDUCE=TRUE|TRUE para reducir el sistema de archivos a enviar
#@author Antonio J. Doblas Viso. Universidad de Malaga.
#@date 2011/12/22
+#@version 1.0.6 - Uso de la funcion ogExecuteAndLog
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2012/02/12
#*/ ##
#test 1. cliente sin particiones. Detectado TODO: crear estrucutras de particiones
@@ -63,25 +66,35 @@
#test 5. master sin origen particion.
#test 6. master sin origen fichero.
-#Carga del configurador del engine
-[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
-
+TIME1=$SECONDS
+PROG="$(basename $0)"
trap "pkill faucet; exit 1" 0 1 2 3 6 9 14 15
-TIME1=$SECONDS
-PROG="$(basename $0)"
+#AYUDA
if [ $# -lt 1 -o "$1" == "help" ]; then
- echo "cloneRemoteFromMaster ipmaster disk init [MULTICAST|UNICAST] session disk part tool comp"
- exit 1
+ echo "cloneRemoteFromMaster ipmaster disk init [MULTICAST|UNICAST] session disk part tool comp"
+ exit 1
fi
-if [ $# -lt 6 ]; then
- ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG ipMaster SOURCE_disco SOURCE_particion [MULTICAT|UNICAST] SESSION TARGER_disck TARGET_partition"
+#ERROR
+if [ $# -lt 6 ]; then
+ ogRaiseError session $OG_ERR_FORMAT "$MSG_FORMAT: $PROG ipMaster SOURCE_disco SOURCE_particion [MULTICAST|UNICAST] SESSION TARGET_disk TARGET_partition"
exit $?
fi
-# Obtener información de los parámetros de entrada.
+#Load engine configurator from engine.cfg file.
+#Carga el configurador del engine desde el fichero engine.cfg
+# Valores por defecto: #IMGPROG="partclone" ; #IMGCOMP="lzop" ; #IMGEXT="img" #IMGREDUCE="TRUE"
+[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
+
+# Clear temporary file used as log track by httpdlog
+# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
+echo " " > $OGLOGCOMMAND
+
+ogEcho log session "[1] $MSG_SCRIPTS_START $0 $*"
+
+# Procesar parámetros de entrada
HOSTIP=`ogGetIpAddress`
if [ -z "$HOSTIP" ]
then
@@ -115,7 +128,7 @@ pkill faucet
# Preparando Instrucción según sea Master o Client
case $MASTERIP in
$HOSTIP)
- echo "[1] Equipo Master preparando el origen de los datos a enviar"
+ ogEcho log session "[1] Equipo Master preparando el origen de los datos a enviar"
ogGetPath $2 $3.img &>/dev/null; RC=$?;
ogDiskToDev $2 $3 &>/dev/null; RETVAL=$?;
@@ -168,15 +181,13 @@ case $MASTERIP in
fi
case "${PROTOCOL^^}" in
MULTICAST)
- ogEcho log session "[29] Transferencia Multicast"
- ogEcho log "ogMcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONMCASTSERVER $TOOLCLONE $COMPRESOR"
- ogMcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONMCASTSERVER $TOOLCLONE $COMPRESOR || RETVAL=$?
+ ogEcho log session "[29] Transferencia Multicast: ogMcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONMCASTSERVER $TOOLCLONE $COMPRESOR "
+ ogExecAndLog session "ogMcastSendPartition" "$DISKSOURCE" "$PARTSOURCE" "$SESSIONMCASTSERVER" "$TOOLCLONE" "$COMPRESOR" || RETVAL=$?
;;
UNICAST)
sleep 60
- ogEcho log session "[29] Transferencia Unicast"
- ogEcho log "ogUcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONUCASTSERVER $TOOLCLONE $COMPRESOR"
- ogUcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONUCASTSERVER $TOOLCLONE $COMPRESOR || RETVAL=$?
+ ogEcho log session "[29] Transferencia Unicast: ogUcastSendPartition $DISKSOURCE $PARTSOURCE $SESSIONUCASTSERVER $TOOLCLONE $COMPRESOR"
+ ogExecAndLog session "ogUcastSendPartition" "$DISKSOURCE" "$PARTSOURCE" "$SESSIONUCASTSERVER" "$TOOLCLONE" "$COMPRESOR" || RETVAL=$?
;;
esac
@@ -264,8 +275,8 @@ case $MASTERIP in
SIZEIMAGE=$(echo $INFOEXTRA | awk '{print $4}')
ogEcho log "$INFOEXTRA = herramienta= $TOOLCLONE compresor= $COMPRESOR size= $SIZEIMAGE"
ogMount $DISKTARGET $PARTTARGET || ogFormat $DISKTARGET $PARTTARGET
- SIZEPARTTARGET=$(parted `ogDiskToDev $DISKTARGET $PARTTARGET` unit kB print | grep Disk | awk -F" " '{print $3}' | tr -d kB);
-
+ #SIZEPARTTARGET=$(parted `ogDiskToDev $DISKTARGET $PARTTARGET` unit kB print | grep Disk | awk -F" " '{print $3}' | tr -d kB);
+ SIZEPARTTARGET=$(ogGetPartitionSize $DISKTARGET $PARTTARGET )
ogEcho log session "[28] comprobando que el tamaño de la imagen $SIZEIMAGE es menor que el de la particion destino $SIZEPARTTARGET"
# comprobamos que el tamaño de a imagen es menor que la del cliente.
if [ "$SIZEIMAGE" -lt "$SIZEPARTTARGET" ]
@@ -274,11 +285,11 @@ case $MASTERIP in
case "${PROTOCOL^^}" in
MULTICAST)
ogEcho log session "ogMcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONMCASTCLIENT $TOOLCLONE $COMPRESOR"
- ogMcastReceiverPartition "$DISKTARGET" "$PARTTARGET" "$SESSIONMCASTCLIENT" "$TOOLCLONE" "$COMPRESOR" || exit $(ogRaiseError $OG_ERR_MCASTRECEIVERPARTITION " l251 "; echo $?)
+ ogExecAndLog command "ogMcastReceiverPartition" "$DISKTARGET" "$PARTTARGET" "$SESSIONMCASTCLIENT" "$TOOLCLONE" "$COMPRESOR" || exit $(ogRaiseError $OG_ERR_MCASTRECEIVERPARTITION " l251 "; echo $?)
;;
UNICAST)
ogEcho log session "ogUcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONUCASTCLIENT $TOOLCLONE $COMPRESOR"
- ogUcastReceiverPartition $DISKTARGET $PARTTARGET $SESSIONUCASTCLIENT $TOOLCLONE $COMPRESOR || exit $(ogRaiseError $OG_ERR_UCASTRECEIVERPARTITION " l230 "; echo $?)
+ ogExecAndLog command "ogUcastReceiverPartition" "$DISKTARGET" "$PARTTARGET" "$SESSIONUCASTCLIENT" "$TOOLCLONE" "$COMPRESOR" || exit $(ogRaiseError $OG_ERR_UCASTRECEIVERPARTITION " l230 "; echo $?)
;;
esac
if which configureOsCustom &>/dev/null; then
diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs
index 45a2de86..2aa5288d 100755
--- a/client/shared/scripts/configureOs
+++ b/client/shared/scripts/configureOs
@@ -69,15 +69,19 @@ case "$OSTYPE" in
# Registrar en Windows que la partición indicada es su nueva unidad C:\
ogWindowsRegisterPartition $1 $2 C $1 $2
#ogLoadHiveWindows $1 $2; ogSetWindowsChkdisk $OGWINCHKDISK; ogUpdateHiveWindows
- # Instalar cliente para Windows (no activar en sistema en produccion ver ticket 604).
- ogInstallMiniSetup $1 $2 postconf.cmd
- ogInstallWindowsClient $1 $2 postconf.cmd
+ # Instalar cliente para Windows si se indica en la variable INSTALLOSCLIENT.
+ if [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
+ ogInstallMiniSetup $1 $2 postconf.cmd
+ ogInstallWindowsClient $1 $2 postconf.cmd
+ fi
;;
Linux) # Postconfiguración de GNU/Linux.
## Install and Configure Grub based on OS installed and Grub 1st stage location.
ogGrubInstallPartition $1 $2
- # Instalar cliente para Linux.
- ogInstallLinuxClient $1 $2
+ # Instalar cliente para GNU/Linux si se indica en la variable INSTALLOSCLIENT.
+ if [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
+ ogInstallLinuxClient $1 $2
+ fi
;;
MacOS) # Postconfiguración de Mac OS X.
# Fichero indicador de activación de postconfiguración.
diff --git a/client/shared/scripts/createBaseImage b/client/shared/scripts/createBaseImage
index 1e35aff4..ed9255b4 100755
--- a/client/shared/scripts/createBaseImage
+++ b/client/shared/scripts/createBaseImage
@@ -102,8 +102,9 @@ TIME2=$SECONDS
ogEcho log session "[40] $MSG_HELP_ogCreateImage $1 $2 $3 $4 "
# Si existe el fichero de la imagen se hace copia de seguridad y se redimensiona, si no existe se crea.
+# Bloqueo la imagen. Si esta en modo lectura dara error y nos salimos
ogEcho log session "[50] $MSG_HELP_ogCreateFileImage."
-ogLockImage "$3" "/$4.$IMGEXT"
+ogLockImage "$3" "/$4.$IMGEXT" || exit $?
ogCreateFileImage $3 "$4" $IMGEXT $SIZEREQUIRED
# Creamos la lista del contenido y lo situamos en la particion a copiar.
diff --git a/client/shared/scripts/createDiffImage b/client/shared/scripts/createDiffImage
index 69b90166..862c05c8 100755
--- a/client/shared/scripts/createDiffImage
+++ b/client/shared/scripts/createDiffImage
@@ -95,8 +95,9 @@ ORIG=$(ogMount $1 $2) || exit $(ogRaiseError session $OG_ERR_PARTITION "$1 $2"
DIFFDIR="$(ogGetParentPath "$3" "/$5")"
DIFFFILE="$DIFFDIR/$5.$DIFFEXT"
-ogLockImage "$3" "/$4.$IMGEXT"
-ogLockImage "$3" "/$5.$DIFFEXT"
+# Bloqueo las imagenes -> Si no hay acceso de escritura dara error y nos saldremos.
+ogLockImage "$3" "/$4.$IMGEXT" || exit $?
+ogLockImage "$3" "/$5.$DIFFEXT" || exit $?
# Comprobar consistencia del sistema de archivos.
echo " " > $OGLOGCOMMAND
@@ -138,13 +139,6 @@ ogLock $1 $2
TIMEAUX3=$[SECONDS-TIME2]
ogEcho log session " $MSG_SCRIPTS_TASK_END $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX3/60]m $[TIMEAUX3%60]s"
-# Del fichero de acl de la partición extraemos las acl de los ficheros de la diferencial
-if [ "$FSTYPE" == "NTFS" ]; then
- ogEcho log session "[55] $MSG_HELP_ogAclFilter "
- ogAclFilter
- TIMEAUX4=$[SECONDS-TIMEAUX3]
- ogEcho log session " $MSG_SCRIPTS_TASK_END $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX4/60]m $[TIMEAUX4%60]s"
-fi
TIMEAUX5=$[SECONDS-TIMEAUX3]
# Configuro la informacion del tamaño de los datos en /tmp/ogimg.info
diff --git a/client/shared/scripts/deployImage b/client/shared/scripts/deployImage
index 724d515e..89d776a6 100755
--- a/client/shared/scripts/deployImage
+++ b/client/shared/scripts/deployImage
@@ -14,6 +14,8 @@
#@exception OG_ERR_LOCKED 4 partición bloqueada por otra operación.
#@exception OG_ERR_IMAGE 5 error al restaurar la imagen del sistema.
#@exception OG_ERR_IMGSIZEPARTITION 30 Tamaño de la particion es menor al tamaño de la imagen.
+#@exception OG_ERR_NOTCACHE No existe cache -15-
+#@exception OG_ERR_CACHESIZE Tamaño de la paticion menor al archivo a descargar -16-
#@version 1.0.1 - Separación en protocolos de transferencia y postconfiguracion
#@author Antonio J. Doblas Viso. Universidad de Málaga
#@date 2011-05-11
@@ -26,15 +28,16 @@
#@version 1.0.5 - Renominación del script como "deployImage".
#@author Antonio J. Doblas Viso y Ramón M. Gómez.
#@date 2013-12-04
+#@version 1.0.6 - Se añade la gestión de errores de la CACHE cuando en el engine.cfg se define RESTOREPROTOCOLNOCACHE=NONE.
+#@author Antonio J. Doblas Viso.
+#@date 2015-02-23
#**/
#Descripcion:
-# La interfaz detecta:
-# Si Repositorio es el global (REPO) realiza un deploy.
-# Si Repositorio es local (CACHE) realiza un restoreImage CACHE
-# El deploy, si detecta que el cliente no tiene una cache con espacio suficiente
-# -- reazlia un ogRestore REPO
+# Si Repositorio es el global (REPO) realiza un deploy.
+# Si Repositorio es local (CACHE) realiza un restoreImage CACHE
+# El deploy, si detecta que el cliente no tiene una CACHE o no tiene espacio suficiente consulta el engine.cfg RESTOREPROTOCOLNOCACHE
@@ -111,17 +114,35 @@ case "$REPO" in
NEXTOPERATION=CACHE
;;
15|16)
+ # no se permite usar la cache (no existe(15) o no espacio sufiente (16). Se consulta engine.cfg para RESTOREPROTOCOLNOCACHE [ multicast unicast none ]
ogEcho log session "[50] $MSG_ERR_NOTCACHE ; $MSG_ERR_CACHESIZE "
- ogEcho log session "[50] $MSG_SCRIPTS_CHECK_ENGINE "
- if [ "$RESTOREPROTOCOLNOCACHE" == "MULTICAST" ]; then
- case "$PROTO" in
- MULTICAST) NEXTOPERATION=MULTICAST ;;
- TORRENT) NEXTOPERATION=UNICAST ;;
- UNICAST) NEXTOPERATION=UNICAST ;;
- esac
- else
- NEXTOPERATION=UNICAST
- fi
+ ogEcho log session "[50] $MSG_SCRIPTS_CHECK_ENGINE: RESTOREPROTOCOLNOTCACHE=$RESTOREPROTOCOLNOTCACHE "
+ case "$RESTOREPROTOCOLNOTCACHE" in
+ MULTICAST)
+ case "$PROTO" in
+ MULTICAST) NEXTOPERATION=MULTICAST ;;
+ TORRENT) NEXTOPERATION=UNICAST ;;
+ UNICAST) NEXTOPERATION=UNICAST ;;
+ esac
+ ;;
+ UNICAST)
+ NEXTOPERATION=UNICAST
+ ;;
+ NONE)
+ case $RETVAL in
+ 15)
+ ogEcho log session "[100] $MSG_ERR_NOTCACHE"
+ ogRaiseError session $OG_ERR_NOTCACHE "NOT CACHE"
+ exit $?
+ ;;
+ 16)
+ ogEcho log session "[100] $MSG_ERR_CACHESIZE "
+ ogRaiseError session $OG_ERR_CACHESIZE "CACHE FULL"
+ exit $?
+ ;;
+ esac # del segundo RETAVAL
+ ;;
+ esac # del RESTOREPROTOCOLNOTCACHE
;;
esac
;;
diff --git a/client/shared/scripts/generateMenuDefault b/client/shared/scripts/generateMenuDefault
index 7a9abd6e..09e4300f 100755
--- a/client/shared/scripts/generateMenuDefault
+++ b/client/shared/scripts/generateMenuDefault
@@ -9,7 +9,7 @@ source /tmp/net-$DEVICE.conf
FILEINFOHTML=$OGLOG/`ogGetIpAddress`.info.html
FILEINFOCACHE=$OGLOG/`ogGetIpAddress`.cache.txt
ogMountCache 2>/dev/null
-CACHECONTENIDO=`ls -m $OGCAC/$OGIMG 2>/dev/null`
+CACHECONTENIDO="ls -m $OGCAC/$OGIMG 2>/dev/null"
SPEED=$(LANG=C ethtool $DEVICE 2>/dev/null | awk '$1~/Speed/ {print $2}')
case "${SPEED,,}" in
@@ -23,8 +23,13 @@ case "${DUPLEX,,}" in
full) ;;
*) DUPLEX="<font color=\"red\">$DUPLEX</font>"
esac
+
CACHESIZEFREE=$(ogGetFreeSize `ogFindCache`)
-expr $CACHESIZEFREE / 1024 > $FILEINFOCACHE 2>/dev/null && echo '.MB,' >> $FILEINFOCACHE
+if [ $CACHESIZEFREE == 0 ]; then
+ echo '0.MB,' > $FILEINFOCACHE
+else
+ expr $CACHESIZEFREE / 1024 > $FILEINFOCACHE 2>/dev/null && echo '.MB,' >> $FILEINFOCACHE
+fi
# Crear menú por defecto.
cat > $FILEINFOHTML << EOT
@@ -72,7 +77,5 @@ cat >> $FILEINFOHTML << EOT
EOT
# Crear contenido de la caché.
-cat >> $FILEINFOCACHE << EOT
-$CACHECONTENIDO
-EOT
+eval $CACHECONTENIDO >> $FILEINFOCACHE
diff --git a/client/shared/scripts/installOfflineMode b/client/shared/scripts/installOfflineMode
new file mode 100755
index 00000000..d9ff2459
--- /dev/null
+++ b/client/shared/scripts/installOfflineMode
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+#/**
+# installOfflineMode
+#@brief Prepara el equipo cliente para el modo offline.
+#@param no
+#@return
+#@exception OG_ERR_NOTFOUND Fichero o dispositivo no encontrado.
+#@exception OG_ERR_NOTCACHE No existe cache.
+#@author Irina Gomez. ETSII. Universidad de Sevilla
+#@date 2013/12/5
+#*/ ##
+
+PROG="$(basename $0)"
+if [ "$*" == "help" ]; then
+ ogHelp "$PROG $MSG_HELP_installOfflineMode" \
+ "$PROG [ no param ]"
+ exit 0
+fi
+
+ogEcho log session "$MSG_HELP_installOfflineMode"
+# Cargamos las variables de entorno.
+[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
+DIRTFTP="/opt/oglive/tftpboot"
+DIROGCLIENT="$DIRTFTP/ogclient"
+# Comprobamos que el DIROGCLIENT esta montado desde repo
+df |grep "$(ogGetRepoIp).*$DIRTFTP" &>/dev/null || ogRaiseError $OG_ERR_NOTFOUND "REPO OGclient" || exit $?
+
+# Copiamos el kernel y el initrd.
+ogEcho log session " [10] updateBootCache"
+updateBootCache || ogRaiseError $OG_ERR_NOTCACHE || exit $?
+
+# Creamos los dir necesarios.
+ogEcho log session " [40] mkdir -p $OGCAC/{ogclient, menus, log}."
+[ -d $OGCAC/menus/images/iconos ] || mkdir -p $OGCAC/menus/images/iconos
+[ -d $OGCAC/ogclient ] || mkdir -p $OGCAC/ogclient
+[ -d $OGCAC/log ] || mkdir -p $OGCAC/log
+[ -d $OGCAC/opt/opengnsys/images ] || mkdir -p $OGCAC/opt/opengnsys/images
+
+# Comparamos el cliente en el server y en cache
+ogEcho log session " [60] cp $DIROGCLIENT/ogclient.sqfs $OGCAC/ogclient/"
+SERVEROGCLIENT=$(cat $DIROGCLIENT/ogclient.sqfs.sum 2>/dev/null)
+CACHEOGCLIENT=$(cat $OGCAC/ogclient/ogclient.sqfs.sum 2>/dev/null)
+
+if [ "$CACHEOGCLIENT" != "$SERVEROGCLIENT" ]; then
+ cp $DIROGCLIENT/ogclient.sqfs $OGCAC/ogclient/
+ cp $DIROGCLIENT/ogclient.sqfs.sum $OGCAC/ogclient/
+fi
+
+# Si se ha generado el menu de inicio lo copiamos a cache.
+IPCLIENT=$(ogGetIpAddress)
+MENU=$OGLOG/$IPCLIENT.info.html
+ICONO="images/iconos/logoopengnsys.png"
+[ -f $MENU ] || generateMenuDefault
+ogEcho log session " [90] cp $MENU $OGCAC/menus/$IPCLIENT.html"
+cp $MENU $OGCAC/menus/$IPCLIENT.html
+sed -i s/"..\/images"/"images"/g $OGCAC/menus/$IPCLIENT.html
+wget --no-check-certificate https://$(ogGetRepoIp)/opengnsys/$ICONO -O $OGCAC/menus/$ICONO
+
+
diff --git a/client/shared/scripts/poweroff b/client/shared/scripts/poweroff
index 9af4d669..c108e08e 100755
--- a/client/shared/scripts/poweroff
+++ b/client/shared/scripts/poweroff
@@ -21,7 +21,7 @@ BUSYBOX=${BUSYBOX:-"busybox"}
# Retardo para dar lugar al registro en cola de acciones.
sleep 5
# Parar Browser para evitar "cuelgues".
-pkill browser
+[ "$ogstatus" == "offline" ] || pkill browser
# Apagar.
$BUSYBOX poweroff
diff --git a/client/shared/scripts/reboot b/client/shared/scripts/reboot
index 87df09d0..87e30e21 100755
--- a/client/shared/scripts/reboot
+++ b/client/shared/scripts/reboot
@@ -34,7 +34,8 @@ BUSYBOX=${BUSYBOX:-"busybox"}
# Retardo para dar lugar al registro en cola de acciones.
sleep $TIME
# Parar Browser para evitar "cuelgues".
-pkill browser
+[ "$ogstatus" == "offline" ] || pkill browser
# Reiniciar.
$BUSYBOX reboot
+
diff --git a/client/shared/scripts/restoreBaseImage b/client/shared/scripts/restoreBaseImage
index e424baa8..c4e87ba4 100755
--- a/client/shared/scripts/restoreBaseImage
+++ b/client/shared/scripts/restoreBaseImage
@@ -137,6 +137,7 @@ ogExecAndLog command ogRestoreInfoImage $3 $4
# Llamar al script de post-configuración del sistema operativo.
# Si a este script lo ha llamado el script restoreDiffImage no post-configuramos
if [ "$(ogGetCaller)" != "restoreDiffImage" ];then
+ ogExecAndLog command ogRestoreAclImage $3 $4
if which configureOsCustom &>/dev/null; then
ogEcho log session "[90] configureOsCustom"
configureOsCustom "$3" "$4" "$1" "$2"
@@ -145,6 +146,8 @@ if [ "$(ogGetCaller)" != "restoreDiffImage" ];then
configureOs $3 $4
fi
fi
+TIMEAUX3=$[SECONDS-TIMEAUX2]
+ogEcho log session " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL : $[TIMEAUX3/60]m $[TIMEAUX3%60]s"
TIME=$[SECONDS-TIME1]
ogEcho log session "[100] $MSG_SCRIPTS_END $MSG_SCRIPTS_TIME_TOTAL: $[TIME/60]m $[TIME%60]s"
diff --git a/client/shared/scripts/restoreDiffImage b/client/shared/scripts/restoreDiffImage
index 20745b3e..e10a395a 100755
--- a/client/shared/scripts/restoreDiffImage
+++ b/client/shared/scripts/restoreDiffImage
@@ -1,15 +1,15 @@
#!/bin/bash
#/**
-# restoreiDiffSquash
+# restoreDiffImage
#@brief Script de ejemplo para restaurar una imagen diferencial.
#@brief (puede usarse como base para el programa de restauración de imágenes usado por OpenGNSys Admin).
#@param 1 REPO|CACHE
#@param 2 imagen basica
-#@param 2 imagen diferencial
-#@param 3 disco
-#@param 4 particion
-#@param 5 protocolo
-#@param 6 opciones protocolo
+#@param 3 imagen diferencial
+#@param 4 disco
+#@param 5 particion
+#@param 6 protocolo
+#@param 7 opciones protocolo
#@return
#@exception OG_ERR_FORMAT # 1 formato incorrecto.
#@exception OG_ERR_NOTFOUND # 2 Fichero o dispositivo no encontrado
@@ -122,6 +122,9 @@ ogEcho log session " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL : $[T
# creando enlaces y restableciendo ACL (en windows)
ogEcho log session "[70] $MSG_HELP_ogRestoreInfoImage"
ogExecAndLog command ogRestoreInfoImage "$4" "$5"
+ogExecAndLog command gRestoreAclImage "$4" "$5"
+TIMEAUX3=$[SECONDS-TIMEAUX2]
+ogEcho log session " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL : $[TIMEAUX3/60]m $[TIMEAUX3%60]s"
# Llamar al script de post-configuración del sistema operativo.
if which configureOsCustom &>/dev/null; then
@@ -136,4 +139,3 @@ ogEcho log session "[100] $MSG_SCRIPTS_END $MSG_SCRIPTS_TIME_TOTAL: $[TIME/60]m
# Si ha habido problema al sincronizar nos salimos con error
[ $RETVAL == 0 ] || exit $OG_ERR_SYNCHRONIZING
-
diff --git a/client/shared/scripts/restoreImage b/client/shared/scripts/restoreImage
index 4575bf6c..6d5198aa 100755
--- a/client/shared/scripts/restoreImage
+++ b/client/shared/scripts/restoreImage
@@ -54,7 +54,7 @@ case "$PROTO" in
ogEcho log session "[40] ogMcastReceiverPartition $DISK $PART $PORT $TOOL $COMPRESS"
ogMcastRequest "$IMGNAME.img" "$PROTOOPT"
ogExecAndLog command ogMcastReceiverPartition "$DISK" "$PART" "$PORT" "$TOOL" "$COMPRESS"
- RETVAL=${PIPESTATUS[0]}
+ RETVAL=$?
;;
*) # Protocolo desconocido.
ogRaiseError session $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO|CACHE imagen ndisco nparticion [ UNICAST|MULTICAST opciones ]"
diff --git a/client/shared/scripts/updateCache b/client/shared/scripts/updateCache
index 889b9bf4..8760ddd2 100755
--- a/client/shared/scripts/updateCache
+++ b/client/shared/scripts/updateCache
@@ -75,7 +75,6 @@ else
# Si la imagen es monolitica y ha elegido protocolo = RSYNC salimos con error.
[ $PROTOCOLO == "RSYNC" ] && exit $(ogRaiseError session $OG_ERR_DONTSYNC_IMAGE "REPO $2"; echo $?)
IMGSYNC=FALSE
- #TODO: ogUpdateCacheIsNecesary debe borrar la imagen que tenga igual nombre pero distinto sum-
ogUpdateCacheIsNecesary "$1" "$2" "$PROTOCOLO"
RETVAL=$?
fi
@@ -115,7 +114,7 @@ else
SIZEREQUIRED=$FILESIZE
fi
-#ERROR CACHESIZE 16
+#ERROR CACHESIZE 16 (tamanyo de la CACHE insuficiente)
if [ "$SIZEREQUIRED" -ge "$CACHESIZE" ]
then
ogEcho log session "$MSG_WARNING: $MSG_ERR_CACHESIZE: $2 = $SIZEREQUIRED > CACHE = $CACHESIZE"
@@ -123,14 +122,16 @@ then
exit $?
fi
-ogEcho log session "$MSG_SCRIPTS_UPDATECACHE_IFNOTCACHEDO"
-#ERROR CACHESIZE 16
+
+#ERROR CACHESIZE 16 (Espacio libre en CACHE insuficiente)
if [ "$SIZEREQUIRED" -ge "$CACHESIZEFREE" ]
then
- # ogEcho log session "[ ] No hay espacio sufiente en la CACHE, detectar que hacer con engine.cfg"
+ ogEcho log session "$MSG_SCRIPTS_UPDATECACHE_IFNOTCACHEDO: ACTIONCACHEFULL=$ACTIONCACHEFULL"
case "$ACTIONCACHEFULL" in
NONE)
- NEXTOPERATION=UNICAST
+ ogEcho log session "$MSG_WARNING: $MSG_ERR_CACHESIZE: $2 = $SIZEREQUIRED > FREE SPACE CACHE = $CACHESIZEFREE"
+ ogRaiseError session $OG_ERR_CACHESIZE "CACHE FULL, NO SPACE FREE"
+ exit $?
;;
FORMAT)
ogEcho log session "[51] $MSG_HELP_ogFormatCache "
diff --git a/doc/CHANGELOG.es.txt b/doc/CHANGELOG.es.txt
index dbcc3728..6e1a33b2 100644
--- a/doc/CHANGELOG.es.txt
+++ b/doc/CHANGELOG.es.txt
@@ -1,8 +1,10 @@
-LISTA DE CAMBIOS CHANGELOG.es.ext
+LISTA DE CAMBIOS CHANGELOG.es.txt
========================================
+
Lista de cambios incluidos en OpenGnSys 1.1.0
+---------------------------------------------
@@ -14,17 +16,22 @@ Tickets resueltos en módulo OpenGnSys Cloning Engine:
#660 El arranque de sistema operativo debe depender de su tipo y no del sistema de ficheros
#611 Crear función para mostrar y registrar la ejecución de un comando
#626 Mejorar la integridad en el protocolo torrent
-#645 Configuración de sistemas GNU/Linux instalados sobre EFI
+#645 Configuración de sistemas GNU/Linux y Windows instalados sobre EFI
#651 Incluir en la interfaz de crear imagen una condición para que llame a script personalizado
#652 Incluir script personalizado para restoreImage (mejora)
-#668 Comando restaurar torrent-cache si encuentra trozo de imagen monolítica previa se queda compartiendo la imagen sin proceder a la restauración
+#668 Comando restaurar torrent-cache si encuentra trozo de imagen monolítica previa se queda compartiendo la imagen sin restaurar (no se resolverá)
#671 ogFormat sobre NTFS no reconoce tipo de partición NTFS (no se resolverá)
#675 Bucle infinito al reducir sistema de archivos NTFS menor de 1 GB
+#684 Usar función ogExecAndLog en los scripts de clonaciones remotas
#685 Arrancar sistema GNU/Linux con sistema de archivos /boot separado del raíz (mejora)
+#690 Revisar log del script updateCache
+#693 deployImage debe admitir el comportamiento correcto para RESTOREPROTOCOLNOCACHE=NONE
+#694 Log en deployImage y updateCache al realizar la consulta al engine.cfg debería mostrar la variable consultada y su valor
+#692 updateCache no reporta error cuando no hay espacio libre en la caché del cliente
+#698 Mejoras en los mensajes de error
Tickets resueltos en módulo OpenGnSys Client:
#136 Splash de arranque con Plymouth (no se resolverá)
-#377 Documentar como modificar el tiempo de las cookies para los menús personalizados desde la web de clientes (no se resolverá)
#615 Cliente oglive 1.0.5 basado en Ubuntu 12.04.2 LTS (duplicado de #603)
#649 El arranque gráfico del ogLive depende del hardware (no se resolverá)
#653 Decidir el número de parámetros del script configureOsCustom
@@ -59,11 +66,27 @@ Tickets resueltos en módulo OpenGnSys Web Admin Console:
#666 Asistente de particiones remotas no genera la instrucción a ejecutar (tarea)
#667 Resolución de los menús en la configuración PXE (no válido)
#680 Opcion status de ordenador sobre objeto aulas es incorrecto cuando existe también objetos tipo "grupo de ordenadores" (no válido)
+#681 Bucle infinito en 2º subprocedimiento de un procedimiento compuesto
#683 Consola web: comandos Iniciar sesión e Inventario software solo reconocen un disco
+#686 Asistente deploy imágenes: incluir protocolos unicast-direct y multicast-direct
+#687 Asigar menu "default" desde las propiedades del aula no funciona (no válido)
+#688 Cambiar la contraseña del usuario usuog afecta al ogAdmclient.cfg
+#689 Asistente particionado no modifica el tamaño de la partición caché
+#691 Comando "Formatear y Particionar" no formate la caché
+#695 No se muestra información del repositorio con imágenes sin asignar
+#697 Las propiedades del menú no permiten URL con HTTPS
+#699 No se borra imagen si caché completa
+#700 Asistente Deploy Imagen avisa al usar Unicast sobre aulas (mejora)
+#702 Mostrar Unidad Organizativa por defecto en login (mejora)
+#703 Comando Restaurar avisa al usar Unicast sobre aulas (mejora)
+#704 Ampliar tamaño de ventana log de seguimiento (mejora)
+#705 Eliminar campos de formularios que han dejado de utilizarse
+#707 Eliminar del repositorio imagen de tipo directorio
Tickets genéricos resueltos:
#541 Gestión plataformas Mac (tarea)
#670 Las copias en trunk y tags no mantienen los cambios del svn realizados en branches (informativo)
+#673 Integración de OpenGnSys 1.0.6 en rama principal
#677 Incluir datos de creación y despliegue de imagen (mejora)
@@ -365,6 +388,7 @@ Tickets resueltos en módulo OpenGnSys Server:
Tickets resueltos en módulo OpenGnSys Web Admin Console:
#296 Consola Web: particionar y formatear no va si hay partición de linux-swap (no se resolverá)
#341 Control del tamaño de disco duro en consola web
+#377 Documentar como modificar el tiempo de las cookies para los menus personalizados desde la web de clientes (no se resolverá)
#423 Netboot no configura el parámetro de IP serverADM
#434 Soporte para particiones lógicas en el asistente de particionado
#443 Usar HTTPS en la consola web
diff --git a/doc/INSTALL.es.txt b/doc/INSTALL.es.txt
index 0a6702e1..50934f5c 100644
--- a/doc/INSTALL.es.txt
+++ b/doc/INSTALL.es.txt
@@ -1,16 +1,16 @@
-Instalación de OpenGnSys Server v 1.0.5
+Instalación de OpenGnSys Server v 1.1.0
=======================================
Notas iniciales
---------------
-Se presupone que el servidor de OpenGnSys va a ser instalado en una distribución del sistema operativo Ubuntu Server a partir de la versión 12.04 LTS (también ha sido probado en sistemas basados en Fedora 20).
+Se presupone que el servidor de OpenGnSys va a ser instalado en una distribución del sistema operativo Ubuntu Server a partir de la versión 12.04 LTS (también ha sido probado en sistemas basados en Fedora 20 y CentOS 6.5).
El serividor debe tener acceso a Internet para descargar los paquetes necesarios, el código del proyecto y el cliente preconfigurado.
Requisitos mínimos de almacenamiento:
- 100 MB en el directorio /tmp (solo durante la instalación)
-- 450 MB en el directorio /var/lib/tftpboot (o /srv en sistemas Debian)
+- 500 MB en el directorio /var/lib/tftpboot (o /srv en sistemas Debian)
- 500 MB en el directorio de instalación /opt/opengnsys sin contar el espacio para logs (100 MB si el cliente ogLive está previamente descargado).
- Estimar la capacidad necesaria para el repositorio de imágenes en /opt/opengnsys/images (es recomendable que este directorio se monte sobre un sistema de archivos independiente).
@@ -18,7 +18,7 @@ Requisitos mínimos de almacenamiento:
Instalación
-----------
-La instalación de OpenGnSys se realiza ejecutando el script de instalación opengnsys_installer.sh, el cual puede obtenerse descomprimiendo el fichero de la versión opengnsys-Version.tar.gz o descargándolo directamente de la dirección: http://www.opengnsys.es/svn/branches/version1.0/installer/opengnsys_installer.sh
+La instalación de OpenGnSys se realiza ejecutando el script de instalación opengnsys_installer.sh, el cual puede obtenerse descomprimiendo el fichero de la versión opengnsys-Version.tar.gz o descargándolo directamente de la dirección: http://www.opengnsys.es/svn/branches/version1.1/installer/opengnsys_installer.sh
Ejemplos de descompresión del programa:
@@ -28,10 +28,10 @@ Ejemplos de descompresión del programa:
Ejemplos de descarga con varias herramientas:
* Descargar con wget.
- wget http://www.opengnsys.es/svn/branches/version1.0/installer/opengnsys_installer.sh -O opengnsys_installer.sh
+ wget http://www.opengnsys.es/svn/branches/version1.1/installer/opengnsys_installer.sh -O opengnsys_installer.sh
* Descargar con curl.
- curl http://www.opengnsys.es/svn/branches/version1.0/installer/opengnsys_installer.sh > opengnsys_installer.sh
+ curl http://www.opengnsys.es/svn/branches/version1.1/installer/opengnsys_installer.sh > opengnsys_installer.sh
El script de instalación debe ser ejecutado como usuario root:
diff --git a/installer/INSTALL.es.txt b/installer/INSTALL.es.txt
index c2eda7d4..ea2abd09 100644
--- a/installer/INSTALL.es.txt
+++ b/installer/INSTALL.es.txt
@@ -1,4 +1,4 @@
-Instalación y Actualización de OpenGnSys 1.0.3
+Instalación y Actualización de OpenGnSys 1.1.0
==============================================
@@ -12,7 +12,7 @@ Descargar una versión completa y desccomprimir el fichero "opengnsys-version.ta
cd opengnsys/installer
O bien, descargar el instalador desde la última reversión del repositorio:
- svn export http://www.opengnsys.es/svn/branches/version1.0/installer/opengnsys_installer.sh
+ svn export http://www.opengnsys.es/svn/branches/version1.1/installer/opengnsys_installer.sh
Opcionalmente, puede descargarse la imagen del cliente; si no se realiza este paso, el instalador la descargará automáticamente.
wget http://www.opengnsys.es/downloads/ogLive-versioncliente.iso
diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh
index de3c4829..ebf07b70 100755
--- a/installer/opengnsys_installer.sh
+++ b/installer/opengnsys_installer.sh
@@ -89,7 +89,7 @@ if [ -d "$PROGRAMDIR/../installer" ]; then
else
USESVN=1
fi
-SVN_URL="http://$OPENGNSYS_SERVER/svn/branches/version1.0/"
+SVN_URL="http://$OPENGNSYS_SERVER/svn/branches/version1.1/"
WORKDIR=/tmp/opengnsys_installer
mkdir -p $WORKDIR
@@ -1222,12 +1222,6 @@ function copyServerFiles ()
fi
done
- # Si servidor tiene instalado Rsync > 3.0.9, renombrar el ejecutable
- # compilado para el cliente.
- if [ -n "$(rsync --version | awk '/version/ {if ($3>="3.1.0") print $3}')" ]; then
- [ -e client/bin/rsync-3.1.0 ] && mv -f client/bin/rsync-3.1.0 client/bin/rsync
- fi
-
popd
}
@@ -1326,6 +1320,12 @@ function copyClientFiles()
errstatus=1
fi
+ # Si el servidor tiene instalado Rsync > 3.0.9, renombrar el ejecutable
+ # compilado para el cliente.
+ if [ -n "$(rsync --version | awk '/version/ {if ($3>="3.1.0") print $3}')" ]; then
+ [ -e $INSTALL_TARGET/client/bin/rsync-3.1.0 ] && mv -f $INSTALL_TARGET/client/bin/rsync-3.1.0 $INSTALL_TARGET/client/bin/rsync
+ fi
+
if [ $errstatus -eq 0 ]; then
echoAndLog "${FUNCNAME}(): client copy files success."
else
@@ -1340,7 +1340,7 @@ function copyClientFiles()
function clientCreate()
{
local DOWNLOADURL="http://$OPENGNSYS_SERVER/downloads"
- local FILENAME=ogLive-precise-3.2.0-23-generic-r3257.iso # 1.0.4-rc2
+ local FILENAME=ogLive-precise-3.2.0-23-generic-r4311.iso # 1.0.4-rc4
#local FILENAME=ogLive-precise-3.11.0-26-generic-r4413.iso # 1.0.6-rc1
local TARGETFILE=$INSTALL_TARGET/lib/$FILENAME
local TMPDIR=/tmp/${FILENAME%.iso}
@@ -1418,7 +1418,7 @@ function openGnsysConfigure()
-e "s/DBPASSWORD/$OPENGNSYS_DB_PASSWD/g" \
-e "s/DATABASE/$OPENGNSYS_DATABASE/g" \
$WORKDIR/opengnsys/admin/Sources/Services/ogAdmAgent/ogAdmAgent.cfg > $INSTALL_TARGET/etc/ogAdmAgent-$dev.cfg
- CONSOLEURL="http://${SERVERIP[i]}/opengnsys"
+ CONSOLEURL="https://${SERVERIP[i]}/opengnsys"
sed -e "s/SERVERIP/${SERVERIP[i]}/g" \
-e "s/DBUSER/$OPENGNSYS_DB_USER/g" \
-e "s/DBPASSWORD/$OPENGNSYS_DB_PASSWD/g" \
@@ -1429,7 +1429,7 @@ function openGnsysConfigure()
-e "s/OPENGNSYSURL/${CONSOLEURL//\//\\/}/g" \
$WORKDIR/opengnsys/admin/Sources/Clients/ogAdmClient/ogAdmClient.cfg > $INSTALL_TARGET/client/etc/ogAdmClient-$dev.cfg
if [ "$dev" == "$DEFAULTDEV" ]; then
- OPENGNSYS_CONSOLEURL="${CONSOLEURL/http:/https:}"
+ OPENGNSYS_CONSOLEURL="$CONSOLEURL"
fi
fi
let i++
diff --git a/installer/opengnsys_makecompress.sh b/installer/opengnsys_makecompress.sh
index 0e9cd48c..479ff8ec 100755
--- a/installer/opengnsys_makecompress.sh
+++ b/installer/opengnsys_makecompress.sh
@@ -10,7 +10,7 @@
# Variables
-SVNURL="http://www.opengnsys.es/svn/branches/version1.0/"
+SVNURL="http://www.opengnsys.es/svn/branches/version1.1/"
SVNREV=$(LANG=C svn info $SVNURL | awk '/Last Changed Rev:/ {print "r"$4}')
# Descargar repositorio SVN
diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh
index ed55989d..56d991b3 100755
--- a/installer/opengnsys_update.sh
+++ b/installer/opengnsys_update.sh
@@ -2,7 +2,6 @@
#/**
#@file opengnsys_update.sh
#@brief Script actualización de OpenGnSys
-#@warning No se actualiza BD, ni ficheros de configuración.
#@version 0.9 - basado en opengnsys_installer.sh
#@author Ramón Gómez - ETSII Univ. Sevilla
#@date 2010/01/27
@@ -24,6 +23,9 @@
#@version 1.0.5 - Actualizar BD en la misma versión, compatibilidad con Fedora (systemd) y configuración de Rsync.
#@author Ramón Gómez - ETSII Univ. Sevilla
#@date 2014/04/03
+#@version 1.0.6 - Redefinir URLs de ficheros de configuración usando HTTPS.
+#@author Ramón Gómez - ETSII Univ. Sevilla
+#@date 2015/03/12
#*/
@@ -66,7 +68,7 @@ if [ -d "$PROGRAMDIR/../installer" ]; then
else
USESVN=1
fi
-SVN_URL="http://$OPENGNSYS_SERVER/svn/branches/version1.0/"
+SVN_URL="http://$OPENGNSYS_SERVER/svn/branches/version1.1/"
WORKDIR=/tmp/opengnsys_update
mkdir -p $WORKDIR
@@ -507,6 +509,13 @@ function updateWebFiles()
fi
restoreFile $INSTALL_TARGET/www/controlacceso.php
+ # Cambiar acceso a protocolo HTTPS.
+ if grep -q "http://" $INSTALL_TARGET/www/controlacceso.php 2>/dev/null; then
+ echoAndLog "${FUNCNAME}(): updating web access file"
+ 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
@@ -663,10 +672,10 @@ function updateServerFiles()
cp -a $WORKDIR/opengnsys/admin/Sources/Services/opengnsys.init /etc/init.d/opengnsys
NEWFILES="$NEWFILES /etc/init.d/opengnsys"
fi
- if grep -q "UrlMsg=.*msgbrowser.php" $INSTALL_TARGET/client/etc/ogAdmClient.cfg 2>/dev/null; then
+ if egrep -q "(UrlMsg=.*msgbrowser.php)|(UrlMenu=http://)" $INSTALL_TARGET/client/etc/ogAdmClient.cfg 2>/dev/null; then
echoAndLog "${FUNCNAME}(): updating new client config file"
backupFile $INSTALL_TARGET/client/etc/ogAdmClient.cfg
- perl -pi -e 's!UrlMsg=.*msgbrowser\.php!UrlMsg=http://localhost/cgi-bin/httpd-log\.sh!g' $INSTALL_TARGET/client/etc/ogAdmClient.cfg
+ perl -pi -e 's!UrlMsg=.*msgbrowser\.php!UrlMsg=http://localhost/cgi-bin/httpd-log\.sh!g; s!UrlMenu=http://!UrlMenu=https://!g' $INSTALL_TARGET/client/etc/ogAdmClient.cfg
NEWFILES="$NEWFILES $INSTALL_TARGET/client/etc/ogAdmClient.cfg"
fi
echoAndLog "${FUNCNAME}(): updating cron files"
@@ -757,7 +766,7 @@ function compileServices()
function updateClient()
{
local DOWNLOADURL="http://$OPENGNSYS_SERVER/downloads"
- local FILENAME=ogLive-precise-3.2.0-23-generic-r3257.iso # 1.0.4-rc2
+ local FILENAME=ogLive-precise-3.2.0-23-generic-r4311.iso # 1.0.4-rc4
#local FILENAME=ogLive-precise-3.11.0-26-generic-r4413.iso # 1.0.6-rc1
local SOURCEFILE=$DOWNLOADURL/$FILENAME
local TARGETFILE=$INSTALL_TARGET/lib/$FILENAME
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage
index 6a9445cc..f208fb9b 100755
--- a/repoman/bin/deleteimage
+++ b/repoman/bin/deleteimage
@@ -53,13 +53,13 @@ fi
IMGPATH="$OGIMG/$1.$IMGEXT"
if [ -f $IMGPATH ]; then
echo "Borrando fichero $PATHDIR"
- rm -f $IMGPATH && rm -f $IMGPATH.{sum,torrent}
+ rm -f $IMGPATH && rm -f $IMGPATH.{sum,full.sum,torrent}
else
# Eliminar ficheros de imagen sincronizada diferencial.
IMGPATH="$OGIMG/$1.$IMGEXT.$DIFFEXT"
if [ -f $IMGPATH ]; then
echo "Borrando fichero $PATHDIR"
- rm -f $IMGPATH && rm -f $IMGPATH.{sum,torrent}
+ rm -f $IMGPATH && rm -f $IMGPATH.{sum,full.sum,torrent}
else
# Eliminar directorio de imagen sincronizada.
IMGPATH="$OGIMG/$1"
@@ -75,12 +75,13 @@ if [ -n "$RECOVERBACKUP" ]; then
[ -e $IMGPATH.$BAKEXT ] && echo "Recuperando copia $IMGPATH.$BAKEXT"
mv -f $IMGPATH.$BAKEXT $IMGPATH && \
(mv -f $IMGPATH.sum.$BAKEXT $IMGPATH.sum 2>/dev/null
+ mv -f $IMGPATH.full.sum.$BAKEXT $IMGPATH.full.sum 2>/dev/null
mv -f $IMGPATH.torrent.$BAKEXT $IMGPATH.torrent 2>/dev/null)
fi
# Borrar copia de seguridad de la imagen.
if [ -n "$DELETEBACKUP" ]; then
[ -e $IMGPATH ] && echo "Eliminando copia $IMGPATH.$BAKEXT"
- rm -f $IMGPATH.$BAKEXT && rm -f $IMGPATH.{sum,torrent}.$BAKEXT
+ rm -f $IMGPATH.$BAKEXT && rm -f $IMGPATH.{sum,full.sum,torrent}.$BAKEXT
fi
diff --git a/repoman/bin/deletepreimage b/repoman/bin/deletepreimage
index 85883aea..39077483 100755
--- a/repoman/bin/deletepreimage
+++ b/repoman/bin/deletepreimage
@@ -44,7 +44,7 @@ for IMG in `ls /opt/opengnsys/images/*.delete`; do
## se llama al escript de borrado de imagen.
## Si es un Directorio Borramos
if [[ $DELETEdir == "delete" ]]; then
- /opt/opengnsys/bin/deleteimage -d $DELETEIMAGE
+ /opt/opengnsys/bin/deleteimage $DELETEIMAGE
# Si es un Imagen Backup Borramos
elif [[ $DELETEant == "ant" ]]; then