diff options
Diffstat (limited to 'admin/Interface/CrearImagenBasica')
-rwxr-xr-x | admin/Interface/CrearImagenBasica | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/admin/Interface/CrearImagenBasica b/admin/Interface/CrearImagenBasica new file mode 100755 index 00000000..8aaf5aa8 --- /dev/null +++ b/admin/Interface/CrearImagenBasica @@ -0,0 +1,98 @@ +#!/bin/bash +#___________________________________________________________________ +# +# CREAR IMAGEN BÁSICA +#___________________________________________________________________ +# +# Parámetros recibidos desde el cliente: +# +# $1 Número de disco +# $2 Número de particion +# $3 Nombre canónico de la imagen básica (sin extensión) +# $4 Dirección del repositorio +# $5 Es una cadena "nnn" tipo flags que codifica varios parametros. +# Tiene el formato "nnn" donde "n" vale 0 ó 1. +# 1XX: Gestionar fichero completo en lugar de diferencas +# X1X: Eliminar archivos de la imagen que no estén en la partición +# XX1: Comprimir archivos para enviarlos por la red +# El valor X indica que no importa el valor que tenga el dato +# $6 Es una cadena "nnnn" tipo flags que codifica varios parametros. +# Tiene el formato "nnnn" donde "n" vale 0 ó 1. +# 1XXX: Borrar la imagen del repositorio antes de crearla +# X1XX: Copiar Imagen básica también a la cache +# XX1X: Borrar previamente la imagen de la cache antes de copiarla +# XXX1: No borrar archivos en destino +# El valor X indica que no importa el valor que tenga el dato +# $7 Método de syncronización 1=Sincronización1 2=Sincronizacion2 +# $8 Ruta de origen de la Imagen (Carpeta) + +#___________________________________________________________________ +# +# Control parámetros +#___________________________________________________________________ + + + PROG="$(basename $0)" + if [ $# -lt 7 ]; then + usage=" ndisco nparticion nombre_imagen_basica ip_repositorio" + usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen" + ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage" + exit $? + fi + + #Load engine configurator from engine.cfg file. + #Carga el configurador del engine desde el fichero engine.cfg + [ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg + + # Clear temporary file used as log track by httpdlog + # Limpia los ficheros temporales usados como log de seguimiento para httpdlog + echo -n "" > $OGLOGSESSION; echo -n "" > $OGLOGCOMMAND + + # Registro de inicio de ejecución + ogEcho log session "$MSG_INTERFACE_START $0 $*" + + # Si el destino es REPO y el cliente no está en modo "admin"; activar repositorio para escritura, + PATH=$PATH:$(dirname $0) + CLIENTIP=$(ogGetIpAddress) + [ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO + if [ "$DEST" == "REPO" -a "$boot" != "admin" ]; then + CambiarAcceso admin &>> $OGLOGFILE + RETVAL=$? + [ $RETVAL -gt 0 ] && exit $RETVAL + fi + + if [ $7 -eq 1 ]; then + #sincronizacion1 + ogCrearImagenBasica "$@" + RETVAL=$? + fi + + if [ $7 -eq 2 ]; then + # Sincronizacion2 + flag=$5 + WHOLE=${flag:0:1} + DELFILE=${flag:1:1} + COMPRESS=${flag:2:1} + + # Nota los valores se pasan como variables de entorno, + # la idea es que mas adelante vayan en el fichero PXE. + [ $WHOLE -eq 1 ] && export ogrsyncw=true || export ogrsyncw=false + [ $DELFILE -eq 1 ] && export ogrsyncdel=true || export ogrsyncdel=false + [ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false + + # [ "$4" == "0.0.0.0" ] && DEST="CACHE" || DEST="REPO" + + createBaseImage $1 $2 $DEST "$3" + RETVAL=$? + + fi + + # Si estamos en modo user montamos el repositorio en modo lectura. + [ "$DEST" == "REPO" -a "$boot" != "admin" ] && CambiarAcceso user + # Registro de fin de ejecución + ogEcho log session "$MSG_INTERFACE_END $RETVAL" + + + + exit $RETVAL + |