summaryrefslogtreecommitdiffstats
path: root/client/shared/scripts/createBaseImage
diff options
context:
space:
mode:
authoririna <irinagomez@us.es>2014-03-17 13:50:36 +0000
committeririna <irinagomez@us.es>2014-03-17 13:50:36 +0000
commit251c9e4f84eeeb86d015df4d76d45ebe3a36d189 (patch)
tree50cc8ba02b993b974d8756f0ea32ae393a064917 /client/shared/scripts/createBaseImage
parent1f03f6e1e23f42a55bfaffcdd63852be4562866e (diff)
#636 #565 mensajes log en tiempo real y corrige problema al crear imágenes sincronizada tipo archivo con cliente en modo usuario
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4189 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/shared/scripts/createBaseImage')
-rwxr-xr-xclient/shared/scripts/createBaseImage72
1 files changed, 36 insertions, 36 deletions
diff --git a/client/shared/scripts/createBaseImage b/client/shared/scripts/createBaseImage
index 7d4a7ed2..f870cdf7 100755
--- a/client/shared/scripts/createBaseImage
+++ b/client/shared/scripts/createBaseImage
@@ -17,7 +17,7 @@
#@exception OG_ERR_NOTCACHE # 15 si cache no existe 15
#@exception OG_ERR_CACHESIZE # 16 si espacio de la cache local o remota no tiene espacio 16
#@exception OG_ERR_DONTMOUNT_IMAGE # 70 Error al montar una imagen sincronizada
-#@note se toma como punto de partida el script createImage, cambiando solo lo especifico para la imagen sincronizada
+#@note No necesario permiso se escritura por samba en repo.
#@todo: que hacer, si el tamaño de la cache es sufciente, pero no tiene espacio libre
#@version 1.0 - creación imagen con btrfs
#@author
@@ -31,7 +31,11 @@ function onexit() {
local exit_status=$?
ogUnmountImage $3 "$4" $IMGEXT &>/dev/null
if [ $exit_status -ne 4 ]; then
- ogUnlockImage "$3" "/$4.$IMGEXT"
+ if [ "$3" == "CACHE" -o "$3" == "cache" ]; then
+ ogUnlockImage "$3" "/$4.$IMGEXT"
+ else
+ hose $REPOIP 2009 --out sh -c "echo -ne UNLOCK_IMAGE \"$4.$IMGEXT\" "
+ fi
ogUnlock $1 $2
fi
exit $exit_status
@@ -61,13 +65,13 @@ if [ "$*" == "help" ]; then
exit 0
fi
-[ $# -ne 4 ] && exit $(ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG ndisco nparticion REPO|CACHE imagen" ; echo $?)
+[ $# -ne 4 ] && exit $(ogRaiseError session $OG_ERR_FORMAT "$MSG_FORMAT: $PROG ndisco nparticion REPO|CACHE imagen" ; echo $?)
# Limpiamos fichero de log
echo " " > $OGLOGCOMMAND
[ "$(ogGetCaller)" == "RestaurarImagenBasica" ] || echo -n ""> $OGLOGSESSION
-echo "[1] $MSG_SCRIPTS_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session "[1] $MSG_SCRIPTS_START $0 $*"
# Valores por defecto en etc/engine.cfg
IMGEXT="img"
@@ -75,29 +79,25 @@ REPOIP=$(ogGetRepoIp)
# Comprobamos si la imagen o la particion estan bloqueada:
-ogIsImageLocked "$3" "$4.$IMGEXT" && exit $(ogRaiseError $OG_ERR_LOCKED "$3 $4.$IMGEXT"; echo $?)
-ogIsLocked "$1" "$2" && exit $(ogRaiseError $OG_ERR_LOCKED "$1 $2"; echo $?)
+ogIsImageLocked "$3" "$4.$IMGEXT" && exit $(ogRaiseError session $OG_ERR_LOCKED "$3 $4.$IMGEXT"; echo $?)
+ogIsLocked "$1" "$2" && exit $(ogRaiseError session $OG_ERR_LOCKED "$1 $2"; echo $?)
# Si el repositorio es CACHE comprobamos que exista
if [ "$3" == "CACHE" -o "$3" == "cache" ]; then
- ! ogFindCache >/dev/null && exit $(ogRaiseError $OG_ERR_NOTCACHE "CACHE "; echo $?)
+ ! ogFindCache >/dev/null && exit $(ogRaiseError session $OG_ERR_NOTCACHE "CACHE "; echo $?)
fi
-#Comprobamos acceso de escritura.
-DIRTEMP="/$4$(date +%Y%m%d-%H%M%S)"
-ogMakeDir $3 "$DIRTEMP" 2>/dev/null && ogDeleteTree $3 "$DIRTEMP" || exit $(ogRaiseError $OG_ERR_NOTWRITE "$3" ; echo $?)
-
# Obtener información de los parámetros de entrada.
-PART=$(ogDiskToDev "$1" "$2" 2>/dev/null) || exit $(ogRaiseError $OG_ERR_PARTITION "$1 $2" ; echo $?)
+PART=$(ogDiskToDev "$1" "$2" 2>/dev/null) || exit $(ogRaiseError session $OG_ERR_PARTITION "$1 $2" ; echo $?)
# Comprobar consistencia del sistema de archivos.
echo " " > $OGLOGCOMMAND
SIZEFS=$(ogGetFsSize $1 $2)
-echo "[20] $MSG_HELP_ogCheckFs $PART $SIZEFS (KB) " | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session "[20] $MSG_HELP_ogCheckFs $PART $SIZEFS (KB) "
ogUnmount $1 $2
-ogCheckFs $1 $2 &> $OGLOGCOMMAND || exit $(ogRaiseError $OG_ERR_PARTITION "ogCheckFs $1 $2"; echo $?)
+ogCheckFs $1 $2 &> $OGLOGCOMMAND || exit $(ogRaiseError session $OG_ERR_PARTITION "ogCheckFs $1 $2"; echo $?)
# Comprobamos que la particion se puede montar
-ORIG=$(ogMount $1 $2) || exit $(ogRaiseError $OG_ERR_PARTITION "$1 $2" ; echo $?)
+ORIG=$(ogMount $1 $2) || exit $(ogRaiseError session $OG_ERR_PARTITION "$1 $2" ; echo $?)
# Borramos ficheros de paginacion y configuracion
case "$(ogGetFsType $1 $2)" in
@@ -121,8 +121,8 @@ let SIZEREQUIRED=$SIZEDATA*$ZSYNC/100
#Comprobar espacio libre en el contenedor.
[ "$3" == "CACHE" -o "$3" == "cache" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`)
[ "$3" == "REPO" -o "$3" == "repo" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}')
-echo " $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE" | tee -a $OGLOGSESSION $OGLOGFILE
-[ $SIZEREQUIRED -gt $SIZEFREE ] && exit $(ogRaiseError $OG_ERR_CACHESIZE "$3"; echo $?)
+ogEcho log session " $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE"
+[ $SIZEREQUIRED -gt $SIZEFREE ] && exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?)
IMGDIR="$(ogGetParentPath "$3" "/$4")"
IMGFILE=${IMGDIR[$3]}/$(basename "/$4").$IMGEXT
@@ -130,47 +130,47 @@ IMGFILE=${IMGDIR[$3]}/$(basename "/$4").$IMGEXT
echo " " > $OGLOGCOMMAND
TIME2=$SECONDS
-ogLockImage "$3" "/$4.$IMGEXT"
+if [ "$3" == "CACHE" -o "$3" == "cache" ]; then
+ ogLockImage "$3" "/$4.$IMGEXT"
+else
+ hose $REPOIP 2009 --out sh -c "echo -ne LOCK_IMAGE \"$4.$IMGEXT\" "
+fi
-echo "[40] $MSG_HELP_ogCreateImage $1 $2 $3 $4 " | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session "[40] $MSG_HELP_ogCreateImage $1 $2 $3 $4 "
# Si existe el fichero de la imagen se hace copia de seguridad y se redimensiona, si no existe se crea.
-echo "[50] $MSG_HELP_ogCreateFileImage." | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session "[50] $MSG_HELP_ogCreateFileImage."
ogCreateFileImage $3 "$4" $IMGEXT $SIZEREQUIRED
# Creamos la lista del contenido y lo situamos en la particion a copiar.
-echo "[60] $MSG_HELP_ogCreateInfoImage" | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session "[60] $MSG_HELP_ogCreateInfoImage"
ogCreateInfoImage $1 $2 $IMGEXT
TIMEAUX3=$[SECONDS-TIME2]
-echo " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL : $[TIMEAUX3/60]m $[TIMEAUX3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL : $[TIMEAUX3/60]m $[TIMEAUX3%60]s"
# Esperamos que el servidor termine de crear y montar la imagen
-ogWaitMountImage "$3" "$4" $IMGEXT $SIZEREQUIRED || exit $(ogRaiseError $OG_ERR_DONTMOUNT_IMAGE "$3 $4 $IMGEXT: time_out."; echo $?)
+ogWaitMountImage "$3" "$4" $IMGEXT $SIZEREQUIRED || exit $(ogRaiseError session $OG_ERR_DONTMOUNT_IMAGE "$3 $4 $IMGEXT: time_out."; echo $?)
# Sincronizamos los datos de la particion con la imagen.
-echo "[70] $MSG_HELP_ogSyncCreate." | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session "[70] $MSG_HELP_ogSyncCreate."
ogSyncCreate $1 $2 $3 "$4" $IMGEXT
TIMEAUX5=$[SECONDS-TIMEAUX3]
-echo " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX5/60]m $[TIMEAUX5%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX5/60]m $[TIMEAUX5%60]s"
-# Reducimos la imagen: solo para kernel <= 3.7, imagenes con FS ext4.
-echo "[80] $MSG_HELP_ogReduceImage: $3 /$4.$IMGEXT" | tee -a $OGLOGSESSION $OGLOGFILE
+# Reducimos la imagen: solo para kernel <= 3.7, imagenes con FS ext4. (Desmonta y desbloquea la imagen)
+ogEcho log session "[80] $MSG_HELP_ogReduceImage: $3 /$4.$IMGEXT"
ogReduceImage $3 "$4" $IMGEXT
-
-# Desmontamos la Imagen
-ogUnmountImage $3 "$4" $IMGEXT
-ogUnlockImage "$3" "/$4.$IMGEXT"
-ogUnlock $1 $2
+sleep 10
echo " " > $OGLOGCOMMAND
# Comprobamos que la imagen esta bien detectacdo que es un sistema de ficheros.
-echo "[95] $MSG_HELP_ogCheckSyncImage" | tee -a $OGLOGSESSION $OGLOGFILE
-ogCheckSyncImage $3 "$4" "img" || exit $(ogRaiseError $OG_ERR_IMAGE "$3 $4 img" ; echo $?)
+ogEcho log session "[95] $MSG_HELP_ogCheckSyncImage"
+ogCheckSyncImage $3 "$4" "img" || exit $(ogRaiseError session $OG_ERR_IMAGE "$3 $4 img" ; echo $?)
#resumen de la operacion
IMGSIZE=$(ls -l --block-size=1024 "$IMGFILE" | cut -f5 -d" ")
TIME=$[SECONDS-TIME1]
-echo "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
-echo " FileSystem $PART with $SIZEDATA KB data created onto file-image as $4 and used $IMGSIZE KB acros DFS rsync " | tee -a $OGLOGSESSION $OGLOGFILE
+ogEcho log session "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s"
+ogEcho log session " FileSystem $PART with $SIZEDATA KB data created onto file-image as $4 and used $IMGSIZE KB acros DFS rsync "