Copiar perfiles de imágenes
Aplicable a: Medulla - Relé de Medulla
Versión:Todas
Entorno:On-Premise
Categoría: Imágenes
Copiar un perfil de imágenes en todos los servidores
Información inicial:
- nombre del perfil
- nombre del servidor
Especificar el perfil
En primer lugar, hay que recopilar toda la información del perfil.
Objetivos: 1008
- Asegurarse de que se trata efectivamente del perfil correcto
- Obtener su ID y el ID del servidor
-- sustituir <NOMBRE_PERFIL> por su nombre
-- sustituir <NOMBRE_SERVIDOR> por el nombre del servidor de imágenes
SELECT
Profile.id,
Profile.fk_imagingserver
from Profile
join ImagingServer ims on ims.id = fk_imagingserver
where Profile.name = "<nombre_perfil>" and ims.name = "<nombre_servidor>";
/*
Resultado:
+----+------------------+
| id | fk_imagingserver |
+----+------------------+
| 34 | 1 |
+----+------------------+
*/
El perfil<NOMBRE_PERFIL>tiene el id34y está asociado al servidor de imágenes1.
También necesitaremos la lista de postinstals y su orden:
-- Sustituye <id_perfil> por el valor <id> del resultado anterior
-- select * from PostInstallInProfile where fk_profile=<id_perfil>;
-- Ej.:
select * from PostInstallInProfile where fk_profile=34;
/*
Resultado
+------------+------------------------+-------+
| fk_profile | fk_post_install_script | order |
+------------+------------------------+-------+
| 34 | 1008 | 0 |
| 34 | 1011 | 1 |
+------------+------------------------+-------+
*/
Hay dos scripts de postinstalación asociados al perfil 34:
- el script de posinstalación 1008, en el orden 0,
- postinstall 1011, en el orden 1.
Esta información será necesaria para continuar.
Copiar las postinstals
Es posible que los postinstalls 1008 y 1011 no estén asociados a todos los servidores seleccionados.
Lo primero que hay que hacer es asegurarse de que los scripts de postinstalación 1008 y 1011 estén asociados en todos los lugares donde se necesiten.
Es necesario repetir esta consulta para todos los scripts de postinstalación enumerados.
begin;
-- Asociar todos los ims al script de postinstalación id=1008
insert into PostInstallScriptOnImagingServer (fk_imaging_server, fk_post_install_script)
select
ims.id,
1008
from ImagingServer ims
join Entity e on e.id = ims.fk_entity
where
-- Si es necesario, añade aquí filtros sobre los servidores de imágenes
ims.id not in (
select pisois.fk_imaging_server
from PostInstallScriptOnImagingServer pisois
where pisois.fk_post_install_script = 1008
);
-- Asociar todos los ims al script de postinstalación con id=1011
insert into PostInstallScriptOnImagingServer (fk_imaging_server, fk_post_install_script)
select
ims.id,
1011
from ImagingServer ims
join Entity e on e.id = ims.fk_entity
where
-- Si es necesario, añade aquí filtros para los servidores de imágenes
ims.id not in (
select pisois.fk_imaging_server
from PostInstallScriptOnImagingServer pisois
where pisois.fk_post_install_script = 1011
);
Ahora ya tenemos los scripts de postinstalación en todos los servidores que queríamos.
Crear los perfiles
Cada perfil está asociado a un único servidor de imágenes. Para copiar un perfil, es necesario copiar su contenido en cada servidor de imágenes de destino.
-- Crear los perfiles <nombre_perfil> para todos los IMS que aún no tengan este perfil
-- 34 corresponde al ID del perfil que se va a copiar.
-- Sustituye <nombre_perfil> por el nombre del perfil que se va a copiar
insert into Profile (fk_imagingserver, name, description)
select
distinct(ims.id),
(select name from Profile where id=34) as profile_name,
(select description from Profile where id=34) as profile_desc
from ImagingServer ims
join Entity e on e.id = ims.fk_entity
where
-- Si es necesario, añade aquí los filtros para los servidores de imágenes
ims.id not in (select fk_imagingserver from Profile where name = "<nombre_perfil>");
Asigna una postinstalación a los nuevos perfiles
Los perfiles de cada servidor se crean, pero están vacíos. Ahora hay que copiar el contenido del perfil original.
La consulta debe adaptarse y repetirse para cada postinstall que se vaya a copiar.
-- Asigna los perfiles creados a la postinstall 1008
-- Sustituye <nombre_perfil> por el nombre del perfil
-- 1008 corresponde al id de la postinstalación encontrada anteriormente
-- 0 corresponde al orden encontrado en la segunda consulta (columna «order»)
insert into PostInstallInProfile (fk_profile, fk_post_install_script, `order`)
select
id,
1008,
0
from Profile
where name = "<nombre_perfil>"
and id not in
(select fk_profile
from PostInstallInProfile
where fk_post_install_script = 1008
);
-- Asocia los perfiles creados a la postinstall 1011
-- Sustituye <nombre_perfil> por el nombre del perfil
-- 1011 corresponde al id de la postinstall encontrada anteriormente
-- 1 corresponde al orden encontrado en la segunda consulta (columna order)
insert into PostInstallInProfile (fk_profile, fk_post_install_script, `order`)
select
id,
1011,
1
from Profile
where name = "<nombre_perfil>"
and id not in
(select fk_profile
from PostInstallInProfile
where fk_post_install_script = 1011
);