1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
### Procedimiento para actualización de la base de datos.
# OpenGnSys 1.0.5
#use ogAdmBD
# Eliminar procedimiento para evitar errores de ejecución.
DROP PROCEDURE IF EXISTS addcols;
# Procedimiento para actualización condicional de tablas.
delimiter '//'
CREATE PROCEDURE addcols() BEGIN
# Añadir validación del cliente.
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME='validacion' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE aulas
ADD validacion TINYINT(1) DEFAULT 0,
ADD paginalogin VARCHAR(100),
ADD paginavalidacion VARCHAR(100);
END IF;
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME='validacion' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE ordenadores
ADD validacion TINYINT(1) DEFAULT 0,
ADD paginalogin VARCHAR(100),
ADD paginavalidacion VARCHAR(100);
END IF;
# Submenú para comandos.
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME='submenu' AND TABLE_NAME='comandos' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE comandos
ADD submenu VARCHAR(50) NOT NULL DEFAULT '';
END IF;
# Añadir índice para mnemónicos de parámetros.
IF NOT EXISTS (SELECT * FROM information_schema.STATISTICS
WHERE COLUMN_NAME='nemonico' AND TABLE_NAME='parametros' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE parametros
ADD KEY (nemonico);
END IF;
# Añadir imágenes diferenciales.
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME='tipo' AND TABLE_NAME='imagenes' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE imagenes
ADD tipo TINYINT NOT NULL DEFAULT 1,
ADD imagenid INT NOT NULL DEFAULT 0,
ADD ruta VARCHAR(250) NULL;
UPDATE grupos SET tipo=70 WHERE tipo=50;
END IF;
# Soporte completo para varios discos.
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME='numdisk' AND TABLE_NAME='imagenes' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE imagenes
ADD numdisk smallint NOT NULL DEFAULT 1 AFTER idrepositorio;
ALTER TABLE ordenadores_particiones
MODIFY numdisk smallint NOT NULL,
MODIFY numpar smallint NOT NULL;
END IF;
# Comando Particionar y formatear.
IF NOT EXISTS (SELECT * FROM information_schema.STATISTICS
WHERE INDEX_NAME='descripcion' AND TABLE_NAME='sistemasficheros' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE sistemasficheros
ADD UNIQUE INDEX descripcion (descripcion);
END IF;
# Añadir proxy para aulas.
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME='proxy' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE())
THEN
ALTER TABLE aulas
ADD proxy VARCHAR(30) AFTER dns;
END IF;
END//
# Ejecutar actualización condicional.
delimiter ';'
CALL addcols();
DROP PROCEDURE addcols;
# Nuevos comandos.
INSERT INTO comandos (idcomando, descripcion, pagina, gestor, funcion, urlimg, aplicambito, visuparametros, parametros, comentarios, activo, submenu) VALUES
(11, 'Eliminar Imagen Cache', '../comandos/EliminarImagenCache.php', '../comandos/gestores/gestor_Comandos.php', 'EliminarImagenCache', '', 31, 'iph;tis;dcr;scp', 'nfn;iph;tis;dcr;scp', '', 1, ''),
(12, 'Crear Imagen Basica', '../comandos/CrearImagenBasica.php', '../comandos/gestores/gestor_Comandos.php', 'CrearImagenBasica', '', 16, 'dsk;par;cpt;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba', 'nfn;dsk;par;cpt;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba', '', 1, 'Sincronizacion'),
(13, 'Restaurar Imagen Basica', '../comandos/RestaurarImagenBasica.php', '../comandos/gestores/gestor_Comandos.php', 'RestaurarImagenBasica', '', 28, 'dsk;par;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba;met', 'nfn;dsk;par;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba;met', '', 1, 'Sincronizacion'),
(14, 'Crear Software Incremental', '../comandos/CrearSoftIncremental.php', '../comandos/gestores/gestor_Comandos.php', 'CrearSoftIncremental', '', 16, 'dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;nba', 'nfn;dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;nba', '', 1, 'Sincronizacion'),
(15, 'Restaurar Software Incremental', '../comandos/RestaurarSoftIncremental.php', '../comandos/gestores/gestor_Comandos.php', 'RestaurarSoftIncremental', '', 28, 'dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;met;nba', 'nfn;dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;met;nba', '', 1, 'Sincronizacion')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), pagina=VALUES(pagina),
gestor=VALUES(gestor), funcion=VALUES(funcion), urlimg=VALUES(urlimg),
aplicambito=VALUES(aplicambito), visuparametros=VALUES(visuparametros),
parametros=VALUES(parametros), comentarios=VALUES(comentarios),
activo=VALUES(activo), submenu=VALUES(submenu);
# Parámetros para los comandos nuevos.
INSERT INTO parametros (idparametro, nemonico, descripcion, nomidentificador, nomtabla, nomliteral, tipopa, visual) VALUES
(31, 'idf', 'Imagen Incremental', 'idimagen', 'imagenes', 'descripcion', 1, 1),
(32, 'ncf', 'Nombre canónico de la Imagen Incremental', '', '', '', 0, 1),
(33, 'bpi', 'Borrar imagen o partición previamente', '', '', '', 5, 1),
(34, 'cpc', 'Copiar también en cache', '', '', '', 5, 1),
(35, 'bpc', 'Borrado previo de la imagen en cache', '', '', '', 5, 1),
(36, 'rti', 'Ruta de origen', '', '', '', 0, 1),
(37, 'met', 'Método clonación', ';', '', 'Desde caché; Desde repositorio', 3, 1),
(38, 'nba', 'No borrar archivos en destino', '', '', '', 0, 1)
ON DUPLICATE KEY UPDATE
nemonico=VALUES(nemonico), descripcion=VALUES(descripcion),
nomidentificador=VALUES(nomidentificador), nomtabla=VALUES(nomtabla),
nomliteral=VALUES(nomliteral), tipopa=VALUES(tipopa), visual=VALUES(visual);
# Actualizar menús para nuevo parámetro "video" del Kernel, que sustituye a "vga" (ticket #573).
ALTER TABLE menus
MODIFY resolucion VARCHAR(50) DEFAULT NULL;
#UPDATE menus
# SET resolucion = CASE resolucion
# WHEN '355' THEN 'uvesafb:1152x864-16'
# WHEN '788' THEN 'uvesafb:800x600-16'
# WHEN '789' THEN 'uvesafb:800x600-24'
# WHEN '791' THEN 'uvesafb:1024x768-16'
# WHEN '792' THEN 'uvesafb:1024x768-24'
# WHEN '794' THEN 'uvesafb:1280x1024-16'
# WHEN '795' THEN 'uvesafb:1280x1024-24'
# WHEN '798' THEN 'uvesafb:1600x1200-16'
# WHEN '799' THEN 'uvesafb:1600x1200-24'
# WHEN NULL or '0' THEN 'uvesafb:800x600-16'
# ELSE resolucion
# END;
# Cambios para NetBoot con ficheros dinámicos (tickets #534 #582).
DROP TABLE IF EXISTS menuboot;
DROP TABLE IF EXISTS itemboot;
DROP TABLE IF EXISTS menuboot_itemboot;
ALTER TABLE ordenadores
MODIFY arranque VARCHAR(30) NOT NULL DEFAULT '00unknown';
UPDATE ordenadores SET arranque = '01' WHERE arranque = '1';
UPDATE ordenadores SET arranque = '19pxeadmin' WHERE arranque = 'pxeADMIN';
# Habilitar el comando Particionar y formatear.
UPDATE comandos SET activo = '1' WHERE idcomando = 10;
INSERT INTO sistemasficheros (descripcion, nemonico) VALUES
('EMPTY', 'EMPTY'),
('CACHE', 'CACHE'),
('BTRFS', 'BTRFS'),
('EXT2', 'EXT2'),
('EXT3', 'EXT3'),
('EXT4', 'EXT4'),
('FAT12', 'FAT12'),
('FAT16', 'FAT16'),
('FAT32', 'FAT32'),
('HFS', 'HFS'),
('HFSPLUS', 'HFSPLUS'),
('JFS', 'JFS'),
('NTFS', 'NTFS'),
('REISERFS', 'REISERFS'),
('REISER4', 'REISER4'),
('UFS', 'UFS'),
('XFS', 'XFS'),
('EXFAT', 'EXFAT')
ON DUPLICATE KEY UPDATE
descripcion=VALUES(descripcion), nemonico=VALUES(nemonico);
INSERT INTO tipospar (codpar, tipopar, clonable) VALUES
(CONV('EF',16,10), 'EFI', 1),
(CONV('AB00',16,10), 'HFS-BOOT', 1),
(CONV('EF00',16,10), 'EFI', 1)
ON DUPLICATE KEY UPDATE
codpar=VALUES(codpar), tipopar=VALUES(tipopar), clonable=VALUES(clonable);
# Valores por defecto para incorporar ordenadores (ticket #609).
ALTER TABLE ordenadores
ALTER fotoord SET DEFAULT 'fotoordenador.gif',
ALTER idproautoexec SET DEFAULT 0;
|