summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2017-01-11 13:42:07 +0000
committerramon <ramongomez@us.es>2017-01-11 13:42:07 +0000
commitf2ac15ac7cdec62426af5d57e09620dc72ec995e (patch)
tree5a061a466b8526246a9fd039bea84b419c067ea0
parentc21abbcd5a7fa6f00957f9bd8cf44257f7f08ad5 (diff)
#754: Congelar versión de mantenimiento en rama {{{tags/opengnsys-1.0.6b}}}.
git-svn-id: https://opengnsys.es/svn/tags/opengnsys-1.0.6b@5144 a21b9725-9963-47de-94b9-378ad31fedc9
l---------admin/Database/ogAdmBD-1.0-1.0.6a.sql1
l---------admin/Database/ogAdmBD-1.0-1.0.6b.sql1
-rw-r--r--admin/Database/ogAdmBD-1.0.1-1.0.6b.sql (renamed from admin/Database/ogAdmBD-1.0.1-1.0.6a.sql)6
-rw-r--r--admin/Database/ogAdmBD-1.0.2-1.0.6b.sql (renamed from admin/Database/ogAdmBD-1.0.2-1.0.6a.sql)6
-rw-r--r--admin/Database/ogAdmBD-1.0.2a-1.0.6b.sql (renamed from admin/Database/ogAdmBD-1.0.2a-1.0.6a.sql)6
-rw-r--r--admin/Database/ogAdmBD-1.0.3-1.0.6b.sql (renamed from admin/Database/ogAdmBD-1.0.3-1.0.6a.sql)6
-rw-r--r--admin/Database/ogAdmBD-1.0.4-1.0.6b.sql (renamed from admin/Database/ogAdmBD-1.0.4-1.0.6a.sql)6
-rw-r--r--admin/Database/ogAdmBD-1.0.4a-1.0.6b.sql (renamed from admin/Database/ogAdmBD-1.0.4a-1.0.6a.sql)4
-rw-r--r--admin/Database/ogAdmBD-1.0.5-1.0.6b.sql (renamed from admin/Database/ogAdmBD-1.0.5-1.0.6a.sql)9
l---------admin/Database/ogAdmBD-1.0.6-1.0.6b.sql1
-rw-r--r--admin/Database/ogAdmBD-1.0.6a-1.0.6b.sql12
-rw-r--r--admin/Database/ogAdmBD-1.0.6b-postinst.sql (renamed from admin/Database/ogAdmBD-1.0.6a-postinst.sql)2
-rw-r--r--admin/Database/ogAdmBD.sql3
-rwxr-xr-xadmin/Interface/Configurar2
-rw-r--r--admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php2
-rw-r--r--admin/WebConsole/asistentes/AsistenteDeployImage.php13
-rw-r--r--admin/WebConsole/asistentes/AsistenteParticionado.php7
-rw-r--r--admin/WebConsole/asistentes/AsistenteUpdateCache.php2
-rw-r--r--admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php7
-rw-r--r--admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php5
-rw-r--r--admin/WebConsole/asistentes/jscripts/EjecutarScripts.js32
-rw-r--r--admin/WebConsole/asistentes/jscripts/asistentes.js87
-rw-r--r--admin/WebConsole/idiomas/php/cat/acercade_cat.php2
-rw-r--r--admin/WebConsole/idiomas/php/cat/avisos_cat.php3
-rw-r--r--admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php3
-rw-r--r--admin/WebConsole/idiomas/php/eng/acercade_eng.php2
-rw-r--r--admin/WebConsole/idiomas/php/eng/avisos_eng.php3
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php3
-rw-r--r--admin/WebConsole/idiomas/php/esp/acercade_esp.php2
-rw-r--r--admin/WebConsole/idiomas/php/esp/avisos_esp.php3
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php3
-rw-r--r--admin/WebConsole/index.php1
-rw-r--r--admin/WebConsole/principal/acercade.php103
-rwxr-xr-xclient/engine/Boot.lib34
-rwxr-xr-xclient/engine/Cache.lib29
-rwxr-xr-xclient/engine/Disk.lib82
-rwxr-xr-xclient/engine/FileSystem.lib33
-rwxr-xr-xclient/shared/bin/poweroffconf5
-rwxr-xr-xclient/shared/bin/rsync-31 (renamed from client/shared/bin/rsync-3.1.0)bin1417064 -> 1417064 bytes
-rwxr-xr-xclient/shared/etc/preinit/otherservices.sh3
-rwxr-xr-xclient/shared/scripts/configureOs32
-rw-r--r--client/shared/scripts/configureOsCustom.template55
-rwxr-xr-xclient/shared/scripts/createImage21
-rw-r--r--doc/CHANGELOG.es.txt144
-rw-r--r--doc/VERSION.txt2
-rw-r--r--doc/opengnsys-logo.pngbin8909 -> 13331 bytes
-rw-r--r--doc/userManual/Tema1-Introduccion.pdfbin0 -> 312799 bytes
-rw-r--r--doc/userManual/Tema2-Instalacion.pdfbin0 -> 167663 bytes
-rw-r--r--doc/userManual/Tema3.1-Administracion_componentes.pdfbin0 -> 691692 bytes
-rw-r--r--doc/userManual/Tema3.2-Administracion_consola_web.pdfbin0 -> 617183 bytes
-rw-r--r--doc/userManual/Tema3.3-Administracion_unidad_organizativa.pdfbin0 -> 1475303 bytes
-rw-r--r--doc/userManual/Tema4-Ambito_aplicacion.pdfbin0 -> 568451 bytes
-rw-r--r--doc/userManual/Tema5-Particionado_discos.pdfbin0 -> 644412 bytes
-rw-r--r--doc/userManual/Tema6.1-Creacion_imagenes.pdfbin0 -> 652924 bytes
-rw-r--r--doc/userManual/Tema6.2-Restauracion_y_despliegue_imagenes.pdfbin0 -> 2055792 bytes
-rw-r--r--doc/userManual/Tema6.3-Eliminacion_imagenes.pdfbin0 -> 190772 bytes
-rw-r--r--doc/userManual/Tema7-Acciones_y_menus_usuario.pdfbin0 -> 1079262 bytes
-rwxr-xr-xinstaller/ogGenerateDoc.sh9
-rwxr-xr-xinstaller/opengnsys_installer.sh27
-rwxr-xr-xinstaller/opengnsys_update.sh51
-rwxr-xr-xrepoman/bin/deleteimage34
-rwxr-xr-xserver/bin/comparedhcpopengnsys2
-rwxr-xr-xserver/bin/installoglive25
-rwxr-xr-xserver/bin/setclientmode7
-rwxr-xr-xserver/bin/setserveraddr1
65 files changed, 656 insertions, 288 deletions
diff --git a/admin/Database/ogAdmBD-1.0-1.0.6a.sql b/admin/Database/ogAdmBD-1.0-1.0.6a.sql
deleted file mode 120000
index dc227bf6..00000000
--- a/admin/Database/ogAdmBD-1.0-1.0.6a.sql
+++ /dev/null
@@ -1 +0,0 @@
-ogAdmBD-1.0.1-1.0.6a.sql \ No newline at end of file
diff --git a/admin/Database/ogAdmBD-1.0-1.0.6b.sql b/admin/Database/ogAdmBD-1.0-1.0.6b.sql
new file mode 120000
index 00000000..87188eaf
--- /dev/null
+++ b/admin/Database/ogAdmBD-1.0-1.0.6b.sql
@@ -0,0 +1 @@
+ogAdmBD-1.0.1-1.0.6b.sql \ No newline at end of file
diff --git a/admin/Database/ogAdmBD-1.0.1-1.0.6a.sql b/admin/Database/ogAdmBD-1.0.1-1.0.6b.sql
index 08a68c3b..f751f489 100644
--- a/admin/Database/ogAdmBD-1.0.1-1.0.6a.sql
+++ b/admin/Database/ogAdmBD-1.0.1-1.0.6b.sql
@@ -184,7 +184,8 @@ INSERT INTO sistemasficheros (descripcion, nemonico) VALUES
('REISERFS', 'REISERFS'),
('REISER4', 'REISER4'),
('UFS', 'UFS'),
- ('XFS', 'XFS')
+ ('XFS', 'XFS'),
+ ('LINUX-SWAP', 'LINUX-SWAP')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), nemonico=VALUES(nemonico);
# Nuevas particiones marcadas como clonables.
@@ -216,7 +217,8 @@ UPDATE ordenadores
# correcion en eliminar imagen de cache de cliente (ticket #658)
ALTER TABLE ordenadores_particiones
ADD fechadespliegue DATETIME NULL AFTER idperfilsoft,
- MODIFY cache TEXT NOT NULL;
+ MODIFY cache TEXT NOT NULL,
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
# Mostrar disco en comandos Inventario de software e Iniciar sesión.
UPDATE comandos
diff --git a/admin/Database/ogAdmBD-1.0.2-1.0.6a.sql b/admin/Database/ogAdmBD-1.0.2-1.0.6b.sql
index 69b5428f..27e612bc 100644
--- a/admin/Database/ogAdmBD-1.0.2-1.0.6a.sql
+++ b/admin/Database/ogAdmBD-1.0.2-1.0.6b.sql
@@ -190,7 +190,8 @@ INSERT INTO sistemasficheros (descripcion, nemonico) VALUES
('REISERFS', 'REISERFS'),
('REISER4', 'REISER4'),
('UFS', 'UFS'),
- ('XFS', 'XFS')
+ ('XFS', 'XFS'),
+ ('LINUX-SWAP', 'LINUX-SWAP')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), nemonico=VALUES(nemonico);
# Nuevas particiones marcadas como clonables.
@@ -216,7 +217,8 @@ UPDATE ordenadores
# correcion en eliminar imagen de cache de cliente (ticket #658)
ALTER TABLE ordenadores_particiones
ADD fechadespliegue DATETIME NULL AFTER idperfilsoft,
- MODIFY cache TEXT NOT NULL;
+ MODIFY cache TEXT NOT NULL,
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
# Mostrar disco en comandos Inventario de software e Iniciar sesión.
UPDATE comandos
diff --git a/admin/Database/ogAdmBD-1.0.2a-1.0.6a.sql b/admin/Database/ogAdmBD-1.0.2a-1.0.6b.sql
index 0eaf109b..f38c9638 100644
--- a/admin/Database/ogAdmBD-1.0.2a-1.0.6a.sql
+++ b/admin/Database/ogAdmBD-1.0.2a-1.0.6b.sql
@@ -182,7 +182,8 @@ INSERT INTO sistemasficheros (descripcion, nemonico) VALUES
('REISERFS', 'REISERFS'),
('REISER4', 'REISER4'),
('UFS', 'UFS'),
- ('XFS', 'XFS')
+ ('XFS', 'XFS'),
+ ('LINUX-SWAP', 'LINUX-SWAP')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), nemonico=VALUES(nemonico);
# Nuevas particiones marcadas como clonables.
@@ -214,7 +215,8 @@ UPDATE ordenadores
# correcion en eliminar imagen de cache de cliente (ticket #658)
ALTER TABLE ordenadores_particiones
ADD fechadespliegue DATETIME NULL AFTER idperfilsoft,
- MODIFY cache TEXT NOT NULL;
+ MODIFY cache TEXT NOT NULL,
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
# Mostrar disco en comandos Inventario de software e Iniciar sesión.
UPDATE comandos
diff --git a/admin/Database/ogAdmBD-1.0.3-1.0.6a.sql b/admin/Database/ogAdmBD-1.0.3-1.0.6b.sql
index 18648178..bacbf33a 100644
--- a/admin/Database/ogAdmBD-1.0.3-1.0.6a.sql
+++ b/admin/Database/ogAdmBD-1.0.3-1.0.6b.sql
@@ -201,7 +201,8 @@ INSERT INTO sistemasficheros (descripcion, nemonico) VALUES
('REISERFS', 'REISERFS'),
('REISER4', 'REISER4'),
('UFS', 'UFS'),
- ('XFS', 'XFS')
+ ('XFS', 'XFS'),
+ ('LINUX-SWAP', 'LINUX-SWAP')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), nemonico=VALUES(nemonico);
@@ -225,7 +226,8 @@ UPDATE ordenadores_particiones
# correcion en eliminar imagen de cache de cliente (ticket #658)
ALTER TABLE ordenadores_particiones
ADD fechadespliegue DATETIME NULL AFTER idperfilsoft,
- MODIFY cache TEXT NOT NULL;
+ MODIFY cache TEXT NOT NULL,
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
# Mostrar disco en comandos Inventario de software e Iniciar sesión.
UPDATE comandos
diff --git a/admin/Database/ogAdmBD-1.0.4-1.0.6a.sql b/admin/Database/ogAdmBD-1.0.4-1.0.6b.sql
index 87b14858..2533d15b 100644
--- a/admin/Database/ogAdmBD-1.0.4-1.0.6a.sql
+++ b/admin/Database/ogAdmBD-1.0.4-1.0.6b.sql
@@ -130,7 +130,8 @@ INSERT INTO sistemasficheros (descripcion, nemonico) VALUES
('REISER4', 'REISER4'),
('UFS', 'UFS'),
('XFS', 'XFS'),
- ('EXFAT', 'EXFAT')
+ ('EXFAT', 'EXFAT'),
+ ('LINUX-SWAP', 'LINUX-SWAP')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), nemonico=VALUES(nemonico);
# Nuevas particiones marcadas como clonables.
@@ -161,7 +162,8 @@ UPDATE ordenadores_particiones
# correcion en eliminar imagen de cache de cliente (ticket #658)
ALTER TABLE ordenadores_particiones
ADD fechadespliegue DATETIME NULL AFTER idperfilsoft,
- MODIFY cache TEXT NOT NULL;
+ MODIFY cache TEXT NOT NULL,
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
# Mostrar disco en comandos Inventario de software e Iniciar sesión.
UPDATE comandos
diff --git a/admin/Database/ogAdmBD-1.0.4a-1.0.6a.sql b/admin/Database/ogAdmBD-1.0.4a-1.0.6b.sql
index ebe300e6..9c727204 100644
--- a/admin/Database/ogAdmBD-1.0.4a-1.0.6a.sql
+++ b/admin/Database/ogAdmBD-1.0.4a-1.0.6b.sql
@@ -117,6 +117,7 @@ INSERT INTO sistemasficheros (descripcion, nemonico) VALUES
('UFS', 'UFS'),
('XFS', 'XFS'),
('EXFAT', 'EXFAT')
+ ('LINUX-SWAP', 'LINUX-SWAP')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), nemonico=VALUES(nemonico);
# Nuevas particiones marcadas como clonables.
@@ -153,7 +154,8 @@ UPDATE ordenadores_particiones
# correccion en eliminar imagen de cache de cliente (ticket #658).
ALTER TABLE ordenadores_particiones
ADD fechadespliegue DATETIME NULL AFTER idperfilsoft,
- MODIFY cache TEXT NOT NULL;
+ MODIFY cache TEXT NOT NULL,
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
# Mostrar disco en comandos Inventario de software e Iniciar sesión.
UPDATE comandos
diff --git a/admin/Database/ogAdmBD-1.0.5-1.0.6a.sql b/admin/Database/ogAdmBD-1.0.5-1.0.6b.sql
index ada710d8..35c1d414 100644
--- a/admin/Database/ogAdmBD-1.0.5-1.0.6a.sql
+++ b/admin/Database/ogAdmBD-1.0.5-1.0.6b.sql
@@ -15,8 +15,9 @@ ALTER TABLE imagenes
# Incluir fecha de despliegue/restauración de imagen (ticket #677) y
# correcion en eliminar imagen de cache de cliente (ticket #658).
ALTER TABLE ordenadores_particiones
+ MODIFY cache TEXT NOT NULL,
ADD fechadespliegue DATETIME NULL AFTER idperfilsoft,
- MODIFY cache TEXT NOT NULL;
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
# Mostrar protocolo de clonación en la cola de acciones (ticket #672).
UPDATE parametros
@@ -42,3 +43,9 @@ ALTER TABLE menus
DROP scoorx,
DROP scoory;
+# Añadir nuevos sistemas de ficheros (ticket #758)
+INSERT INTO sistemasficheros (idsistemafichero, nemonico, descripcion) VALUES
+ (19, 'LINUX-SWAP', 'LINUX-SWAP')
+ ON DUPLICATE KEY UPDATE
+ idsistemafichero=VALUES(idsistemafichero), nemonico=VALUES(nemonico), descripcion=VALUES(descripcion);
+
diff --git a/admin/Database/ogAdmBD-1.0.6-1.0.6b.sql b/admin/Database/ogAdmBD-1.0.6-1.0.6b.sql
new file mode 120000
index 00000000..26431207
--- /dev/null
+++ b/admin/Database/ogAdmBD-1.0.6-1.0.6b.sql
@@ -0,0 +1 @@
+ogAdmBD-1.0.6a-1.0.6b.sql \ No newline at end of file
diff --git a/admin/Database/ogAdmBD-1.0.6a-1.0.6b.sql b/admin/Database/ogAdmBD-1.0.6a-1.0.6b.sql
new file mode 100644
index 00000000..f5fa8b19
--- /dev/null
+++ b/admin/Database/ogAdmBD-1.0.6a-1.0.6b.sql
@@ -0,0 +1,12 @@
+# OpenGnSys 1.0.6, 1.0.6a - 1.0.6b
+#use ogAdmBD
+
+ALTER TABLE ordenadores
+ ADD INDEX idaulaip (idaula ASC, ip ASC);
+
+# Añadir nuevos sistemas de ficheros (ticket #758)
+INSERT INTO sistemasficheros (idsistemafichero, nemonico, descripcion) VALUES
+ (19, 'LINUX-SWAP', 'LINUX-SWAP')
+ ON DUPLICATE KEY UPDATE
+ idsistemafichero=VALUES(idsistemafichero), nemonico=VALUES(nemonico), descripcion=VALUES(descripcion);
+
diff --git a/admin/Database/ogAdmBD-1.0.6a-postinst.sql b/admin/Database/ogAdmBD-1.0.6b-postinst.sql
index 8b2e7be6..81cb77ab 100644
--- a/admin/Database/ogAdmBD-1.0.6a-postinst.sql
+++ b/admin/Database/ogAdmBD-1.0.6b-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.0.5+
#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 cdfcf536..0d6a9b87 100644
--- a/admin/Database/ogAdmBD.sql
+++ b/admin/Database/ogAdmBD.sql
@@ -772,7 +772,8 @@ INSERT INTO `sistemasficheros` (`idsistemafichero`, `descripcion`, `nemonico`, `
(15, 'REISER4', 'REISER4', 0),
(16, 'UFS', 'UFS', 0),
(17, 'XFS', 'XFS', 0),
- (18, 'EXFAT', 'EXFAT', 0);
+ (18, 'EXFAT', 'EXFAT', 0),
+ (19, 'LINUX-SWAP', 'LINUX-SWAP', 0);
-- --------------------------------------------------------
diff --git a/admin/Interface/Configurar b/admin/Interface/Configurar
index 18a68ebf..fcf77b95 100755
--- a/admin/Interface/Configurar
+++ b/admin/Interface/Configurar
@@ -78,7 +78,7 @@ for ((i=0; i<${#TBPRM[@]}; i++)); do
# 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"
+ ogCheckStringInGroup $cpt "EMPTY EXTENDED LINUX-LVM"
[ $? -ne 0 ] && TBF[par]="$sfi"
fi
# Obtener la partición mayor.
diff --git a/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php b/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php
index 22ed2973..5bef96ea 100644
--- a/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php
+++ b/admin/WebConsole/asistentes/AsistenteCloneRemotePartition.php
@@ -94,7 +94,7 @@ switch($ambito){
<tr>
<th><INPUT TYPE="button" NAME="GenerarInstruccion" Value="<? echo $TbMsg["WDI12"] ?>" onClick="codeCloneRemotePartition(this.form)"> </th>
- <td colspan="5"><textarea class="cajatexto" name="codigo" cols="70" rows="7"></textarea></td>
+ <td colspan="5"><textarea class="cajatexto" name="codigo" id="codigo" cols="70" rows="7"></textarea></td>
</tr>
</table>
</form>
diff --git a/admin/WebConsole/asistentes/AsistenteDeployImage.php b/admin/WebConsole/asistentes/AsistenteDeployImage.php
index 36fec6bc..45ac35f3 100644
--- a/admin/WebConsole/asistentes/AsistenteDeployImage.php
+++ b/admin/WebConsole/asistentes/AsistenteDeployImage.php
@@ -4,6 +4,9 @@
// Autor:
// Baso en Codigo Comando.php de : Jose Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Xajax
+// version 1.1: El asistente guarda información de la imagen en la configuración del equipo (ticket #757)
+// autor: Irina Gomez, ETSII Universidad de Sevilla
+// fecha: 2016-10-27
// *************************************************************************************************************************************************
@@ -105,8 +108,14 @@ switch($ambito){
?>
<tr>
- <th ><INPUT TYPE="button" NAME="GenerarInstruccion" Value="<? echo $TbMsg["WDI12"] ?>" onClick="codeDeployImage(this.form)"> </th>
- <td colspan="5"><textarea class="cajatexto" name="codigo" cols="70" rows="7"></textarea></td>
+ <th >
+ <INPUT TYPE="button" NAME="GenerarInstruccion" Value="<? echo $TbMsg["WDI12"] ?>" onClick="codeDeployImage(this.form)">
+ <INPUT TYPE="button" NAME="ModificarCodigo" Value="<? echo $TbMsg["WDI10"] ?>" onClick="modificarCodigo()">
+ </th>
+ <td colspan="5"><textarea class="cajatexto" name="codigo" id="codigo" cols="70" rows="7" disabled></textarea></td>
+ </tr>
+ <tr>
+ <th colspan="4"><? echo $TbMsg["WDI31"] ?></th>
</tr>
</table>
</form>
diff --git a/admin/WebConsole/asistentes/AsistenteParticionado.php b/admin/WebConsole/asistentes/AsistenteParticionado.php
index 88767d95..917b832e 100644
--- a/admin/WebConsole/asistentes/AsistenteParticionado.php
+++ b/admin/WebConsole/asistentes/AsistenteParticionado.php
@@ -150,11 +150,10 @@ function doOnload(){
<table class="tabla_datos">
<tr>
<th><input type="button" name="GenerarInstruccion" Value="<?php echo $TbMsg[41];?>" onclick="codeParticionado(this.form)" /> </th>
- <td colspan="2"><textarea class="cajatexto" name="codigo" cols="70" rows="7"></textarea></td>
- </tr>
- <tr>
- <th colspan="3"><?php echo $TbMsg["WARN_REBOOTAFTER"]; ?></th>
+ <td colspan="2"><textarea class="cajatexto" name="codigo" id="codigo" cols="70" rows="7"></textarea></td>
</tr>
+ <tr> <th colspan="3"><?php echo $TbMsg["WARN_DISKSIZE"]; ?></th> </tr>
+ <tr> <th colspan="3"><?php echo $TbMsg["WARN_REBOOTAFTER"]; ?></th> </tr>
</table>
</form>
diff --git a/admin/WebConsole/asistentes/AsistenteUpdateCache.php b/admin/WebConsole/asistentes/AsistenteUpdateCache.php
index e120f7f7..86a867b1 100644
--- a/admin/WebConsole/asistentes/AsistenteUpdateCache.php
+++ b/admin/WebConsole/asistentes/AsistenteUpdateCache.php
@@ -114,7 +114,7 @@ switch($ambito){
<tr>
<th ><INPUT TYPE="button" NAME="GenerarInstruccion" Value="Generar InstruccionOG" onClick="codeDeployImage(this.form)"> </th>
- <td colspan="5"><textarea class="cajatexto" name="codigo" cols="70" rows="7"></textarea></td>
+ <td colspan="5"><textarea class="cajatexto" name="codigo" id="codigo" cols="70" rows="7"></textarea></td>
</tr>
</table>
</form>
diff --git a/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php b/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php
index 9381d5cf..be675c6e 100644
--- a/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php
+++ b/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php
@@ -1,4 +1,8 @@
<?php
+// version 1.1: htmlOPTION_images: se modifica el valor de la imagen iprepo_nombreca_idimagen_idperfilsoft (ticket #757)
+// autor: Irina Gomez, ETSII Universidad de Sevilla
+// fecha: 2016-10-27
+
/// funciones php
#devuelve los elementos [texto] multicast para un formulario.
@@ -196,7 +200,8 @@ $subconsultarepo='SELECT idrepositorio FROM ordenadores where idordenador=' . $
if ($rs->Abrir()){
$rs->Primero();
while (!$rs->EOF){
- $SelectHtml.='<OPTION value="'.$rs->campos["nombreca"] . '" ';
+ $SelectHtml.='<OPTION value="'.$rs->campos["iprepositorio"] ."_".$rs->campos["nombreca"]."_".$rs->campos["idimagen"].'_'.$rs->campos["idperfilsoft"].'" ';
+ //$SelectHtml.='<OPTION value="'.$rs->campos["nombreca"] . '" ';
$SelectHtml.='>';
$SelectHtml.= $rs->campos["descripcion"] .'</OPTION>';
$rs->Siguiente();
diff --git a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php
index 78502d83..dfdd34d2 100644
--- a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php
+++ b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php
@@ -1,4 +1,8 @@
<?php
+// version 1.1: se incluye el atributo atrib_restore (ticket #757)
+// autor: Irina Gomez, ETSII Universidad de Sevilla
+// fecha: 2016-10-27
+
$disksPartitions = array();
$diskPartIndex = 0;
// Recorremos todas las configuraciones y vamos creando un array con disco - particion
@@ -11,6 +15,7 @@ for($cfgIndex = 0; $cfgIndex < $conKeys; $cfgIndex++){
}
?>
+ <input type="hidden" name="atrib_restore" value="">
<? echo $TbMsg["WDI13"] ?> <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>
diff --git a/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js b/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js
index bfc2d162..616bc470 100644
--- a/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js
+++ b/admin/WebConsole/asistentes/jscripts/EjecutarScripts.js
@@ -6,26 +6,32 @@
// Nombre del fichero: EjecutarScripts.js
// Descripción :
// Este fichero implementa las funciones javascript del fichero EjecutarScripts.php (Comandos)
+// version 1.1: Para el deploy imagen se envía al comando RestaurarImagen del ogclient.
+// autor: Irina Gomez, ETSII Universidad de Sevilla
+// fecha: 2016-10-27
// ***********************************************************************************************************
function confirmar(){
if (comprobar_datos()){
var RC='@';
document.fdatosejecucion.atributos.value="scp="+escape(document.fdatos.codigo.value)+RC;
- // Enviar datos si el formulario no tiene método de clonación.
- if (document.fdatos.idmetodo == undefined) {
- document.fdatosejecucion.submit();
- }else{
- // Pedir confirmación si clonación masiva por Unicast.
- 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();
+
+ // Pedir confirmación si clonación masiva por Unicast.
+ if (document.fdatosejecucion.ambito.value!=16 && document.fdatos.idmetodo !== undefined &&
+ (document.fdatos.idmetodo.value=="UNICAST" || document.fdatos.idmetodo.value=="UNICAST-DIRECT")) {
+ if (confirm(TbMsg[4]) !== true) {
+ cancelar();
+ return false;
}
}
+
+ // Si deployImagen y no se ha modificado el codigo cambio a RestaurarImagen
+ if (document.getElementById("codigo").disabled == true && document.fdatos.modo.value == "deployImage") {
+ document.fdatosejecucion.idcomando.value = 3;
+ document.fdatosejecucion.funcion.value = "RestaurarImagen";
+ document.fdatosejecucion.atributos.value = document.fdatos.atrib_restore.value;
+ }
+
+ document.fdatosejecucion.submit();
}
}
//________________________________________________________________________________________________________
diff --git a/admin/WebConsole/asistentes/jscripts/asistentes.js b/admin/WebConsole/asistentes/jscripts/asistentes.js
index a9749c78..1e9e3d95 100644
--- a/admin/WebConsole/asistentes/jscripts/asistentes.js
+++ b/admin/WebConsole/asistentes/jscripts/asistentes.js
@@ -6,6 +6,12 @@
// Nombre del fichero: asistentes.js
// Descripción :
// Este fichero implementa las funciones javascript del fichero AsistentesEjecutarScripts.php (Comandos)
+// version 1.0.6b y 1.1: codeDeployImage: Compone atributo para el comando restaurar imagen (ticket #757)
+// autor: Irina Gomez, ETSII Universidad de Sevilla
+// fecha: 2016-10-27
+// versión 1.0.6b: Si existe Cache al crear las particiones reservamos la cuarta libre (ticket #753)
+// autor: Irina Gomez, ETSII Universidad de Sevilla
+// fecha: 2016-12-15
// ***********************************************************************************************************
function codeCloneRemotePartition(form){
@@ -52,29 +58,35 @@ switch (form.idmetodo.value)
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;
+ protocol="TORRENT " + form.modp2p.value + ":" + form.timep2p.value;
break;
case "UNICAST":
- protocol=" UNICAST";
+ protocol="UNICAST";
break;
case "UNICAST-DIRECT":
- protocol=" UNICAST-DIRECT";
+ protocol="UNICAST-DIRECT";
break;
}
+// Datos imagen
+var imagen = form.idimagen.value.split("_");
//form.codigo.value="deployImage REPO /";
if (form.modo[0].checked)
{
// UHU - Distinguimos entre disco y particion, el valor de idparticion sera disco;particion. eje. 1;1
var diskPart = form.idparticion.value.split(";");
- command="deployImage REPO /" + form.idimagen.value + " "+diskPart[0]+" " + diskPart[1] + " " + protocol ;
+ command="deployImage " + imagen[0] + " /" + imagen[1] + " "+diskPart[0]+" " + diskPart[1] + " " + protocol ;
form.codigo.value="\
ogEcho log session \"[0] $MSG_SCRIPTS_TASK_START " + command + "\"\n \ " +
command + " \n";
- //form.codigo.value="deployImage REPO /" + form.idimagen.value + " 1 " + form.idparticion.value + " " + protocol ;
+
+ // Atributos para comando RestaurarImagen
+ form.atrib_restore.value = "dsk=" + diskPart[0] + "@par="+ diskPart[1] +"@idi=" +imagen[2] +
+ "@nci="+imagen[1] + "@ipr="+ imagen[0] +"@ifs=" +imagen[3] +
+ "@ptc="+protocol +"@";
}
else
{
- command="updateCache REPO /" + form.idimagen.value + ".img" + " " + protocol ;
+ command="updateCache REPO /" + imagen[1] + ".img" + " " + protocol ;
form.codigo.value="\
ogEcho log session \"[0] $MSG_SCRIPTS_TASK_START " + command +"\"\n \ " +
command + " \n";
@@ -83,6 +95,11 @@ command + " \n";
}
+// Activa el área de texto del código, permitiendo modificarlo.
+function modificarCodigo() {
+ document.getElementById("codigo").disabled = false;
+}
+
function codeParticionado(form){
var errorMsg = "¡El espacio libre en disco no puede ser menor que 0!";
var n_disk = form.n_disk.value;
@@ -113,16 +130,27 @@ function codeParticionado(form){
function codeParticionadoMSDOS (form) {
var partCode="";
var logicalCode="";
- var cacheCode;
+ var sizecacheCode="";
+ // cacheCode: codigo para preparar la particion cache
+ var cacheCode="";
+ // cacheInit: codigo para crear la particion cache, al final de todo el proceso
+ var cacheInit="";
var cacheSize;
var extended=false;
var n_disk = form.n_disk.value;
var tipo_part_table = form.tipo_part_table.value;
var maxParts = 4;
+ var emptyCache = "";
// Comprobamos si esta seleccionada la cuarta particion y no es CACHE
- if(form.check4.checked && form.part4.value != "CACHE")
- maxParts = 5;
+ if(form.check4.checked) {
+ if (form.part4.value == "CACHE") {
+ // Si existe Cache al crear las particiones reservamos la cuarta libre
+ emptyCache = " EMPTY:0";
+ } else {
+ maxParts = 5;
+ }
+ }
for (var nPart=1; nPart<maxParts; nPart++) {
var partCheck=eval("form.check"+nPart);
@@ -147,43 +175,42 @@ function codeParticionadoMSDOS (form) {
} else {
partCode += ":" + partSize.value;
}
+ // En la partición 4 dejo espacio libre para la Cache
+ if (nPart == 3) partCode += emptyCache;
} else {
partCode += " EMPTY:0";
}
}
- var cacheCode="";
-
// Si se selecciono la particion 4 y es CACHE
if(form.part4.value == "CACHE"){
if (form.check4.checked) {
if (form.size4.value == "0") {
- cacheCode="\
+ sizecacheCode="\
ogEcho session \"[20] $MSG_HELP_ogGetCacheSize\"\n \
-sizecache=`ogGetCacheSize` \n \
+sizecache=`ogGetCacheSize` \n";
+ cacheInit="initCache "+n_disk+" $sizecache &>/dev/null | tee -a $OGLOGCOMMAND \n ";
+ cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
ogDeletePartitionTable "+n_disk+" \n \
-ogExecAndLog command ogUpdatePartitionTable "+n_disk+" \n \
-ogEcho session \"[50] $MSG_HELP_ogCreateCache\"\n \
-initCache "+n_disk+" $sizecache &>/dev/null \n ";
+ogExecAndLog command ogUpdatePartitionTable "+n_disk+" \n \ ";
} else {
if (form.size4.value == "CUSTOM") {
cacheSize = form.size4custom.value;
} else {
cacheSize = form.size4.value;
}
+ cacheInit="initCache " + n_disk + " " + cacheSize + " &>/dev/null | tee -a $OGLOGCOMMAND \n ";
cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
ogDeletePartitionTable "+n_disk+" \n \
-ogUpdatePartitionTable "+n_disk+" \n \
-ogEcho session \"[50] $MSG_HELP_ogCreateCache\"\n \
-initCache " + n_disk + " " + cacheSize + " &>/dev/null";
+ogUpdatePartitionTable "+n_disk+" \n \ ";
}
} else {
cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
ogDeletePartitionTable "+n_disk+" \n \
-ogUpdatePartitionTable "+n_disk+" \n";
+ogUpdatePartitionTable "+n_disk+" \n \ ";
partCode += " EMPTY:0";
}
}
@@ -221,12 +248,13 @@ partCode += " EMPTY:0";
}
form.codigo.value="\
+" + sizecacheCode + " \
ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
ogEcho log session \"[0] $MSG_HELP_ogCreatePartitions \"\n \
ogEcho session \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\"\n \
ogUnmountAll "+n_disk+" 2>/dev/null\n \
ogUnmountCache \n \
-" + cacheCode + " \n \
+" + cacheCode + " \
ogEcho session \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
ogExecAndLog command session ogListPartitions "+n_disk+" \n \
ogEcho session \"[70] $MSG_HELP_ogCreatePartitions " + partCode + "\"\n \
@@ -236,14 +264,15 @@ ogSetPartitionActive "+n_disk+" 1 \n \
ogEcho log session \"[100] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
ogUpdatePartitionTable "+n_disk+" \n \
ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \
-ogExecAndLog command session log ogListPartitions "+n_disk+" \n \
-reboot \n";
+" + cacheInit + " \
+ogExecAndLog command session log ogListPartitions "+n_disk+" \n";
}
function codeParticionadoGPT (form) {
var partCode="";
var logicalCode="";
+ var sizecacheCode="";
var cacheCode="";
var cacheSize;
var extended=false;
@@ -258,9 +287,10 @@ function codeParticionadoGPT (form) {
// Solo tratamos la particion 4 como cache, si se selecciono este tipo
if(nPart == 4 && form.partGPT4.value == "CACHE") {
if (form.sizeGPT4.value == "0") {
- cacheCode="\
+ sizecacheCode="\
ogEcho session \"[20] $MSG_HELP_ogGetCacheSize\"\n \
-sizecache=`ogGetCacheSize` \n \
+sizecache=`ogGetCacheSize` \n";
+ cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
ogDeletePartitionTable "+n_disk+" \n \
ogExecAndLog command ogUpdatePartitionTable "+n_disk+" \n \
@@ -308,6 +338,7 @@ partCode += " EMPTY:0";
}
}
form.codigo.value="\
+" + sizecacheCode + " \n \
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 \
@@ -323,8 +354,7 @@ ogSetPartitionActive "+n_disk+" 1 \n \
ogEcho log session \"[100] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
ogUpdatePartitionTable "+n_disk+" \n \
ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \
-ogExecAndLog command session log ogListPartitions "+n_disk+" \n \
-reboot \n";
+ogExecAndLog command session log ogListPartitions "+n_disk+" \n";
}
@@ -396,7 +426,8 @@ function getMinDiskSize(disk){
if(diskSizeArray[i].value < minSize)
minSize = diskSizeArray[i].value;
}
- return minSize;
+ // Restar sectores iniciales del disco al tamaño total (1 MB).
+ return (minSize > 1024 ? minSize - 1024 : minSize)
}
// Código para calcular el espacio libre del disco.
diff --git a/admin/WebConsole/idiomas/php/cat/acercade_cat.php b/admin/WebConsole/idiomas/php/cat/acercade_cat.php
index 2e4e0147..7f0788a7 100644
--- a/admin/WebConsole/idiomas/php/cat/acercade_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/acercade_cat.php
@@ -13,6 +13,8 @@ $TbMsg["TITLE"]='Aplicaci&oacute;n libre y abierta para la gesti&oacute;n y el d
$TbMsg["DESCRIPTION"]='OpenGnSys <em>(l&eacute;ase OpenG&eacute;nesis)</em> re&uacute;ne el esfuerzo conjunto de varias Universidades P&uacute;blicas Espa&ntilde;olas, para disponer de una serie de herramientas libres y abiertas que constituyan un sistema completo, vers&aacute;til e intuitivo, para la gesti&oacute;n y clonaci&oacute;n de equipos. Esta aplicaci&oacute;n permite la distribuci&oacute;n, instalaci&oacute;n y despliegue de distintos sistemas operativos. ';
$TbMsg["LICENSE"]='OpenGnSys es un proyecto de Software Libre, todo el c&oacute;digo est&aacute; licenciado bajo ';
$TbMsg["LINK"]='Web del proyecto: ';
+$TbMsg["CHANGE"]='Canvis en: ';
+$TbMsg["MANUAL"]='Manual OpenGnSys ';
?>
diff --git a/admin/WebConsole/idiomas/php/cat/avisos_cat.php b/admin/WebConsole/idiomas/php/cat/avisos_cat.php
index eb927081..017cf74c 100644
--- a/admin/WebConsole/idiomas/php/cat/avisos_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/avisos_cat.php
@@ -8,7 +8,8 @@
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_DISKSIZE"]='AVISO: El cálculo del tamaño del disco tiene un margen de error, si se utiliza completamente puede fallar la creación de la cache. Es conveniente dejar un espacio libre, que en disco grandes puede llegar a un 1GB';
+$TbMsg["WARN_REBOOTAFTER"]='AVISO: Es conveniente realizar 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/cat/comandos/ejecutarscripts_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php
index dc6885cd..3467ef6b 100644
--- a/admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php
+++ b/admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php
@@ -18,6 +18,7 @@
$TbMsg[10]='Dades a subministrar';
$TbMsg[11]='Eliminar Imatge de la Cache de Client';
+ $TbMsg["WDI10"]='Modificar código';
$TbMsg["WDI11"]='Asistent de Desplegament de la imatge';
$TbMsg["WDI12"]='Generar Instrucció OG';
$TbMsg["WDI13"]='Escull si només vols emmagatzemar la imatge en la Cache - UpdateCache ';
@@ -41,6 +42,8 @@
$TbMsg["WDI30"]='temps de llavor :';
+ $TbMsg["WDI31"]='AVISO: Si modifica el código no se guardará la información de los equipos después de desplegar la imagen.';
+
$TbMsg["WCRP31"]='Assistent Clonaci&oacute; Particions Remotes';
$TbMsg["WCRP32"]='Escull equip MASTER:';
$TbMsg["WCRP33"]='Escull des de el Master la imatge o partició a enviar';
diff --git a/admin/WebConsole/idiomas/php/eng/acercade_eng.php b/admin/WebConsole/idiomas/php/eng/acercade_eng.php
index 638dca56..1cf4a190 100644
--- a/admin/WebConsole/idiomas/php/eng/acercade_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/acercade_eng.php
@@ -13,6 +13,8 @@ $TbMsg["TITLE"]='Free and open-source application for deployment and management
$TbMsg["DESCRIPTION"]='OpenGnSys <em> (Open Genesis)</em> Project brings together the combined efforts of several Spanish Public Universities. OpenGnSys provide a number of free and open tools for managing and deploying computers. These tools supplies a complete, versatile and intuitive sytem. This system allows the arrangement, installation and deployment of different operating systems.';
$TbMsg["LICENSE"]='OpenGnSys is a Free Software project. As such, all code is licensed under ';
$TbMsg["LINK"]='Web project:';
+$TbMsg["CHANGE"]='Changes in: ';
+$TbMsg["MANUAL"]='Manual OpenGnSys ';
?>
diff --git a/admin/WebConsole/idiomas/php/eng/avisos_eng.php b/admin/WebConsole/idiomas/php/eng/avisos_eng.php
index 316a167d..82a4ead7 100644
--- a/admin/WebConsole/idiomas/php/eng/avisos_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/avisos_eng.php
@@ -8,7 +8,8 @@
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_DISKSIZE"]='AVISO: El cálculo del tamaño del disco tiene un margen de error, si se utiliza completamente puede fallar la creación de la cache. Es conveniente dejar un espacio libre, que en disco grandes puede llegar a un 1GB';
+$TbMsg["WARN_REBOOTAFTER"]='WARNING: It is advisable to make a reboot 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/comandos/ejecutarscripts_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php
index 6f081390..0f69669a 100644
--- a/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php
+++ b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php
@@ -18,6 +18,7 @@
$TbMsg[10]='Data to submit';
$TbMsg[11]='Delete Cache Image on Client';
+ $TbMsg["WDI10"]='Modificar código';
$TbMsg["WDI11"]='Deploy Image Wizard';
$TbMsg["WDI12"]='Generate OG Code';
@@ -43,6 +44,8 @@
$TbMsg["WDI30"]='Seed time';
+ $TbMsg["WDI31"]='AVISO: Si modifica el código no se guardará la información de los equipos después de desplegar la imagen.';
+
$TbMsg["WCRP31"]='Clone to Remote Partition Wizard';
$TbMsg["WCRP32"]='Select MASTER PC:';
$TbMsg["WCRP33"]='Select the image or partition to send from Master PC';
diff --git a/admin/WebConsole/idiomas/php/esp/acercade_esp.php b/admin/WebConsole/idiomas/php/esp/acercade_esp.php
index 2e4e0147..e38fd0b0 100644
--- a/admin/WebConsole/idiomas/php/esp/acercade_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/acercade_esp.php
@@ -13,6 +13,8 @@ $TbMsg["TITLE"]='Aplicaci&oacute;n libre y abierta para la gesti&oacute;n y el d
$TbMsg["DESCRIPTION"]='OpenGnSys <em>(l&eacute;ase OpenG&eacute;nesis)</em> re&uacute;ne el esfuerzo conjunto de varias Universidades P&uacute;blicas Espa&ntilde;olas, para disponer de una serie de herramientas libres y abiertas que constituyan un sistema completo, vers&aacute;til e intuitivo, para la gesti&oacute;n y clonaci&oacute;n de equipos. Esta aplicaci&oacute;n permite la distribuci&oacute;n, instalaci&oacute;n y despliegue de distintos sistemas operativos. ';
$TbMsg["LICENSE"]='OpenGnSys es un proyecto de Software Libre, todo el c&oacute;digo est&aacute; licenciado bajo ';
$TbMsg["LINK"]='Web del proyecto: ';
+$TbMsg["CHANGE"]='Cambios en: ';
+$TbMsg["MANUAL"]='Manual OpenGnSys ';
?>
diff --git a/admin/WebConsole/idiomas/php/esp/avisos_esp.php b/admin/WebConsole/idiomas/php/esp/avisos_esp.php
index e3f35c23..cdf4e333 100644
--- a/admin/WebConsole/idiomas/php/esp/avisos_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/avisos_esp.php
@@ -8,7 +8,8 @@
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_DISKSIZE"]='AVISO: El cálculo del tamaño del disco tiene un margen de error, si se utiliza completamente puede fallar la creación de la cache. Es conveniente dejar un espacio libre, que en disco grandes puede llegar a un 1GB';
+$TbMsg["WARN_REBOOTAFTER"]='AVISO: En algunos casos puede ser conveniente realizar 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/comandos/ejecutarscripts_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php
index 3c70d168..aae8ab21 100644
--- a/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php
@@ -18,6 +18,7 @@
$TbMsg[10]='Datos a suministrar';
$TbMsg[11]='Eliminar Imagen de la Cach&eacute; de Cliente';
+ $TbMsg["WDI10"]='Modificar código';
$TbMsg["WDI11"]='Asistente de Despliegue de la imagen';
$TbMsg["WDI12"]='Generar Instrucci&oacute;n OG';
$TbMsg["WDI13"]='Elige si solo quieres almacenar la imagen en la Cache - UpdateCache ';
@@ -41,6 +42,8 @@
$TbMsg["WDI30"]='tiempo de semilla :';
+ $TbMsg["WDI31"]='AVISO: Si modifica el código no se guardará la información de los equipos después de desplegar la imagen.';
+
$TbMsg["WCRP31"]='Asistente Clonaci&oacute;n Particiones Remotas';
$TbMsg["WCRP32"]='Elige equipo MASTER:';
$TbMsg["WCRP33"]='Elige desde el Master la imagen o particion a enviar';
diff --git a/admin/WebConsole/index.php b/admin/WebConsole/index.php
index 61ea54b9..96f3abbb 100644
--- a/admin/WebConsole/index.php
+++ b/admin/WebConsole/index.php
@@ -9,6 +9,7 @@
// Autor: Ramn Gmez - ETSII, Universidad de Sevilla
// Fecha: 2012-02-07
// *****************************************************************************
+session_start();
if(isset($_SESSION)){ // Si existe algua sesin ...
session_unset(); // Elimina variables
session_destroy(); // Destruye sesin
diff --git a/admin/WebConsole/principal/acercade.php b/admin/WebConsole/principal/acercade.php
index 2703939e..3d1c0a91 100644
--- a/admin/WebConsole/principal/acercade.php
+++ b/admin/WebConsole/principal/acercade.php
@@ -30,6 +30,93 @@ if (file_exists ($versionfile))
?>
</p>
+<?php
+// Añadir CHANGELOG.
+$buschangelog=exec('ls ../../doc | grep CHANGELOG*', $nombrechange);
+$changelogfile="../../doc/".$buschangelog;
+?>
+<?php
+// Añadir Manual.
+$usermanual="../../doc/userManual";
+if (file_exists ($usermanual)){
+// Copiamos el directorio userManual
+system("cp -R ../../doc/userManual ../api");
+// Creamos el Inicio del Manual
+system("touch ../api/userManual/Inicio.php");
+// Añadimos instrucciones
+$ficheroinicio="../api/userManual/Inicio.php";
+
+$crearficheroinicio=fopen($ficheroinicio,"w");
+fwrite($crearficheroinicio,"
+<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
+<html>
+<head>
+<title> Administración web de aulas </title>
+<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>
+<link rel='stylesheet' type='text/css' href='../estilos.css' />
+</head>
+
+<body class='acercade'>
+<table width='100%' border='0'>
+ <tr>
+ <td width='30%'><p><img src='../../images/acercade.png' alt='*' hspace='10em' vspace='10em' align='left' /></p>
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+ <p><img alt='OpenGnSys' src='../../images/iconos/logoopengnsys.png' /></p></td>
+ <td width='61%'>
+
+<p>
+
+
+
+<?php
+\$directorio = opendir('.'); //ruta actual
+while (\$archivo = readdir(\$directorio)) //obtenemos un archivo y luego otro sucesivamente
+{
+ if (is_dir(\$archivo))//verificamos si es o no un directorio
+ {
+ if (\$archivo == '.' || \$archivo == '..')
+ {}else{
+ echo '['.\$archivo . ']<br />'; //de ser un directorio lo envolvemos entre corchetes
+ }
+ }
+ else
+ {
+ if (\$archivo == 'Inicio.php' || \$archivo == '.' || \$archivo == '..')
+ {}else{
+ \$fichero[] = \$archivo;
+ }
+ }
+}
+sort(\$fichero);
+foreach (\$fichero as \$ficheros) {
+ echo '<P><a href='.\$ficheros.' target=miframeflotante >'.\$ficheros.'</a></P>';
+}
+
+?>
+
+ </td>
+ </tr>
+
+</table>
+
+<table width='100%' height='100%' border='0'>
+ <tr >
+ <td align='center' >
+ <?php echo '<iframe id=miframeflotante name=miframeflotante src='.\$fichero[0].' width=100% height=700 frameborder=0 scrolling=no marginwidth=0 marginheight=0 align=left>Tu navegador no soporta frames!!</iframe>';
+ ?>
+ </td>
+ </tr>
+</table>
+");
+fclose($crearficheroinicio);
+
+
+}
+?>
+
<p><strong><?php echo $TbMsg["TITLE"] ?></strong></p>
@@ -38,6 +125,20 @@ if (file_exists ($versionfile))
<p><?php echo $TbMsg["LICENSE"] ?> <a href="http://www.gnu.org/licenses/gpl.html" target="_blank" ><img alt="GPL v3" src="../images/gplv3-88x31.png" height="20em" /></a></p>
-<p><strong><?php echo $TbMsg["LINK"] ?> <a href="http://opengnsys.es" target="_blank" >opengnsys.es</a><strong></p>
+<p><?php
+ if (file_exists ($changelogfile)){
+ system("cp ../../doc/$buschangelog ../api");
+ echo "<strong><a href='../api/$buschangelog' target='_blank'>".$TbMsg["CHANGE"]."</a></strong>";
+ include ($versionfile);}
+?></p>
+
+<p><?php echo "<strong><a href='../api/userManual/Inicio.php' target='_blank'>".$TbMsg["MANUAL"]."</a></strong>";?></p>
+
+<p><strong><?php echo $TbMsg["LINK"]; ?> <a href="http://opengnsys.es" target="_blank" >opengnsys.es</a><strong></p>
+
+
+
+
+
</body>
</html>
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib
index 78e16ccb..0e6f525f 100755
--- a/client/engine/Boot.lib
+++ b/client/engine/Boot.lib
@@ -267,8 +267,10 @@ NAME="$3"
# Modificar datos de los valores de registro.
ogSetRegistryValue $MNTDIR system '\ControlSet001\Control\ComputerName\ComputerName\ComputerName' "$NAME" 2>/dev/null
ogSetRegistryValue $MNTDIR system '\ControlSet001\Services\Tcpip\Parameters\Hostname' "$NAME" 2>/dev/null
+ogSetRegistryValue $MNTDIR system '\ControlSet001\Services\Tcpip\Parameters\HostName' "$NAME" 2>/dev/null
ogSetRegistryValue $MNTDIR system '\ControlSet001\services\Tcpip\Parameters\Hostname' "$NAME" 2>/dev/null
ogSetRegistryValue $MNTDIR system '\ControlSet001\Services\Tcpip\Parameters\NV Hostname' "$NAME" 2>/dev/null
+ogSetRegistryValue $MNTDIR system '\ControlSet001\Services\Tcpip\Parameters\NV HostName' "$NAME" 2>/dev/null
ogSetRegistryValue $MNTDIR system '\ControlSet001\services\Tcpip\Parameters\NV Hostname' "$NAME" 2>/dev/null
}
@@ -734,6 +736,7 @@ echo "GRUB_DISABLE_LINUX_UUID=\"true\"" >> /etc/default/grub
#Preparar configuración segunda etapa: crear ubicacion
mkdir -p ${SECONDSTAGE}${PREFIXSECONDSTAGE}/boot/grub/
#Preparar configuración segunda etapa: crear cabecera del fichero
+sed -i 's/^set -e/#set -e/' /etc/grub.d/00_header
/etc/grub.d/00_header > ${SECONDSTAGE}${PREFIXSECONDSTAGE}/boot/grub/grub.cfg
#Preparar configuración segunda etapa: crear entrada del sistema operativo
grubSyntax "$KERNELPARAM" >> ${SECONDSTAGE}${PREFIXSECONDSTAGE}/boot/grub/grub.cfg
@@ -823,6 +826,7 @@ echo "GRUB_DISABLE_LINUX_UUID=\"true\"" >> /etc/default/grub
#Preparar configuración segunda etapa: crear ubicacion
mkdir -p ${SECONDSTAGE}${PREFIXSECONDSTAGE}/boot/grub/
#Preparar configuración segunda etapa: crear cabecera del fichero
+sed -i 's/^set -e/#set -e/' /etc/grub.d/00_header
/etc/grub.d/00_header > ${SECONDSTAGE}${PREFIXSECONDSTAGE}/boot/grub/grub.cfg
#Preparar configuración segunda etapa: crear entrada del sistema operativo
grubSyntax $DISK $PART "$KERNELPARAM" >> ${SECONDSTAGE}${PREFIXSECONDSTAGE}/boot/grub/grub.cfg
@@ -831,21 +835,22 @@ grubSyntax $DISK $PART "$KERNELPARAM" >> ${SECONDSTAGE}${PREFIXSECONDSTAGE}/boot
grub-install --force --root-directory=${SECONDSTAGE}${PREFIXSECONDSTAGE} $FIRSTSTAGE
}
-###
-#En pruebas
-##
+
#/**
# ogConfigureFstab int_ndisk int_nfilesys
-#@brief Establece el nombre del equipo en los ficheros hostname y hosts.
+#@brief Configura el fstab según particiones existentes
#@param int_ndisk nº de orden del disco
#@param int_nfilesys nº de orden del sistema de archivos
#@return (nada)
#@exception OG_ERR_FORMAT Formato incorrecto.
#@exception OG_ERR_NOTFOUND No se encuentra el fichero fstab a procesar.
#@warning Puede haber un error si hay más de 1 partición swap.
-#@version 1.0.5 - Primera versión para OpenGnSys.
+#@version 1.0.5 - Primera versión para OpenGnSys. Solo configura la SWAP
#@author Antonio J. Doblas Viso. Universidad de Malaga.
#@date 2013-03-21
+#@version 1.0.6b - correccion. Si no hay partición fisica para la SWAP, eliminar entrada del fstab.
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2016-11-03
#*/ ##
function ogConfigureFstab {
# Variables locales.
@@ -876,16 +881,16 @@ then
DEFSWAP=$(awk '$1!~/#/ && $3=="swap" {print $1}' ${FSTAB})
if [ -n "$DEFSWAP" ]
then
- echo "Hay definicion de swap en el fstab $DEFSWAP -> modificamos fichero con nuevo valor $DEFSWAP->$PARTSWAP" # Mensaje temporal.
+ echo "Hay definicion de SWAP en el FSTAB $DEFSWAP -> modificamos fichero con nuevo valor $DEFSWAP->$PARTSWAP" # Mensaje temporal.
sed "s|$DEFSWAP|$PARTSWAP|g ; s|$DEFROOT|$PARTROOT|g" ${FSTAB}.backup > ${FSTAB}
else
- echo "No hay definicion de swap y si hay partición swap -> moficamos fichero" # Mensaje temporal.
+ echo "No hay definicion de SWAP y si hay partición SWAP -> moficamos fichero" # Mensaje temporal.
sed "s|$DEFROOT|$PARTROOT|g" ${FSTAB}.backup > ${FSTAB}
echo "$PARTSWAP none swap sw 0 0" >> ${FSTAB}
fi
else
- echo "No hay partición swap -> configuramos fstba" # Mensaje temporal.
- sed "s|$DEFROOT|$PARTROOT|g" ${FSTAB}.backup > ${FSTAB}
+ echo "No hay partición SWAP -> configuramos FSTAB" # Mensaje temporal.
+ sed "/swap/d" ${FSTAB}.backup > ${FSTAB}
fi
}
@@ -957,9 +962,7 @@ fi
}
-###
-#En pruebas
-##
+
#/**
# ogCleanLinuxDevices int_ndisk int_nfilesys
#@brief Limpia los dispositivos del equipo de referencia. Interfaz de red ...
@@ -972,6 +975,9 @@ fi
#@version 1.0.5 - Primera versión para OpenGnSys.
#@author Antonio J. Doblas Viso. Universidad de Malaga.
#@date 2013-03-21
+#@version 1.0.6b - Elimina fichero resume de hibernacion
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2016-11-07
#*/ ##
function ogCleanLinuxDevices ()
{
@@ -991,7 +997,9 @@ fi
MNTDIR=$(ogMount $1 $2) || return $?
# Eliminar fichero de configuración de udev para dispositivos fijos de red.
-rm -f ${MNTDIR}/etc/udev/rules.d/70-persistent-net.rules
+[ -f ${MNTDIR}/etc/udev/rules.d/70-persistent-net.rules ] && rm -f ${MNTDIR}/etc/udev/rules.d/70-persistent-net.rules
+# Eliminar fichero resume (estado previo de hibernación) utilizado por el initrd scripts-premount
+[ -f ${MNTDIR}/etc/initramfs-tools/conf.d/resume ] && rm -f ${MNTDIR}/etc/initramfs-tools/conf.d/resume
}
#/**
diff --git a/client/engine/Cache.lib b/client/engine/Cache.lib
index 626cab6f..e68dedbe 100755
--- a/client/engine/Cache.lib
+++ b/client/engine/Cache.lib
@@ -31,6 +31,9 @@
#@version 1.0.5 - Posibilidad de crear la cache en cualquier disco duro
#@author Universidad de Huelva
#@date 2012/09/18
+#@version 1.0.6b - Al crear las particiones ordenamos los dispositivos en el fichero auxiliar.
+#@author Irina Gomez, ETSII Universidad de Sevilla
+#@date 2016/12/19
#*/ ##
function ogCreateCache ()
{
@@ -100,16 +103,27 @@ case "$(ogGetPartitionTableType $NDSK)" in
[ -n "$(ogFindCache)" ] && ogDeleteCache
# Capturamos el codigo de particion GPT para cache
ID=$(ogTypeToId CACHE GPT)
- sgdisk $DISK -n$PART:$START:$END -c$PART:CACHE -t$PART:$ID 2>/dev/null && partprobe
+ sgdisk $DISK -n$PART:$START:$END -c$PART:CACHE -t$PART:$ID 2>/dev/null
;;
MSDOS)
# Si la tabla de particiones no es valida, volver a generarla.
[ $(parted -s $DISK print >/dev/null) ] || fdisk $DISK <<< "w"
# Definir particiones y notificar al kernel.
ID=$(ogTypeToId CACHE MSDOS)
- sfdisk -f $DISK -uS -N$PART <<<"$START,$SIZE,$ID" 2>/dev/null && partprobe
+ local TMPFILE=/tmp/sfdisk$$
+ trap "rm -f $TMPFILE" 1 2 3 9 15
+ sfdisk --dump $DISK | grep -v $DISK$PART > $TMPFILE
+ echo "$DISK$PART : start= $START, size= $SIZE, Id=$ID" >> $TMPFILE
+ # Ordenamos las lineas de los dispositivos
+ UNIT=$(grep unit $TMPFILE)
+ grep ^/dev $TMPFILE|sort -o $TMPFILE
+ sed -i "1i $UNIT\n" $TMPFILE
+ sfdisk --no-reread $DISK < $TMPFILE
+ rm -f $TMPFILE
;;
esac
+#Actualiza la tabla de particiones en el kernel.
+ogUpdatePartitionTable $NDISK
}
@@ -125,6 +139,9 @@ esac
#@version 1.0.4 - Soporte para discos GPT.
#@author Universidad de Huelva
#@date 2012/03/13
+#@version 1.0.6b - llamada correcta a ogGetPartitionTableType y ogUpdatePartitionTable
+#@author Antonio Doblas Universidad de Málaga
+#@date 2016/11/16
#*/ ##
function ogDeleteCache ()
{
@@ -142,21 +159,23 @@ DISK=$(ogDiskToDev $NDISK)
# Desmontar todos los sistemas de archivos del disco.
ogUnmountAll $NDISK 2>/dev/null
-case "$(ogGetPartitionTableType $1)" in
+case "$(ogGetPartitionTableType $NDISK)" in
GPT)
# Si la tabla de particiones no es valida, volver a generarla.
[ ! $(sgdisk -p $DISK 2>&1 >/dev/null) ] || echo -e "2\nw\nY\n" | gdisk $DISK
- sgdisk $DISK -d$NPART 2>/dev/null && partprobe
+ sgdisk $DISK -d$NPART 2>/dev/null
;;
MSDOS)
# Si la tabla de particiones no es valida, volver a generarla.
[ $(parted -s $DISK print >/dev/null) ] || fdisk $DISK <<< "w"
# Eliminar (poner a 0) la partición de caché.
- sfdisk -f $DISK -N$NPART <<<"0,0,0" 2>/dev/null && partprobe
+ sfdisk -f $DISK -N$NPART <<<"0,0,0" 2>/dev/null
;;
esac
# Borrar etiqueta de la caché.
rm -f /dev/disk/by-label/CACHE
+#Actualiza la tabla de particiones en el kernel.
+ogUpdatePartitionTable $NDISK
}
diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib
index 4ff545a3..1bba0a28 100755
--- a/client/engine/Disk.lib
+++ b/client/engine/Disk.lib
@@ -115,8 +115,8 @@ while [ $# -gt 0 ]; do
# Comprobar si la partición es extendida.
if [ $ID = 5 ]; then
[ $PART -le 4 ] || ogRaiseError $OG_ERR_FORMAT || return $?
- EXTSTART=$START
- EXTSIZE=$SIZE
+ let EXTSTART=$START+2048
+ let EXTSIZE=$SIZE-2048
fi
# Incluir particiones lógicas dentro de la partición extendida.
if [ $PART = 5 ]; then
@@ -155,7 +155,7 @@ ogCreatePartitionTable $ND
# Definir particiones y notificar al kernel.
sfdisk -f $DISK < $tmpsfdisk 2>/dev/null && partprobe $DISK
rm -f $tmpsfdisk
-[ -n "$CACHESIZE" ] && ogMountCache 2>/dev/null
+[ -n "$CACHESIZE" ] && ogMountCache 2>/dev/null || return 0
}
@@ -196,6 +196,8 @@ ND="$1"
DISK=$(ogDiskToDev "$ND") || return $?
# Se calcula el ultimo sector del disco (total de sectores usables)
SECTORS=$(ogGetLastSector $1)
+# Se recalcula el nº de sectores del disco si existe partición de caché.
+CACHEPART=$(ogFindCache 2>/dev/null)
[ "$ND" = "${CACHEPART% *}" ] && CACHESIZE=$(ogGetCacheSize 2>/dev/null | awk '{print $0*2}')
[ -n "$CACHESIZE" ] && SECTORS=$[SECTORS-CACHESIZE]
# Si el disco es GPT empieza en el sector 2048 por defecto, pero podria cambiarse
@@ -313,7 +315,7 @@ case "$CREATE" in
GPT)
# Si es necesario crear una tabla GPT pero la actual es MSDOS
if [ "$PTTYPE" == "MSDOS" ]; then
- sgdisk -g $DISK
+ sgdisk -go $DISK
else
echo -e "2\nw\nY\n" | gdisk $DISK
fi
@@ -466,7 +468,7 @@ if [ "$*" == "help" ]; then
fi
# Listar dispositivos de discos duros.
-ALLDISKS=$(lsblk -n | awk '$6~/^disk$/ {gsub(/!/,"/"); printf "/dev/%s ",$1}')
+ALLDISKS=$(lsblk -n -e 1,2 | awk '$6~/^disk$/ {gsub(/!/,"/"); printf "/dev/%s ",$1}')
# Listar volúmenes lógicos.
VOLGROUPS=$(vgs -a --noheadings 2>/dev/null | awk '{printf "/dev/%s ",$1}')
@@ -604,12 +606,15 @@ echo $TYPE
#@version 1.0.4 - Primera versión compatible con OpenGnSys.
#@author Universidad de Huelva
#@date 2012/06/03
+#@version 1.0.6b - uso de sgdisk para todo tipo de particiones. Incidencia #762
+#@author Universidad de Málaga
+#@date 2016/11/10
#*/ ##
function ogGetLastSector ()
{
# Variables locales
-local DISK PART PTTYPE LASTSECTOR SECTORS CYLS IOSIZE
+local DISK PART LASTSECTOR
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk [int_npart]" \
@@ -628,35 +633,12 @@ case $# in
return $? ;;
esac
-# Hay que comprobar si el disco es GPT
-PTTYPE=$(ogGetPartitionTableType $1)
-PTTYPE=${PTTYPE:-"MSDOS"} # Por defecto para discos vacíos.
-case "$PTTYPE" in
- GPT)
- if [ $# == 1 ]; then
- LASTSECTOR=$(LANG=C sgdisk -p $DISK | awk '/last usable sector/ {print($(NF))}')
- else
- LASTSECTOR=$(LANG=C sgdisk -p $DISK | awk -v P="$2" '{if ($1==P) print $3}')
- fi
- ;;
- MSDOS)
- if [ $# == 1 ]; then
- SECTORS=$(awk -v D=${DISK#/dev/} '{if ($4==D) {print $3*2}}' /proc/partitions)
- CYLS=$(sfdisk -g $DISK | cut -f2 -d" ")
- ########## agp ###########
- IOSIZE=$(fdisk -l $DISK | grep I/O | cut -d ":" -f2 | cut -d "/" -f1 | cut -d " " -f2)
- if [[ $IOSIZE = 4096 ]]; then
- LASTSECTOR=$[SECTORS-512]
- else
- LASTSECTOR=$[SECTORS/CYLS*CYLS-1]
- fi
- ########## agp ###########
- else
- LASTSECTOR=$(sfdisk -uS -l $DISK 2>/dev/null | \
- awk -v P="$PART" '{if ($1==P) {if ($2=="*") print $4; else print $3} }')
- fi
- ;;
-esac
+if [ $# == 1 ]; then
+ LASTSECTOR=$(LANG=C sgdisk -p $DISK | awk '/last usable sector/ {print($(NF))}')
+else
+ LASTSECTOR=$(LANG=C sgdisk -p $DISK | awk -v P="$2" '{if ($1==P) print $3}')
+fi
+
echo $LASTSECTOR
}
@@ -728,7 +710,7 @@ DISK=$(ogDiskToDev $1) || return $?
PART=$(ogDiskToDev $1 $2) || return $?
case "$(ogGetPartitionTableType $1)" in
GPT) ID=$(sgdisk -p $DISK 2>/dev/null | awk -v p="$2" '{if ($1==p) print $6;}') || ogRaiseError $OG_ERR_NOTFOUND "$1,$2" || return $?
- [ "$ID" == "8301" -a "$1 $2" == "$(ogFindCache)" ] && ID=CA00
+ [ "$ID" == "8300" -a "$1 $2" == "$(ogFindCache)" ] && ID=CA00
;;
MSDOS) ID=$(sfdisk --id $DISK $2 2>/dev/null) || ogRaiseError $OG_ERR_NOTFOUND "$1,$2" || return $? ;;
esac
@@ -755,7 +737,7 @@ echo $ID
function ogGetPartitionSize ()
{
# Variables locales.
-local DISK PART
+local PART
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -767,16 +749,10 @@ fi
[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Obtener el tamaño de la partición.
-DISK="$(ogDiskToDev $1)" || return $?
PART="$(ogDiskToDev $1 $2)" || return $?
-case "$(ogGetPartitionId $1 $2)" in
- 5|f) # Procesar detección de tamaño de partición Extendida.
- sfdisk -l $DISK 2>/dev/null | \
- awk -v p=$PART '{if ($1==p) {sub (/[^0-9]+/,"",$5); print $5} }'
- ;;
- *) sfdisk -s $PART
- ;;
-esac
+partx -gbo SIZE $PART 2>/dev/null | awk '{print int($1/1024)}'
+[ ${PIPESTATUS[0]} -ne 0 ] && echo "0"
+return 0
}
@@ -817,8 +793,8 @@ fi
# Contar el nº de veces que aparece el disco en su lista de particiones.
DISK=$(ogDiskToDev $1) 2>/dev/null
case "$(ogGetPartitionTableType $1)" in
- GPT) grep -c "${DISK#/dev/}." /proc/partitions ;;
- MSDOS) sfdisk -l $DISK 2>/dev/null | grep -c "^$DISK" ;;
+ GPT|MSDOS)
+ partx -gso NR $DISK 2>/dev/null | awk -v p=0 '{p=$1} END {print p}' ;;
LVM) lvs --noheadings $DISK 2>/dev/null | wc -l ;;
esac
}
@@ -1057,13 +1033,9 @@ fi
DISK="$(ogDiskToDev $1)" || return $?
NPARTS=$(ogGetPartitionsNumber $1)
for (( PART = 1; PART <= NPARTS; PART++ )); do
- TYPE=$(ogGetPartitionType $1 $PART 2>/dev/null)
- if [ $? -eq 0 ]; then
- SIZE=$(ogGetPartitionSize $1 $PART 2>/dev/null)
- echo -n "$TYPE:$SIZE "
- else
- echo -n "EMPTY:0 "
- fi
+ TYPE=$(ogGetPartitionType $1 $PART 2>/dev/null); TYPE=${TYPE:-EMPTY}
+ SIZE=$(ogGetPartitionSize $1 $PART 2>/dev/null); SIZE=${SIZE:-0}
+ echo -n "$TYPE:$SIZE "
done
echo
}
diff --git a/client/engine/FileSystem.lib b/client/engine/FileSystem.lib
index 73fd44bc..e27d21cd 100755
--- a/client/engine/FileSystem.lib
+++ b/client/engine/FileSystem.lib
@@ -968,6 +968,39 @@ for ((PART=1; PART<=$(ogGetPartitionsNumber $1); PART++)); do
done
}
+#/**
+# ogUnsetDirtyBit int_ndisk int_npart
+#@brief Inhabilita el Dirty Bit del sistema de ficheros NTFS para evitar un CHKDSK en el primer arranque
+#@param int_ndisk nº de orden del disco
+#@param int_npart nº de orden de partición
+#@return Nada
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@version 0.1 - Versión para OpenGnSys.
+#@author Carmelo Cabezuelo, ASIC Universidad Politécnica de Valencia
+#@date 2016/04/20
+#*/ ##
+function ogUnsetDirtyBit ()
+{
+# Variables locales
+local PART
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk" "FUNCNAME 1"
+ return
+fi
+# Error si no se reciben 2 parámetros.
+[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+
+# Obtener partición y punto de montaje.
+case "$(ogGetFsType $1 $2)" in
+ NTFS)
+ ogUnmount $1 $2 2>/dev/null
+ PART="$(ogDiskToDev $1 $2)" || return $?
+ ntfsfix -d $PART ;;
+ *) ;;
+esac
+}
+
# AVISO: Componer corretcamente esta función.
function ogGetFreeSize () {
diff --git a/client/shared/bin/poweroffconf b/client/shared/bin/poweroffconf
index f8c3a5d8..188f4409 100755
--- a/client/shared/bin/poweroffconf
+++ b/client/shared/bin/poweroffconf
@@ -56,8 +56,9 @@ case $# in
ogRaiseError $OG_ERR_FORMAT "Formato: $0 [int_minutos | no]"
exit $? ;;
esac
-# Comprobar si hay algún script en ejecución.
-if [ -n "$(pgrep -fl $OPENGNSYS | egrep -v "$OGETC|$0")" ]; then
+# Comprobar si hay algún script en ejecución (verificando compatibilidad de "pgrep").
+[ -n "$(pgrep -fa 2>&1 | grep "invalid")" ] && PGREP="pgrep -fl" || PGREP="pgrep -fa"
+if [ -n "$($PGREP $OPENGNSYS | egrep -v "$OGETC|$0")" ]; then
# Eliminar tiempo de inicio de espera, si se está ejecutando operación.
perl -pi -e 's/POWEROFFTIME=.*$/POWEROFFTIME=/' $POWEROFFCONF
else
diff --git a/client/shared/bin/rsync-3.1.0 b/client/shared/bin/rsync-31
index 366204f0..366204f0 100755
--- a/client/shared/bin/rsync-3.1.0
+++ b/client/shared/bin/rsync-31
Binary files differ
diff --git a/client/shared/etc/preinit/otherservices.sh b/client/shared/etc/preinit/otherservices.sh
index 70210178..c9086ad4 100755
--- a/client/shared/etc/preinit/otherservices.sh
+++ b/client/shared/etc/preinit/otherservices.sh
@@ -11,6 +11,9 @@
# Lanzar servicios complementarios del cliente.
echo "${MSG_OTHERSERVICES:-.}"
+# Iniciar rsyslog, si es necesario.
+[ -S /dev/log ] || service rsyslog start
+
# Adpatar la clave de "root" para acceso SSH.
PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \
sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/')
diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs
index 2aa5288d..6eaab870 100755
--- a/client/shared/scripts/configureOs
+++ b/client/shared/scripts/configureOs
@@ -2,7 +2,7 @@
#/**
# configureOs
-#@brief Scirpt para realizar la configuracion del sistema operativo restaurado.
+#@brief Script para realizar la configuracion del sistema operativo restaurado.
#@param 1 disco
#@param 2 particion
#@return
@@ -26,6 +26,9 @@
#@version 1.0.5 - Postconfiguración para Mac OS X.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2013-10-11
+#@version 1.0.6b - Pasar las opciones no usadas al configureOsCustom.templates
+#@author
+#@date 2016-11-03
# Carga el configurador del engine y los parámetros de red.
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
@@ -60,15 +63,12 @@ case "$OSTYPE" in
# Cambiar nombre en sistemas Windows.
HOST=${HOST:-"pc"}
ogSetWindowsName $1 $2 "$HOST"
- # Descomentar la siguiente línea para cambiar usuario de inicio.
- #ogSetWinlogonUser $1 $2 " "
# Configurar el boot sector de la partición Windows.
ogFixBootSector $1 $2
# Configurar el gestor de arranque de Windows XP/Vista/7.
- ogWindowsBootParameters $1 $2
+ ogWindowsBootParameters $1 $2
# 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 si se indica en la variable INSTALLOSCLIENT.
if [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
ogInstallMiniSetup $1 $2 postconf.cmd
@@ -76,9 +76,8 @@ case "$OSTYPE" in
fi
;;
Linux) # Postconfiguración de GNU/Linux.
- ## Install and Configure Grub based on OS installed and Grub 1st stage location.
+ ## Instala (no configura) el codigo de arranque del Grub en la partición (no lo configura, se mantiene el original de la imagen)
ogGrubInstallPartition $1 $2
- # Instalar cliente para GNU/Linux si se indica en la variable INSTALLOSCLIENT.
if [ "${INSTALLOSCLIENT^^}" == "TRUE" ]; then
ogInstallLinuxClient $1 $2
fi
@@ -117,22 +116,6 @@ EOT
# Ejecutar postconfiguración si existe el fichero indicador.
if [ -e /osxpostconf ]; then
- ### NOTA: descomentar las opciones deseadas.
- # Activar Journaling en HFS+ (no usar si el cliente continua en OpenGnsys).
- #diskutil enableJournal disk$[$1-1]s$2
- # Pedir usuario y clave en pantalla de conexión.
- #defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool yes
- # No mostrar botón de cambio rápido de usuario.
- #defaults write /Library/Preferences/.GlobalPreferences MultipleSessionEnabled -bool NO
- # Bloquear escritorio, fondo, dock, etc del usuario "usuario".
- #chflags uchange /Users/usuario/Library/Preferences/com.apple.desktop.plist
- #chflags uchange /Users/usuario/Library/Preferences/com.apple.dock.plist
- #chflags uchange /Users/usuario/Desktop
- # Añadir usuario "usuario" a la lista de desarrolladores de Xcode.
- #DevToolsSecurity --enable
- #dscl . -append /Groups/_developer GroupMembership usuario
- # Bajar volumen (valor entre 0 y 7).
- #osascript -e 'set volume 1'
# Tomar nombre del equipo.
HOST="$HOST"
if [ -z "\$HOST" ]; then
@@ -156,8 +139,7 @@ if [ -e /osxpostconf ]; then
# Descromprimir ficheros de versión para obtener inventario de aplicaciones.
find /Applications -type d -name "*.app" -prune -exec \
ditto --nopreserveHFSCompression "{}/Contents/version.plist" "{}/Contents/version.plist.uncompress"
- # Borrar fichero indicador de psotconfiguración
- rm -f /osxpostconf
+ rm -f /osxpostconf # Borrar fichero indicador de psotconfiguración
fi
EOT
# Dar permiso de ejecución.
diff --git a/client/shared/scripts/configureOsCustom.template b/client/shared/scripts/configureOsCustom.template
index 691b95b9..66be3c63 100644
--- a/client/shared/scripts/configureOsCustom.template
+++ b/client/shared/scripts/configureOsCustom.template
@@ -24,7 +24,58 @@ IMGNAME="$4" # Nombre canónico de imagen (sin extensión).
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
-# Paso 1: Añadir aquí el código personalizado de postconfiguración.
-# Nota: puede llamarse al script estandar "configureOs", pero el orden de aplicación de los comandos puede ser importante.
+# Paso 1: Adaptar el código de ejemplo para postconfiguración personalizada.
+# Nota: incluye llamada al script "configureOs" para realizar previamente una configuración estándar.
+# Configurarción típica.
+configureOs "$1" "$2"
+# Postconfiguración personalizada para cada tipo de sistema operativo.
+OSTYPE="$(ogGetOsType $1 $2)"
+case "$OSTYPE" in
+ Windows) # Postconfiguración de Windows.
+ # Descomentar la siguiente línea para cambiar usuario de inicio.
+ #ogSetWinlogonUser $1 $2 " "
+ # OPCIONAL: desactivar el chkdisk de windows tras la restauracion. Requiere configuracion previa en el engine.cfg
+ #ogLoadHiveWindows $1 $2; ogSetWindowsChkdisk $OGWINCHKDISK; ogUpdateHiveWindows
+ ;;
+ Linux) # Postconfiguración de GNU/Linux.
+ ##OPCIONAL: Configurar el FSTAB. En esta versión solo autoconfigura la partición SWAP
+ #ogConfigureFstab $1 $2
+ ##OPCIONAL Limpiar dispositivos reconocidos previamente
+ #ogCleanLinuxDevices $1 $2
+ ## Instala (no configura) el codigo de arranque del Grub en la partición (no lo configura, se mantiene el original de la imagen)
+ #ogGrubInstallPartition $1 $2
+ ## OPCIONAL: instala y configura el codigo de arranque del Grub en el MBR (no lo configura, se mantiene el original de la imagen)
+ #ogGrubInstallMbr $1 $2
+ ## OPCIONAL: Instala y configura el Grub en el MBR y lo autoconfigura, entradas para los sitemas operativos, ademas al linux restaurado le añade los parmetros indicados.
+ #ogGrubInstallMbr $1 $2 TRUE "irqpoll pci=noacpi noresume quiet splash"
+ ;;
+ MacOS) # Postconfiguración de Mac OS X.
+ # Programa de inicio que será ejecutado en el arranque de Mac OS X.
+ # NOTA: no modificar la línea siguiente.
+ cat << EOT | sed -n -e '/rm -f /r /dev/stdin' -e 1x -e '2,${x;p}' -e '${x;p}' $MNTDIR/var/root/postconfd.sh
+
+ ### NOTA: descomentar las opciones deseadas.
+ # Activar Journaling en HFS+ (no usar si el cliente continua en OpenGnsys).
+ #diskutil enableJournal disk$[$1-1]s$2
+ # Pedir usuario y clave en pantalla de conexión.
+ #defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool yes
+ # No mostrar botón de cambio rápido de usuario.
+ #defaults write /Library/Preferences/.GlobalPreferences MultipleSessionEnabled -bool NO
+ # Bloquear escritorio, fondo, dock, etc del usuario "usuario".
+ #chflags uchange /Users/usuario/Library/Preferences/com.apple.desktop.plist
+ #chflags uchange /Users/usuario/Library/Preferences/com.apple.dock.plist
+ #chflags uchange /Users/usuario/Desktop
+ # Añadir usuario "usuario" a la lista de desarrolladores de Xcode.
+ #DevToolsSecurity --enable
+ #dscl . -append /Groups/_developer GroupMembership usuario
+ # Bajar volumen (valor entre 0 y 7).
+ #osascript -e 'set volume 1'
+
+EOT
+ # NOTA: no modificar la línea anterior.
+ ;;
+esac
+
+# Paso 2: Incluir código genérico de postconfiguración.
diff --git a/client/shared/scripts/createImage b/client/shared/scripts/createImage
index 7c6ed5bb..27a8abea 100755
--- a/client/shared/scripts/createImage
+++ b/client/shared/scripts/createImage
@@ -29,6 +29,9 @@
#@version 1.0.2 - Separacion de log
#@author Antonio J.Doblas Viso
#@date 2011-08-4
+#@version 1.0.6b - La copia de seguridad de la imagen antigua se hace después de las comprobaciones.
+#@author Irina Gomez - ETSII Universidad de Sevilla
+#@date 2016-10-14
#*/ ##
# Test 1. crear una imagen en un REPO sin espacio libre.
@@ -83,15 +86,6 @@ if [ $? != 0 ]; then
fi
IMGFILE=$IMGDIR/$(basename "/$4").$IMGEXT
-# Renombrar el fichero de imagen si ya existe.
-if [ -f "$IMGFILE" ]; then
- ogEcho log session "[10] $MSG_SCRIPTS_FILE_RENAME \"$IMGFILE\" -> \"$IMGFILE.ant\"."
- mv "$IMGFILE" "$IMGFILE.ant"
- mv "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null
- mv "$IMGFILE.sum" "$IMGFILE.sum.ant" 2>/dev/null
- mv "$IMGFILE.full.sum" "$IMGFILE.full.sum.ant" 2>/dev/null
-fi
-
echo " " > $OGLOGCOMMAND
# Borramos ficheros de paginacion y configuracion
ogCleanOs $1 $2
@@ -119,6 +113,15 @@ then
ogEcho log session " $MSG_SCRIPTS_TIME_PARTIAL ( $NEWSIZEFS KB ) : $[TIMEAUX/60]m $[TIMEAUX%60]s"
fi
+# Renombrar el fichero de imagen si ya existe.
+if [ -f "$IMGFILE" ]; then
+ ogEcho log session "[10] $MSG_SCRIPTS_FILE_RENAME \"$IMGFILE\" -> \"$IMGFILE.ant\"."
+ mv "$IMGFILE" "$IMGFILE.ant"
+ mv "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null
+ mv "$IMGFILE.sum" "$IMGFILE.sum.ant" 2>/dev/null
+ mv "$IMGFILE.full.sum" "$IMGFILE.full.sum.ant" 2>/dev/null
+fi
+
# Crear la imagen.
echo " " > $OGLOGCOMMAND
TIME2=$SECONDS
diff --git a/doc/CHANGELOG.es.txt b/doc/CHANGELOG.es.txt
index 5546c0d7..82fcc497 100644
--- a/doc/CHANGELOG.es.txt
+++ b/doc/CHANGELOG.es.txt
@@ -2,6 +2,35 @@ LISTA DE CAMBIOS CHANGELOG.es.txt
========================================
+Lista de cambios incluidos en OpenGnSys 1.0.6b (versión de mantenimiento)
+----------------------------------------------
+
+Tickets resueltos en módulo OpenGnSys Cloning Engine:
+#715 Revisión ogConfigureFstab
+#724 Compatible con ogLive basado en Ubuntu 15.10 y Ubuntu 16.04 LTS (parcial)
+#756 Comprobar cambios funciones en Disk.lib en el ogLive con kernel 3.2
+#760 Eliminar CHKDSK en el primer arranque de un Windows restaurado
+#762 ogGetLastSector error en modelo HP 6300 con disco duro de 1 TB
+#764 Error aleatorio al formatear la partición caché en el proceso de crearla
+
+Tickets resueltos en módulo OpenGnSys Client:
+#759 Añadir llamadas de ejemplos del configureOs al configureOsCustom.template
+
+Tickets resueltos en módulo OpenGnSys Server
+#729 Instalar en cliente la misma versión de Rsync que la del servidor
+#752 Script setserveraddr parchea parámetro de configuración UrlMenu
+
+Tickets resueltos en módulo OpenGnSys Web Admin Console:
+#753 Asistente de particionado no crea correctamente la caché
+#757 Asistente DeployImagen: no guarda información de la imagen restaurada
+#758 Comando Formatear y Particionar no formatea la swap
+#766 Incluir cambios y manual
+
+Tickets genéricos resueltos:
+#139 Documentación y manuales OpenGnSys 1.0
+#754 Liberar versión de mantenimiento OpenGnSys 1.0.6b en rama principal
+
+
Lista de cambios incluidos en OpenGnSys 1.0.6a (versión de mantenimiento)
----------------------------------------------
@@ -177,10 +206,8 @@ Tickets resueltos en módulo OpenGnSys Repository Server:
Tickets resueltos en módulo OpenGnSys Web Admin Console:
#149 Controlar tamaño de caché en la consola
#265 Consola Web: Actualización información al terminar los comandos (duplicado de #577)
-#416 Clonar partición sólo datos
#524 Eliminar imagen en caché del cliente
#533 Scritps de interfaceAdm no deben incluir lógica de proceso
-#551 Consola web compatible con PHP 5.4 (tarea)
#552 Permitir crear caché en cualquier disco
#566 Asistente de gestión Master muestra todas las imágenes de su caché para enviarlas
#585 Incluir en la administración web las opciones DNS y proxy para el ogLive
@@ -269,7 +296,6 @@ Tickets resueltos en módulo OpenGnSys Client:
#525 Seleccionar el tipo de arranque de sistemas Windows (reinicio o en caliente)
#529 Cliente ogLive basado en Ubuntu 12.04
#546 ogLive en modo PXE durante el proceso de arranque no continuará hasta que la interfaz de red esté correctamente configurada
-#547 oglive basado en Ubuntu 12.04 no detecta ficheros de configuración de DNS
Tickets resueltos en módulo OpenGnSys Server:
#426 isAlive: control de los servicios OpenGnSys
@@ -696,95 +722,95 @@ Lista de cambios incluidos hasta OpenGnSys 0.9
Tickets resueltos en módulo OpenGnSys Cloning Engine:
#9 No lista bien particiones lógicas
#12 Bloquear partición para operación de uso exclusivo
-#13 Automatizar tamaños de partición al generar una imagen
+#13 Automatizar tamaños de partición al generar una imagen
#15 Desmontar los sistemas de archivos de un disco antes de cambiar su tabla de particiones
#17 Arrancar Windows Vista
#38 Documentar codigo shell scripts linux con doxygen
-#50 Ayuda en las funciones
-#52 Función generación documentación Doxygen para BASH
-#58 Utilizar formato de ayuda y función ogHelp
-#61 ogListPartitions muestra el tipo de sistemas de archivos de la particion y no el tipo de partición en cuestión
-#71 ogListPartitions falla con partición extendida
-#73 Mensajes de error en particiones vacías
-#75 Arrancar sistemas Linux en partición distinta a la original
+#50 Ayuda en las funciones
+#52 Función generación documentación Doxygen para BASH
+#58 Utilizar formato de ayuda y función ogHelp
+#61 ogListPartitions muestra el tipo de sistemas de archivos de la particion y no el tipo de partición en cuestión
+#71 ogListPartitions falla con partición extendida
+#73 Mensajes de error en particiones vacías
+#75 Arrancar sistemas Linux en partición distinta a la original
#85 ogCreateImage no crea los subdirectorios del path indicado
#86 ogRestoreImage siempre añade a la imagen pasada como parámetro la subcadena ".img"
#87 Engine no se adapta a la sintaxis Doxygen
-#98 ogGetParent no devuelve salida correcta para el argumento CACHE
-#99 ogGetIpAddress obtiene la ip a partir del leases obtenido del dhcp
+#98 ogGetParent no devuelve salida correcta para el argumento CACHE
+#99 ogGetIpAddress obtiene la ip a partir del leases obtenido del dhcp
#101 trunk Disk.lib error linea 445
#109 ogSetPartitionId no modifica bien el identificador de la partición
#110 ogCreatePartitions no llama a ogTypeToId
#111 ogFormatFS no reconoce el tipo de partitición CACHE
-#121 ogCreatePartitions revisión 813 (no se resolverá)
+#121 ogCreatePartitions revisión 813 (no se resolverá)
Tickets resueltos en módulo OpenGnSys Client:
-#11 Páginas de inicio estilo rembo
-#18 Adaptar logs a standard syslog
-#40 Incluir bash en el cliente initrd
-#41 Usar kernel 2.6.30 o superior en los clientes (mejora)
-#55 Incluir tune2fs y resize2fs en cliente Initrd
-#56 Montar particiones ReiserFS en cliente Initrd
-#59 Añadir mkfs para los sitemas Ext al cliente initrd
-#60 default de preinit no inicia el sistema
-#67 Cliente QT no importa NFS
-#68 Cliente no encuentra el subdirectorio de logs
-#72 Error en el browser al intentar cargar la libpng12.so.0
+#11 Páginas de inicio estilo rembo
+#18 Adaptar logs a standard syslog
+#40 Incluir bash en el cliente initrd
+#41 Usar kernel 2.6.30 o superior en los clientes (mejora)
+#55 Incluir tune2fs y resize2fs en cliente Initrd
+#56 Montar particiones ReiserFS en cliente Initrd
+#59 Añadir mkfs para los sitemas Ext al cliente initrd
+#60 default de preinit no inicia el sistema
+#67 Cliente QT no importa NFS
+#68 Cliente no encuentra el subdirectorio de logs
+#72 Error en el browser al intentar cargar la libpng12.so.0
#84 oginit considera siempre al servidor DHCP como si fuese el servidor OpenGnSys
-#105 El browser del cliente no detecta algunos ratones
-#106 Añadir al busybox del initrd soporte de configuración de red (no se resolverá)
-#118 Función ogGetIpAddress no obtiene la ip adecuadamente
+#105 El browser del cliente no detecta algunos ratones
+#106 Añadir al busybox del initrd soporte de configuración de red (no se resolverá)
+#118 Función ogGetIpAddress no obtiene la ip adecuadamente
Tickets resueltos en módulo OpenGnSys Web Admin Console:
-#10 Consola no detecta bien el inventario de hardware
+#10 Consola no detecta bien el inventario de hardware
#19 Integrar las bases de datos (tarea)
#20 Creación de scripts de instalación (no se ressolverá)
-#25 Interfaz web: Problemas con la creación de entidades
-#34 Unificar codificación de caracteres en interfaz web
-#42 Error en menú opciones ordenador (tarea)
-#54 Gestión de usuarios
-#66 Configuración consola web
+#25 Interfaz web: Problemas con la creación de entidades
+#34 Unificar codificación de caracteres en interfaz web
+#42 Error en menú opciones ordenador (tarea)
+#54 Gestión de usuarios
+#66 Configuración consola web
#76 Problemas al crear tareas y trabajos nuevos (tarea)
-#77 No se pueden añadir comandos a tareas, trabajos, etc. (tarea)
+#77 No se pueden añadir comandos a tareas, trabajos, etc. (tarea)
#78 No funciona la consola web (tarea)
-#80 Puerto por defecto del servidor opengnsys en el web admin
+#80 Puerto por defecto del servidor opengnsys en el web admin
#97 Instalador no deja bien configurado controlacceso.php
-#113 Incluir ayuda Doxygen en la consola web
-#119 Mensaje de aviso en el browser al elegir opción de menú
-#120 Inventario Hardware: Error tipo de hardware no registrado
-#124 Error al crear usuarios
+#113 Incluir ayuda Doxygen en la consola web
+#119 Mensaje de aviso en el browser al elegir opción de menú
+#120 Inventario Hardware: Error tipo de hardware no registrado
+#124 Error al crear usuarios
Tickets resueltos en módulo OpenGnSys Repository Server:
-#74 Fallo al ejecutar ogAdmServer
-#69 Error al compilar el servidor de repositorio ogAdmRepo (tarea)
-#114 Hora incorrecta en logs de ogAdmServer y ogAdmRepo
+#74 Fallo al ejecutar ogAdmServer
+#69 Error al compilar el servidor de repositorio ogAdmRepo (tarea)
+#114 Hora incorrecta en logs de ogAdmServer y ogAdmRepo
Tickets resueltos en módulo OpenGnSys Installer:
#53 revertir el opengnsys_instaler.sh a la versión de Luis (181)
-#62 Unificar los instaladores
-#79 Especificaciones para incluir en el script de instalación la parte relativa al sistema de Administración
+#62 Unificar los instaladores
+#79 Especificaciones para incluir en el script de instalación la parte relativa al sistema de Administración
#81 ogClient no se inicia
-#82 Instalador no arranca ogAdmRepo
-#83 Contraseña por defecto al instalar
-#94 Problema proceso instalación en tar.gz (descarga svn)
-#95 Petición de clave rootMySQL en reintento de instalación tar.gz
+#82 Instalador no arranca ogAdmRepo
+#83 Contraseña por defecto al instalar
+#94 Problema proceso instalación en tar.gz (descarga svn)
+#95 Petición de clave rootMySQL en reintento de instalación tar.gz
#102 Fallo en el instalador
#103 ogAdmClient.cfg no compatible con el instalacion (lineas en blanco al final)
#104 El instalador no configura bien el dhcp, nfs-export
-#107 Actualizador da error si no se ha eliminado el directorio de /tmp
-#123 Creación de usuarios por defecto en el instalador
+#107 Actualizador da error si no se ha eliminado el directorio de /tmp
+#123 Creación de usuarios por defecto en el instalador
Tickets genéricos resueltos:
#21 Elección de nombre para el proyecto
#22 Documentar Subversion en Eclipse
-#23 Generar la iso de instalación sobre ubunto server 9.04
+#23 Generar la iso de instalación sobre ubunto server 9.04
#28 instalar la macro include
-#35 Subversion: configuración saltos de línea
-#44 Definición del proyecto OpenGnSys
+#35 Subversion: configuración saltos de línea
+#44 Definición del proyecto OpenGnSys
#45 Propuesta Añadir un componente: Proyecto
-#47 Manual de instalación de OpenGnSys (tarea)
-#48 Añadir GPL v3 a cada módulo del OpenGnSys
-#49 Añadir Creative Commons al módulo de documentación del OpenGnSys
-#63 En la página principal sólo se puede acceder al Roadmap
-#88 Adaptar el sistema para entornos donde exista servicios dhcp independientes o se quiera distribuir contenedores images y librerias
+#47 Manual de instalación de OpenGnSys (tarea)
+#48 Añadir GPL v3 a cada módulo del OpenGnSys
+#49 Añadir Creative Commons al módulo de documentación del OpenGnSys
+#63 En la página principal sólo se puede acceder al Roadmap
+#88 Adaptar el sistema para entornos donde exista servicios dhcp independientes o se quiera distribuir contenedores images y librerias
diff --git a/doc/VERSION.txt b/doc/VERSION.txt
index 3d133c79..befd3191 100644
--- a/doc/VERSION.txt
+++ b/doc/VERSION.txt
@@ -1 +1 @@
-OpenGnSys 1.0.6a
+OpenGnSys 1.0.6b r5143
diff --git a/doc/opengnsys-logo.png b/doc/opengnsys-logo.png
index 76e80a64..c87ca25e 100644
--- a/doc/opengnsys-logo.png
+++ b/doc/opengnsys-logo.png
Binary files differ
diff --git a/doc/userManual/Tema1-Introduccion.pdf b/doc/userManual/Tema1-Introduccion.pdf
new file mode 100644
index 00000000..555c0b26
--- /dev/null
+++ b/doc/userManual/Tema1-Introduccion.pdf
Binary files differ
diff --git a/doc/userManual/Tema2-Instalacion.pdf b/doc/userManual/Tema2-Instalacion.pdf
new file mode 100644
index 00000000..ae0d1b2e
--- /dev/null
+++ b/doc/userManual/Tema2-Instalacion.pdf
Binary files differ
diff --git a/doc/userManual/Tema3.1-Administracion_componentes.pdf b/doc/userManual/Tema3.1-Administracion_componentes.pdf
new file mode 100644
index 00000000..0de21554
--- /dev/null
+++ b/doc/userManual/Tema3.1-Administracion_componentes.pdf
Binary files differ
diff --git a/doc/userManual/Tema3.2-Administracion_consola_web.pdf b/doc/userManual/Tema3.2-Administracion_consola_web.pdf
new file mode 100644
index 00000000..0d06eb62
--- /dev/null
+++ b/doc/userManual/Tema3.2-Administracion_consola_web.pdf
Binary files differ
diff --git a/doc/userManual/Tema3.3-Administracion_unidad_organizativa.pdf b/doc/userManual/Tema3.3-Administracion_unidad_organizativa.pdf
new file mode 100644
index 00000000..26f5ea95
--- /dev/null
+++ b/doc/userManual/Tema3.3-Administracion_unidad_organizativa.pdf
Binary files differ
diff --git a/doc/userManual/Tema4-Ambito_aplicacion.pdf b/doc/userManual/Tema4-Ambito_aplicacion.pdf
new file mode 100644
index 00000000..9a315c94
--- /dev/null
+++ b/doc/userManual/Tema4-Ambito_aplicacion.pdf
Binary files differ
diff --git a/doc/userManual/Tema5-Particionado_discos.pdf b/doc/userManual/Tema5-Particionado_discos.pdf
new file mode 100644
index 00000000..971add05
--- /dev/null
+++ b/doc/userManual/Tema5-Particionado_discos.pdf
Binary files differ
diff --git a/doc/userManual/Tema6.1-Creacion_imagenes.pdf b/doc/userManual/Tema6.1-Creacion_imagenes.pdf
new file mode 100644
index 00000000..899242e3
--- /dev/null
+++ b/doc/userManual/Tema6.1-Creacion_imagenes.pdf
Binary files differ
diff --git a/doc/userManual/Tema6.2-Restauracion_y_despliegue_imagenes.pdf b/doc/userManual/Tema6.2-Restauracion_y_despliegue_imagenes.pdf
new file mode 100644
index 00000000..a3b2649c
--- /dev/null
+++ b/doc/userManual/Tema6.2-Restauracion_y_despliegue_imagenes.pdf
Binary files differ
diff --git a/doc/userManual/Tema6.3-Eliminacion_imagenes.pdf b/doc/userManual/Tema6.3-Eliminacion_imagenes.pdf
new file mode 100644
index 00000000..acd0686f
--- /dev/null
+++ b/doc/userManual/Tema6.3-Eliminacion_imagenes.pdf
Binary files differ
diff --git a/doc/userManual/Tema7-Acciones_y_menus_usuario.pdf b/doc/userManual/Tema7-Acciones_y_menus_usuario.pdf
new file mode 100644
index 00000000..f7e0013a
--- /dev/null
+++ b/doc/userManual/Tema7-Acciones_y_menus_usuario.pdf
Binary files differ
diff --git a/installer/ogGenerateDoc.sh b/installer/ogGenerateDoc.sh
index d8567d50..9c8cbc44 100755
--- a/installer/ogGenerateDoc.sh
+++ b/installer/ogGenerateDoc.sh
@@ -21,7 +21,7 @@ if [ $# = 2 ]
then
mkdir -p "$2"
VERSION=$(cat $(dirname "$0")/../doc/VERSION.txt) 2>/dev/null
-VERSION=${VERSION:-"1.0 beta"}
+VERSION=${VERSION:-"1.0"}
cat > /tmp/doxyfile << EOF
# Doxyfile 1.5.6
# Fichero para documentar codigo shellscripts linux.
@@ -32,6 +32,7 @@ cat > /tmp/doxyfile << EOF
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "Proyecto OpenGnSys"
PROJECT_NUMBER = $VERSION
+PROJECT_LOGO = $(dirname "$0")/../doc/opengnsys-logo.png)
OUTPUT_DIRECTORY = $2
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = Spanish
@@ -245,7 +246,7 @@ LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
-GENERATE_RTF = YES
+GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = YES
RTF_HYPERLINKS = YES
@@ -254,7 +255,7 @@ RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
-GENERATE_MAN = YES
+GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = YES
@@ -273,7 +274,7 @@ GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
-GENERATE_PERLMOD = YES
+GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh
index 601c1f25..26e22f21 100755
--- a/installer/opengnsys_installer.sh
+++ b/installer/opengnsys_installer.sh
@@ -1320,12 +1320,6 @@ 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
@@ -1344,6 +1338,7 @@ function clientCreate()
#local FILENAME=ogLive-precise-3.11.0-26-generic-r4413.iso # 1.0.6-kernel3.11
local TARGETFILE=$INSTALL_TARGET/lib/$FILENAME
local TMPDIR=/tmp/${FILENAME%.iso}
+ local RSYNCSERV RSYNCCLNT
# Descargar cliente, si es necesario.
if [ -s $PROGRAMDIR/$FILENAME ]; then
@@ -1379,6 +1374,24 @@ function clientCreate()
cp -av $INSTALL_TARGET/tftpboot/ogclient/ogvmlinuz* $INSTALL_TARGET/tftpboot
cp -av $INSTALL_TARGET/tftpboot/ogclient/oginitrd.img* $INSTALL_TARGET/tftpboot
+ # Montar SquashFS para comprobar versión de Rsync.
+ mkdir -p $TMPDIR
+ mount -o loop,ro $INSTALL_TARGET/tftpboot/ogclient/ogclient.sqfs $TMPDIR
+ # Si versión Rsync de servidor > cliente, enlazar a fichero compilado.
+ RSYNCSERV=$(rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+ RSYNCCLNT=$(chroot $TMPDIR /usr/bin/rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+ if [ -z "$RSYNCSERV" -o ${RSYNCSERV:-0} -gt ${RSYNCCLNT:-1} ]; then
+ [ -e $INSTALL_TARGET/client/bin/rsync-$RSYNCSERV ] && mv -f $INSTALL_TARGET/client/bin/rsync-$RSYNCSERV $INSTALL_TARGET/client/bin/rsync
+ else
+ # Si no, renombrar fichero compilado con nº de protocolo.
+ [ -e $INSTALL_TARGET/client/bin/rsync ] && mv -f $INSTALL_TARGET/client/bin/rsync $INSTALL_TARGET/client/bin/rsync-$($INSTALL_TARGET/client/bin/rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+ fi
+ # Desmontar SquashFS.
+ umount $TMPDIR
+ rmdir $TMPDIR
+ # Versión del ogLive instalado
+ echo "${FILENAME%.*}" > $INSTALL_TARGET/doc/veroglive.txt
+
echoAndLog "${FUNCNAME}(): Client generation success"
}
@@ -1511,6 +1524,8 @@ function installationSummary()
echoAndLog " - Review default Organization data and assign access to users."
echoAndLog "Log-in as Web Console organization user."
echoAndLog " - Insert OpenGnSys data (labs, computers, menus, etc)."
+ echoAndLog "Launch $INSTALL_TARGET/bin/installoglive script and select new ogLive"
+ echoAndLog " for clients' hardware compatibilty."
echo
}
diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh
index a7c6843b..dba1150a 100755
--- a/installer/opengnsys_update.sh
+++ b/installer/opengnsys_update.sh
@@ -400,7 +400,10 @@ function getNetworkSettings()
# Actualizar cliente OpenGnSys.
function updateClientFiles()
{
+ local ENGINECFG=$INSTALL_TARGET/client/etc/engine.cfg
+
# Actualizar ficheros del cliente.
+ backupFile $ENGINECFG
echoAndLog "${FUNCNAME}(): Updating OpenGnSys Client files."
rsync --exclude .svn -irplt $WORKDIR/opengnsys/client/shared/* $INSTALL_TARGET/client
if [ $? -ne 0 ]; then
@@ -408,12 +411,6 @@ function updateClientFiles()
exit 1
fi
find $INSTALL_TARGET/client -name .svn -type d -exec rm -fr {} \; 2>/dev/null
- # Hacer coincidir las versiones de Rsync entre servidor y cliente.
- if [ -n "$(rsync --version | awk '/version/ {if ($3>="3.1.0") print $3}')" ]; then
- [ -e $WORKDIR/opengnsys/client/bin/rsync-3.1.0 ] && mv -f $WORKDIR/opengnsys/client/bin/rsync-3.1.0 $WORKDIR/opengnsys/client/bin/rsync
- else
- [ -e $WORKDIR/opengnsys/client/bin/rsync ] && mv -f $WORKDIR/opengnsys/client/bin/rsync $WORKDIR/opengnsys/client/bin/rsync-3.1.0
- fi
# Actualizar librerías del motor de clonación.
echoAndLog "${FUNCNAME}(): Updating OpenGnSys Cloning Engine files."
@@ -422,7 +419,12 @@ function updateClientFiles()
errorAndLog "${FUNCNAME}(): error while updating engine files"
exit 1
fi
-
+ if ! diff -q ${ENGINECFG}{,-LAST} &>/dev/null; then
+ NEWFILES="$NEWFILES $ENGINECFG"
+ else
+ rm -f ${ENGINECFG}-LAST
+ fi
+
echoAndLog "${FUNCNAME}(): client files update success."
}
@@ -766,17 +768,17 @@ function compileServices()
function updateClient()
{
local DOWNLOADURL="http://$OPENGNSYS_SERVER/downloads"
- local FILENAME=ogLive-precise-3.2.0-23-generic-r4311.iso # 1.0.6-kernel3.2
- #local FILENAME=ogLive-precise-3.11.0-26-generic-r4413.iso # 1.0.6-kernel3.11
+ 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
- local SOURCELENGTH
- local TARGETLENGTH
+ local SOURCELENGTH TARGETLENGTH
local TMPDIR=/tmp/${FILENAME%.iso}
local OGINITRD=$INSTALL_TARGET/tftpboot/ogclient/oginitrd.img
local OGVMLINUZ=$INSTALL_TARGET/tftpboot/ogclient/ogvmlinuz
local SAMBAPASS
local KERNELVERSION
+ local RSYNCSERV RSYNCCLNT
# Comprobar si debe actualizarse el cliente.
SOURCELENGTH=$(LANG=C wget --spider $SOURCEFILE 2>&1 | awk '/Length:/ {print $2}')
@@ -835,6 +837,23 @@ function updateClient()
importSqlFile $OPENGNSYS_DBUSER $OPENGNSYS_DBPASSWORD $OPENGNSYS_DATABASE $OPENGNSYS_DBUPDATEFILE
fi
+ # Montar SquashFS para comprobar versión de Rsync.
+ mkdir -p $TMPDIR
+ mount -o loop,ro $INSTALL_TARGET/tftpboot/ogclient/ogclient.sqfs $TMPDIR
+ # Si versión Rsync de servidor > cliente, enlazar a fichero compilado.
+ RSYNCSERV=$(rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+ RSYNCCLNT=$(chroot $TMPDIR /usr/bin/rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+ if [ -z "$RSYNCSERV" -o ${RSYNCSERV:-0} -gt ${RSYNCCLNT:-1} ]; then
+ [ -e $INSTALL_TARGET/client/bin/rsync-$RSYNCSERV ] && mv -f $INSTALL_TARGET/client/bin/rsync-$RSYNCSERV $INSTALL_TARGET/client/bin/rsync
+ else
+ # Si no, renombrar fichero compilado con nº de protocolo.
+ [ -e $INSTALL_TARGET/client/bin/rsync ] && mv -f $INSTALL_TARGET/client/bin/rsync $INSTALL_TARGET/client/bin/rsync-$($INSTALL_TARGET/client/bin/rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+ fi
+ # Desmontar SquashFS.
+ umount $TMPDIR
+ rmdir $TMPDIR
+ CLIENTUPDATED=${FILENAME%.*}
+
echoAndLog "${FUNCNAME}(): Client update successfully"
else
# Si no existe, crear el fichero de claves de Rsync.
@@ -850,6 +869,8 @@ function updateClient()
echoAndLog "${FUNCNAME}(): Client is already updated"
fi
fi
+ # Versión del ogLive instalado
+ echo "${FILENAME%.*}" > $INSTALL_TARGET/doc/veroglive.txt
}
# Comprobar permisos y ficheros.
@@ -896,7 +917,13 @@ function updateSummary()
echoAndLog " New OpenGnSys services will be restarted by the cronjob."
fi
fi
- echoAndLog "Warning: You must to clear web browser cache before loading OpenGnSys page."
+ echoAndLog "Warnings:"
+ echoAndLog " - You must to clear web browser cache before loading OpenGnSys page."
+ if [ -n "$CLIENTUPDATED" ]; then
+ echoAndLog " - ogLive Client is updated to: $CLIENTUPDATED"
+ fi
+ echoAndLog " - Launch $INSTALL_TARGET/bin/installoglive script and select new ogLive"
+ echoAndLog " for clients' hardware compatibilty."
echo
}
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage
index f208fb9b..7741177f 100755
--- a/repoman/bin/deleteimage
+++ b/repoman/bin/deleteimage
@@ -14,6 +14,10 @@
#@version 1.0.6 - Detección automática del tipo de imagen.
#@date 2014-10-29
#@author Ramón Gómez, ETSII Univ. Sevilla
+#@version 1.1.0 - Aunque no exista imagen permite recuperar la copia.
+#@date 2016-10-14
+#@author Irina Gómez, ETSII Univ. Sevilla
+#*/ ##
PROG=$(basename $0)
@@ -50,25 +54,19 @@ if [ $# != 1 -o -n "$ERR" ]; then
fi
# Eliminar ficheros de imagen monolítica o sincronizada básica.
-IMGPATH="$OGIMG/$1.$IMGEXT"
-if [ -f $IMGPATH ]; then
- echo "Borrando fichero $PATHDIR"
- 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,full.sum,torrent}
- else
- # Eliminar directorio de imagen sincronizada.
- IMGPATH="$OGIMG/$1"
- if [ -d $IMGPATH ]; then
- echo "Borrando directorio $PATHDIR"
- rm -fr $IMGPATH
- fi
+for IMG in "$OGIMG/$1.$IMGEXT" "$OGIMG/$1.$IMGEXT.$DIFFEXT" "$OGIMG/$1"; do
+ # Borro la imagen si existe
+ if [ -r $IMG ] ; then
+ IMGPATH=$IMG
+ echo "Borrando imagen $IMGPATH"
+ rm -f $IMGPATH{,.sum,.full.sum,.torrent}
+ break
fi
-fi
+ # Compruebo si existe copia de seguridad
+ [ -r $IMG.$BAKEXT ] && OLDPATH=$IMG
+done
+
+[ "_${IMGPATH}_" == "__" ] && IMGPATH=$OLDPATH
# Recuperar copia de seguridad de la imagen.
if [ -n "$RECOVERBACKUP" ]; then
diff --git a/server/bin/comparedhcpopengnsys b/server/bin/comparedhcpopengnsys
index 53a9684c..c303995a 100755
--- a/server/bin/comparedhcpopengnsys
+++ b/server/bin/comparedhcpopengnsys
@@ -40,7 +40,7 @@ EOT
trap "rm -f $TMP_DHCP $TMP_MYSQL $TMP_MYCNF" 1 2 3 9 15
# Creo fichero temporal del dhcp
grep -v "#" $DHCPFILE |egrep -e "host " -e "hardware ethernet" -e fixed-address | sed -e 's/.$//' \
- |sed -e s/"^.*host "//g -e s/\{/\;/g -e s/"^.*hardware ethernet "/=/g -e s/"^.*fixed-address "/=/g \
+ | sed -e s/"^.*host[[:space:]]*"//g -e s/\{/\;/g -e s/"^.*hardware ethernet[[:space:]]*"/=/g -e s/"^.*fixed-address[[:space:]]*"/=/g \
| sed -e :a -e '$!N;s/\n=/ \;/;ta' -e 'P;D'\
| sed -e s/\ //g -e s/://g -e s/\;$//g -e s/\;\;/\;/g |sort > $TMP_DHCP
diff --git a/server/bin/installoglive b/server/bin/installoglive
index 32d90f82..a5cbcc57 100755
--- a/server/bin/installoglive
+++ b/server/bin/installoglive
@@ -2,8 +2,11 @@
# installoglive - descarga e instala cliente ogLive.
# Nota: El usuario debe elegir el número del ogLive que desea instalar.
# Uso: installoglive
-# Autor: Ramón M. Gómez - ETSII Univ. Sevilla
-# Fecha: 2015-01-26
+# Autor: Ramón M. Gómez - ETSII Univ. Sevilla
+# Fecha: 2015-01-26
+# Versión: 1.0.6b - Adaptar la versión de Rsync de cliente y servidor.
+# Autor: Ramón M. Gómez - ETSII Univ. Sevilla
+# Fecha: 2015-12-16
# Control de acceso.
@@ -56,7 +59,6 @@ mkdir -p $TMPDIR
mount -o loop,ro $TARGETFILE $TMPDIR
cp -va $TMPDIR/ogclient $OPENGNSYS/tftpboot/ogclient
umount $TMPDIR
-rmdir $TMPDIR
# Recuperar la clave de acceso a Samba o solicitar una nueva clave.
if [ -n "$SAMBAPASS" ]; then
@@ -73,3 +75,20 @@ chown -R :opengnsys $OPENGNSYS/tftpboot/ogclient
# Ofrecer md5 del kernel y vmlinuz para ogupdateinitrd en cache
cp -av $OPENGNSYS/tftpboot/ogclient/{ogvmlinuz,oginitrd.img}* $OPENGNSYS/tftpboot
+# Montar SquashFS para comprobar versión de Rsync.
+mount -o loop,ro $OPENGNSYS/tftpboot/ogclient/ogclient.sqfs $TMPDIR
+# Si versión Rsync de servidor > cliente, enlazar a fichero compilado.
+RSYNCSERV=$(rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+RSYNCCLNT=$(chroot $TMPDIR /usr/bin/rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+if [ -z "$RSYNCSERV" -o ${RSYNCSERV:-0} -gt ${RSYNCCLNT:-1} ]; then
+ [ -e $OPENGNSYS/client/bin/rsync-$RSYNCSERV ] && mv -f $OPENGNSYS/client/bin/rsync-$RSYNCSERV $OPENGNSYS/client/bin/rsync
+else
+ # Si no, renombrar fichero compilado con nº de protocolo.
+ [ -e $OPENGNSYS/client/bin/rsync ] && mv -f $OPENGNSYS/client/bin/rsync $OPENGNSYS/client/bin/rsync-$($OPENGNSYS/client/bin/rsync --version 2>/dev/null | awk '/protocol/ {print $6}')
+fi
+# Desmontar SquashFS.
+umount $TMPDIR
+rmdir $TMPDIR
+# Versión del ogLive instalado
+echo "${OGLIVEFILE%.*}" > $OPENGNSYS/doc/veroglive.txt
+
diff --git a/server/bin/setclientmode b/server/bin/setclientmode
index 68729cc0..98db3630 100755
--- a/server/bin/setclientmode
+++ b/server/bin/setclientmode
@@ -66,8 +66,9 @@ NPC=0
for MAC in $ETHERNET; do
date +"%b %d %T $PROG: Detectada ethernet \"$MAC\" en \"$2\"" | tee -a $LOGFILE
# Si existe anteriormente el fichero PXE, lo borra
- PXEFILE=$PXEDIR/01-${MAC:0:2}-${MAC:2:2}-${MAC:4:2}-${MAC:6:2}-${MAC:8:2}-${MAC:10:2}
- [ -e $PXEFILE ] && rm $PXEFILE
+ MACFILE="${MAC^^}"
+ PXEFILE=$PXEDIR/01-${MACFILE:0:2}-${MACFILE:2:2}-${MACFILE:4:2}-${MACFILE:6:2}-${MACFILE:8:2}-${MACFILE:10:2}
+ rm -f $PXEFILE ${PXEFILE,,}
if [ "$1" != "default" ]; then
# Si no está definida la variable LANG, usar idioma inglés por defecto.
[ -z "$LANG" -o "$LANG" == "C" ] && LANG="en"
@@ -101,7 +102,7 @@ for MAC in $ETHERNET; do
DATOS=$(echo ${DATOS// /} | tr 'áéíóúñÁÉÍÓÚÑ' 'aeiounAEIOUN')
[[ "$DATOS" =~ (vga|video) ]] || DATOS="$DATOS vga=788"
# Crear fichero PXE a partir de la plantilla con los datos obtenidos en la BD.
- sed -e "s/vga=[0-9]*//g; s/INFOHOST/$DATOS/g" $TEMPLATE >$PXEFILE
+ sed -e "s,vga=[0-9]*,,g; s,INFOHOST,${DATOS//,/\\,},g" $TEMPLATE >$PXEFILE
# Ponemos como propietario al usuario y grupo de Apache para que se pueda cambiar desde la consola web.
PERMS=$(ps axho user,group,comm|awk '!/root/ && /httpd|apache/ {u=$1; g=$2} END {if (g) printf "%s:%s",u,g}')
[ -n "$PERMS" ] && chown $PERMS $PXEFILE
diff --git a/server/bin/setserveraddr b/server/bin/setserveraddr
index 4f1bc148..5ac10c06 100755
--- a/server/bin/setserveraddr
+++ b/server/bin/setserveraddr
@@ -89,6 +89,7 @@ if [ -n "$SERVERIP" ]; then
# - servidor o IP en URLs excepto si contienen "localhost".
sed -e "s,ServidorAdm=.*,ServidorAdm=$SERVERIP," \
-e "s,IPlocal=.*,IPlocal=$SERVERIP," \
+ -e "s,UrlMenu=https?://\([^/]*\)/\(.*\),UrlMenu=https://$SERVERIP/\2," \
-e '/localhost/!s,https\?://[^/]*/\(.*\),https://'$SERVERIP'/\1,' $f >$tmpfile
file="${f/./-$1.}"
# Si se usa otro interfaz o cambian los datos de red; ...