summaryrefslogtreecommitdiffstats
path: root/client/shared
diff options
context:
space:
mode:
authoririna <irinagomez@us.es>2014-10-31 13:52:32 +0000
committeririna <irinagomez@us.es>2014-10-31 13:52:32 +0000
commitd3dc88d80ee70f5457f7d2e33f877711832b1a19 (patch)
tree5261db9abfe7101f8e19e7e85ad3e38ac9cdcfd5 /client/shared
parent642e39f6bb8758b652b9ead42dc0494cb845e2e6 (diff)
ogGetSizeParameter: devuelve el tamaño del sf, el de la imagen y si cabe en el repositorio elegido - se elimina codigo repetido en script
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4420 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/shared')
-rw-r--r--client/shared/etc/lang.ca_ES.conf4
-rw-r--r--client/shared/etc/lang.en_GB.conf2
-rw-r--r--client/shared/etc/lang.es_ES.conf4
-rwxr-xr-xclient/shared/scripts/createBaseImage45
-rwxr-xr-xclient/shared/scripts/createDiffImage44
-rwxr-xr-xclient/shared/scripts/createImage24
6 files changed, 32 insertions, 91 deletions
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf
index ecad9b6b..d6257dc0 100644
--- a/client/shared/etc/lang.ca_ES.conf
+++ b/client/shared/etc/lang.ca_ES.conf
@@ -90,6 +90,7 @@ MSG_HELP_ogBoot="Arranca un sistema operativo instalado."
MSG_HELP_ogCalculateChecksum="Calcula la suma de comprobación (checksum) de un fichero."
MSG_HELP_ogCheckFs="Comprueba la consistencia de un sistema de archivos."
MSG_HELP_ogCheckSyncImage="Muestra el contenido de la imagen para comprobarla."
+MSG_HELP_ogCleanOs="Elimina los archivos que no son necesarios en el sistema operativo."
MSG_HELP_ogCompareChecksumFiles="Compara si coinciden las sumas de comprobación almacenadas de 2 ficheros."
MSG_HELP_ogCopyFile="Copia un fichero a otro almacenamiento."
MSG_HELP_ogCreateCache="Reserva espacio para la partición de caché al final del disco 1."
@@ -119,7 +120,7 @@ MSG_HELP_ogGetCacheSpace="Devuelve el espacio máximo disponible que puede ser r
MSG_HELP_ogGetDiskSize="Devuelve el tamaño del disco."
MSG_HELP_ogGetFsSize="Devuelve el tamaño de un sistema de archivos."
MSG_HELP_ogGetFsType="Devuelve el mnemónico de tipo de sistema de archivos."
-MSG_HELP_ogGetGroupDir="Devuelve el cmaino del directorio por defecto para el grupo del cliente."
+MSG_HELP_ogGetGroupDir="Devuelve el camino del directorio por defecto para el grupo del cliente."
MSG_HELP_ogGetGroupName="Devuelve el nombre del grupo al que pertenece el cliente."
MSG_HELP_ogGetHivePath="Devuelve el camino completo del fichero de una sección del registro de Windows."
MSG_HELP_ogGetHostname="Devuelve el nombre de la máquina local."
@@ -141,6 +142,7 @@ MSG_HELP_ogGetPath="Devuelve el camino completo de un fichero de sistema OpenGnS
MSG_HELP_ogGetRegistryValue="Devuelve el dato de un valor del registro de Windows."
MSG_HELP_ogGetRepoIp="Devuelve la dirección IP del repositorio de datos."
MSG_HELP_ogGetServerIp="Devuelve la dirección IP del servidor principal."
+MSG_HELP_ogGetSizeParameters="Devuelve el tamaño de los datos de un sistema de ficheros, el espacio necesario para la imagen y si cabe en el repositorio elegido."
MSG_HELP_ogGetWindowsName="Devuelve el nombre del cliente guardado en el registro de Windows."
MSG_HELP_ogGrubAddOgclient="Incluye en el grub del MBR una entrada llamando al cliente de opengnsys."
MSG_HELP_ogGrubDeleteEntry="Borra en el grub del MBR las entradas para el inicio en una particion."
diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf
index 69965eeb..42a39b9c 100644
--- a/client/shared/etc/lang.en_GB.conf
+++ b/client/shared/etc/lang.en_GB.conf
@@ -90,6 +90,7 @@ MSG_HELP_ogBoot="Boot a installed operating system."
MSG_HELP_ogCalculateChecksum="Calculate file checksum."
MSG_HELP_ogCheckFs="Check a filesystem."
MSG_HELP_ogCheckSyncImage="Displays the contents of the image to check it."
+MSG_HELP_ogCleanOs="Elimina los archivos que no son necesarios en el sistema operativo."
MSG_HELP_ogCompareChecksumFiles="Compare if the checksums match."
MSG_HELP_ogCopyFile="Copy a file to other storage."
MSG_HELP_ogCreateCache="Reserve space for the cache partition at the end of disc 1."
@@ -141,6 +142,7 @@ MSG_HELP_ogGetPath="Return the file full path."
MSG_HELP_ogGetRegistryValue="Return a data value from the Windows registry."
MSG_HELP_ogGetRepoIp="Return the IP address of an OpenGnsys Repository."
MSG_HELP_ogGetServerIp="Return the main OpenGnSys Server IP address."
+MSG_HELP_ogGetSizeParameters="Devuelve el tamaño de los datos de un sistema de ficheros, el espacio necesario para la imagen y si cabe en el repositorio elegido."
MSG_HELP_ogGetWindowsName="Return the client name saved in the Windows registry."
MSG_HELP_ogGrubAddOgclient="Incluye en el grub del MBR una entrada llamando al cliente de opengnsys."
MSG_HELP_ogGrubDeleteEntry="Borra en el grub del MBR las entradas para el inicio en una particion."
diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf
index 7fe85629..524e95cf 100644
--- a/client/shared/etc/lang.es_ES.conf
+++ b/client/shared/etc/lang.es_ES.conf
@@ -90,6 +90,7 @@ MSG_HELP_ogBoot="Arranca un sistema operativo instalado."
MSG_HELP_ogCalculateChecksum="Calcula la suma de comprobación (checksum) de un fichero."
MSG_HELP_ogCheckFs="Comprueba la consistencia de un sistema de archivos."
MSG_HELP_ogCheckSyncImage="Muestra el contenido de la imagen para comprobarla."
+MSG_HELP_ogCleanOs="Elimina los archivos que no son necesarios en el sistema operativo."
MSG_HELP_ogCompareChecksumFiles="Compara si coinciden las sumas de comprobación almacenadas de 2 ficheros."
MSG_HELP_ogCopyFile="Copia un fichero a otro almacenamiento."
MSG_HELP_ogCreateCache="Reserva espacio para la partición de caché al final del disco 1."
@@ -119,7 +120,7 @@ MSG_HELP_ogGetCacheSpace="Devuelve el espacio máximo disponible que puede ser r
MSG_HELP_ogGetDiskSize="Devuelve el tamaño del disco."
MSG_HELP_ogGetFsSize="Devuelve el tamaño de un sistema de archivos."
MSG_HELP_ogGetFsType="Devuelve el mnemónico de tipo de sistema de archivos."
-MSG_HELP_ogGetGroupDir="Devuelve el cmaino del directorio por defecto para el grupo del cliente."
+MSG_HELP_ogGetGroupDir="Devuelve el camino del directorio por defecto para el grupo del cliente."
MSG_HELP_ogGetGroupName="Devuelve el nombre del grupo al que pertenece el cliente."
MSG_HELP_ogGetHivePath="Devuelve el camino completo del fichero de una sección del registro de Windows."
MSG_HELP_ogGetHostname="Devuelve el nombre de la máquina local."
@@ -141,6 +142,7 @@ MSG_HELP_ogGetPath="Devuelve el camino completo de un fichero de sistema OpenGnS
MSG_HELP_ogGetRegistryValue="Devuelve el dato de un valor del registro de Windows."
MSG_HELP_ogGetRepoIp="Devuelve la dirección IP del repositorio de datos."
MSG_HELP_ogGetServerIp="Devuelve la dirección IP del servidor principal."
+MSG_HELP_ogGetSizeParameters="Devuelve el tamaño de los datos de un sistema de ficheros, el espacio necesario para la imagen y si cabe en el repositorio elegido."
MSG_HELP_ogGetWindowsName="Devuelve el nombre del cliente guardado en el registro de Windows."
MSG_HELP_ogGrubAddOgclient="Incluye en el grub del MBR una entrada llamando al cliente de opengnsys."
MSG_HELP_ogGrubDeleteEntry="Borra en el grub del MBR las entradas para el inicio en una particion."
diff --git a/client/shared/scripts/createBaseImage b/client/shared/scripts/createBaseImage
index b9a3c557..1e35aff4 100755
--- a/client/shared/scripts/createBaseImage
+++ b/client/shared/scripts/createBaseImage
@@ -40,19 +40,6 @@ TIME1=$SECONDS
#Carga el configurador del engine desde el fichero engine.cfg
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
-# Factor de calculo de Time out al crear imagen: valor por defecto en engine.cfg
-CREATESPEED=${CREATESPEED:-"100000*4"}
-
-# Sistema de fichero de la imagen según kernel, menor que 3.7 EXT4. comparamos revision
-KERNELVERSION=$(uname -r| awk '{printf("%d",$1);sub(/[0-9]*\./,"",$1);printf(".%02d",$1)}')
-[ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS="BTRFS"
-
-# % de compresion para estimacion tamaño imagen IMGFS="EXT4"
-ZSYNC=${ZSYNC:-"120"}
-
-# Si IMGFS="BTRFS" la compresion es mayor.
-[ $IMGFS == "BTRFS" ] && let ZSYNC=$ZSYNC-30
-
PROG="$(basename $0)"
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -66,12 +53,12 @@ fi
# Limpiamos fichero de log
echo " " > $OGLOGCOMMAND
-[ "$(ogGetCaller)" == "RestaurarImagenBasica" ] || echo -n ""> $OGLOGSESSION
+[ "$(ogGetCaller)" == "CrearImagenBasica" ] || echo -n ""> $OGLOGSESSION
ogEcho log session "[1] $MSG_SCRIPTS_START $0 $*"
# Valores por defecto en etc/engine.cfg
-IMGEXT="img"
+IMGEXT=${IMGEXT:-"img"}
REPOIP=$(ogGetRepoIp)
@@ -97,29 +84,14 @@ ogCheckFs $1 $2 &> $OGLOGCOMMAND || exit $(ogRaiseError session $OG_ERR_PARTITIO
ORIG=$(ogMount $1 $2) || exit $(ogRaiseError session $OG_ERR_PARTITION "$1 $2" ; echo $?)
# Borramos ficheros de paginacion y configuracion
-case "$(ogGetFsType $1 $2)" in
- EXT[234])
- ogCleanLinuxDevices $1 $2
- rm -rf $ORIG/tmp/*
- ;;
- NTFS)
- [ $(ogGetPath $1 $2 pagefile.sys) ] && ogDeleteFile $1 $2 pagefile.sys
- [ $(ogGetPath $1 $2 hiberfil.sys) ] && ogDeleteFile $1 $2 hiberfil.sys
- [ $(ogGetPath $1 $2 swapfile.sys) ] && ogDeleteFile $1 $2 swapfile.sys
- ;;
-esac
+ogCleanOs $1 $2
#Comprobar espacio que requerira la imagen para ser almacenada
-SIZEDATA=$(df -k | grep $PART | awk '{print $3}')
-#Aplicar factor de compresion
-let SIZEREQUIRED=$SIZEDATA*$ZSYNC/100
-# El tamaño mínimo del sistema de ficheros btrfs es 250M, ponemos 300
-[ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000
-#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}')
-ogEcho log session " $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE"
-[ $SIZEREQUIRED -gt $SIZEFREE ] && exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?)
+read SIZEDATA SIZEREQUIRED ISENOUGHSPACE <<< $(ogGetSizeParameters $1 $2 "$3" SYNC)
+
+ogEcho log session "[16] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED"
+[ "$ISENOUGHSPACE" == "TRUE" ] || exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?)
+
IMGDIR="$(ogGetParentPath "$3" "/$4")"
IMGFILE=${IMGDIR[$3]}/$(basename "/$4").$IMGEXT
@@ -128,6 +100,7 @@ echo " " > $OGLOGCOMMAND
TIME2=$SECONDS
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.
ogEcho log session "[50] $MSG_HELP_ogCreateFileImage."
ogLockImage "$3" "/$4.$IMGEXT"
diff --git a/client/shared/scripts/createDiffImage b/client/shared/scripts/createDiffImage
index 32784012..a832abeb 100755
--- a/client/shared/scripts/createDiffImage
+++ b/client/shared/scripts/createDiffImage
@@ -43,16 +43,6 @@ function onexit() {
#Carga el configurador del engine desde el fichero engine.cfg
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
-# Factor de calculo de Time out al crear imagen: valor por defecto en engine.cfg
-CREATESPEED=${CREATESPEED:-"100000*4"}
-# Sistema de fichero de la imagen según kernel, menor que 3.7 EXT4. comparamos revision
-KERNELVERSION=$(uname -r| awk '{printf("%d",$1);sub(/[0-9]*\./,"",$1);printf(".%02d",$1)}')
-[ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS="BTRFS"
-# % de compresion para estimacion tamaño imagen IMGFS="EXT4"
-ZSYNC=${ZSYNC:-"120"}
-# Si IMGFS="BTRFS" la compresion es mayor.
-[ $IMGFS == "BTRFS" ] && let ZSYNC=$ZSYNC-30
-
TIME1=$SECONDS
PROG="$(basename $0)"
@@ -116,18 +106,7 @@ ogUnmount $1 $2
ogCheckFs $1 $2 >$OGLOGCOMMAND || exit $(ogRaiseError session $OG_ERR_PARTITION "ogCheckFs $1 $2" ; echo $?)
# Borramos ficheros de paginacion y configuracion
-FSTYPE=$(ogGetFsType $1 $2)
-case "$FSTYPE" in
- EXT[234])
- ogCleanLinuxDevices $1 $2
- rm -rf $ORIG/tmp/*
- ;;
- NTFS)
- [ $(ogGetPath $1 $2 pagefile.sys) ] && ogDeleteFile $1 $2 pagefile.sys
- [ $(ogGetPath $1 $2 hiberfil.sys) ] && ogDeleteFile $1 $2 hiberfil.sys
- [ $(ogGetPath $1 $2 swapfile.sys) ] && ogDeleteFile $1 $2 swapfile.sys
- ;;
-esac
+ogCleanOs $1 $2
# Crear la imagen.
echo " " > $OGLOGCOMMAND
@@ -142,25 +121,19 @@ ogMountImage $3 "$4" $IMGEXT >/dev/null
ogWaitSyncImage $3 "$4" $IMGEXT "mounted" || exit $(ogRaiseError session $OG_ERR_DONTMOUNT_IMAGE "$3 $4 $IMGEXT: time_out."; echo $?)
# Creamos la informacion de la imagen.
-ogEcho log session "[50] $MSG_HELP_ogCreateInfoImage "
+ogEcho log session "[45] $MSG_HELP_ogCreateInfoImage "
ogCreateInfoImage $1 $2 $3 "$4" "${DIFFTYPE}"
[ $? -eq $OG_ERR_NOTDIFFERENT ] && exit $(ogRaiseError session $OG_ERR_NOTDIFFERENT; echo $?)
+#Comprobar espacio que requerira la imagen para ser almacenada
+read SIZEDATA SIZEREQUIRED ISENOUGHSPACE <<< $(ogGetSizeParameters $1 $2 "$3" DIFF ; echo $?)
+
+ogEcho log session "[50] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED"
+[ "$ISENOUGHSPACE" == "TRUE" ] || exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?)
+
#Calculamos el tamaño de la imagen:
ogMount $1 $2 >/dev/null
ogLock $1 $2
-ogEcho log session " $MSG_SCRIPTS_CREATE_SIZE"
-cd $ORIG
-SIZEDATA=$(grep -v "\/$" /tmp/ogimg.info | tr '\n' '\0'| du -x -c --files0-from=- 2>/dev/null|tail -n1 |cut -f1)
-let SIZEREQUIRED=$SIZEDATA*$ZSYNC/100
-# Tamaño minimo fichero imagen 300000
-[ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000
-
-# Comprueba que quepa en el repositorio
-[ "$3" == "CACHE" -o "$3" == "cache" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`) && ogMountCache >/dev/null
-[ "$3" == "REPO" -o "$3" == "repo" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}')
-ogEcho log session " $SIZEREQUIRED $SIZEFREE"
-[ $SIZEREQUIRED -gt $SIZEFREE ] && exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?)
TIMEAUX3=$[SECONDS-TIME2]
ogEcho log session " $MSG_SCRIPTS_TASK_END $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX3/60]m $[TIMEAUX3%60]s"
@@ -202,7 +175,6 @@ ogWaitSyncImage "$3" "$5" $DIFFTYPE "reduced" $SIZEREQUIRED || exit $(ogRaiseErr
echo " " > $OGLOGCOMMAND
# Comprobamos que la imagen esta bien
ogEcho log session "[95] $MSG_HELP_ogCheckSyncImage"
-sleep 10
ogCheckSyncImage $3 "$5" diff || exit $(ogRaiseError session $OG_ERR_IMAGE "$3 $5 diff"; echo $?)
#resumen de la operacion
diff --git a/client/shared/scripts/createImage b/client/shared/scripts/createImage
index 50ef1768..a43c01ba 100755
--- a/client/shared/scripts/createImage
+++ b/client/shared/scripts/createImage
@@ -91,25 +91,15 @@ if [ -f "$IMGFILE" ]; then
mv "$IMGFILE.sum" "$IMGFILE.sum.ant" 2>/dev/null
fi
-#Comprobar espacio que requerira la imagen para ser almacenada
echo " " > $OGLOGCOMMAND
-if ogMount $1 $2 &>/dev/null
-then
- SIZEDATA=$(df -k | grep $PART | awk '{print $3}')
- #Aplicar factor de compresion
- FACTORGZIP=55/100
- FACTORLZOP=65/100
- let SIZEREQUIRED=$SIZEDATA*$FACTORLZOP
- #Comprobar espacio libre en el contenedor.
- [ "${3^^}" == "CACHE" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`)
- [ "${3^^}" == "REPO" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}')
-else
- ogRaiseError $OG_ERR_PARTITION "$1 $2"
- exit $?
-fi
+# Borramos ficheros de paginacion y configuracion
+ogCleanOs $1 $2
+
+#Comprobar espacio que requerira la imagen para ser almacenada
+read SIZEDATA SIZEREQUIRED ISENOUGHSPACE <<< $(ogGetSizeParameters $1 $2 "$3" ; echo $?)
-ogEcho log session "[16] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE"
-[ "$SIZEREQUIRED" -gt "$SIZEFREE" ] && exit $(ogRaiseError $OG_ERR_CACHESIZE "$3" || echo $?)
+ogEcho log session "[16] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED"
+[ "$ISENOUGHSPACE" == "TRUE" ] || exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?)
# Ejecuta script personalizado de preconfiguración del sistema operativo modelo.
if which createImageCustomPre &>/dev/null; then