diff options
author | irina <irinagomez@us.es> | 2014-04-10 12:44:32 +0000 |
---|---|---|
committer | irina <irinagomez@us.es> | 2014-04-10 12:44:32 +0000 |
commit | e2a744261040894f9214705de012e7222319de70 (patch) | |
tree | 9221df3ceb0f44cfae90d496a99cebbb38d556af /admin | |
parent | 48b5016fd9f1f198572c80f4d503345638f6cf32 (diff) |
#565 Sincronizadas. Se bloquean igual que las monoliticas. Al crear diferenciales se detecta si la particion es igual que la basica
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4234 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin')
-rwxr-xr-x | admin/Interface/CambiarAcceso | 2 | ||||
-rwxr-xr-x | admin/Interface/CrearImagenBasica | 16 | ||||
-rwxr-xr-x | admin/Interface/CrearSoftIncremental | 18 | ||||
-rwxr-xr-x | admin/Sources/Services/ogAdmRepoAux | 19 |
4 files changed, 32 insertions, 23 deletions
diff --git a/admin/Interface/CambiarAcceso b/admin/Interface/CambiarAcceso index 64516e4f..73275eef 100755 --- a/admin/Interface/CambiarAcceso +++ b/admin/Interface/CambiarAcceso @@ -9,7 +9,7 @@ # Error si llamada no se realliza desde OpenGnSys Client. PROG=$(basename $0) CALLER=$(ogGetCaller) -if [ "$CALLER" != "CrearImagen" -a "$CALLER" != "ConsolaRemota" ]; then +if ! $(ogCheckStringInGroup "$CALLER" "CrearImagen ConsolaRemota CrearImagenBasica CrearSoftIncremental"); then ogRaiseError $OG_ERR_NOTEXEC "$CALLER -> $PROG" exit $? fi diff --git a/admin/Interface/CrearImagenBasica b/admin/Interface/CrearImagenBasica index f89ef401..8aaf5aa8 100755 --- a/admin/Interface/CrearImagenBasica +++ b/admin/Interface/CrearImagenBasica @@ -51,13 +51,21 @@ # 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 @@ -72,13 +80,15 @@ [ $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" + # [ "$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" diff --git a/admin/Interface/CrearSoftIncremental b/admin/Interface/CrearSoftIncremental index 74edc4b5..fc29451e 100755 --- a/admin/Interface/CrearSoftIncremental +++ b/admin/Interface/CrearSoftIncremental @@ -50,6 +50,17 @@ # 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 [ $8 -eq 1 ]; then #sincronizacion1 ogCrearSoftIncremental "$@" @@ -71,13 +82,16 @@ [ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false # REPOSITORIO: Si la ip es la del propio equipo CACHE, si no REPO - CLIENTIP=$(ogGetIpAddress) - [ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO + #CLIENTIP=$(ogGetIpAddress) + #[ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO createDiffImage $1 $2 $DEST "$3" "$5" 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" diff --git a/admin/Sources/Services/ogAdmRepoAux b/admin/Sources/Services/ogAdmRepoAux index 1884f5d5..05bac0ce 100755 --- a/admin/Sources/Services/ogAdmRepoAux +++ b/admin/Sources/Services/ogAdmRepoAux @@ -231,7 +231,7 @@ case "$PARM1" in file $IMGFILE |grep -i -e " ext4 filesystem " 2>&1 > /dev/null || exit 0 [ -d $DIRMOUNT ] || mkdir $DIRMOUNT - mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen"; exit 1) + mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen $IMGFILE"; exit 1) # Si el espacio libre menor que 500Mb desmontamos la imagen y nos salimos AVAILABLE=$(df -k|grep $DIRMOUNT|awk '{print $4}') @@ -259,31 +259,16 @@ case "$PARM1" in # Calculamos el tamaño final del archivo INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}') let EXTSIZE=$INTSIZE+$EDGESIZE - umount $DIRMOUNT + umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1) # Si existe dispositivo loop lo borramos. [ $LOOPDEVICE ] && losetup -a| grep $LOOPDEVICE &> /dev/null && losetup -d $LOOPDEVICE # Corto el archivo al tamaño del sistema de ficheros echo "truncate --size=\"$EXTSIZE\"k $IMGFILE" echolog "truncate --size=\"$EXTSIZE\"k $IMGFILE" truncate --size="$EXTSIZE"k $IMGFILE - rmdir $DIRMOUNT ;; - LOCK_IMAGE) - # Bloquea el archivo de la imagen. - #1 LOCK_IMAGE - #2 Nombre_Imagen.extension - echolog "Bloqueamos imagen $REPODIR$PARM2" - touch "$REPODIR$PARM2.lock" - ;; - UNLOCK_IMAGE) - # Desloquea el archivo de la imagen. - #1 UNLOCK_IMAGE - #2 Nombre_Imagen.extension - echolog "Desbloqueamos imagen $REPODIR$PARM2" - rm -f "$REPODIR$PARM2.lock" - ;; default) echolog "Solicitud con parametros \"$PARM\" no realizada, no registrada o con errores" ;; |