diff options
author | irina <irinagomez@us.es> | 2015-06-16 12:31:40 +0000 |
---|---|---|
committer | irina <irinagomez@us.es> | 2015-06-16 12:31:40 +0000 |
commit | fe6843b59fa8ac9ce2e704443d2501ba172f4813 (patch) | |
tree | 06432dfe40b41831867f6a992385dd76c8d46162 /client/shared | |
parent | 7829e4e9833f433746363856d446d08a367beb0c (diff) |
#679 Cambio Repo: script de clonación y librerías de imagenes monolíticas comprobados con todos los protocolos
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4653 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/shared')
-rw-r--r-- | client/shared/etc/lang.ca_ES.conf | 1 | ||||
-rw-r--r-- | client/shared/etc/lang.en_GB.conf | 1 | ||||
-rw-r--r-- | client/shared/etc/lang.es_ES.conf | 1 | ||||
-rwxr-xr-x | client/shared/scripts/deployImage | 26 | ||||
-rwxr-xr-x | client/shared/scripts/restoreImage | 29 | ||||
-rwxr-xr-x | client/shared/scripts/updateCache | 18 |
6 files changed, 60 insertions, 16 deletions
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf index 24ca7798..ce7d082b 100644 --- a/client/shared/etc/lang.ca_ES.conf +++ b/client/shared/etc/lang.ca_ES.conf @@ -90,6 +90,7 @@ MSG_HELP_ogAddRegistryKey="Añade una nueva clave al registro de Windows." MSG_HELP_ogAddRegistryValue="Añade un nuevo valor al registro de Windows." MSG_HELP_ogBoot="Arranca un sistema operativo instalado." MSG_HELP_ogCalculateChecksum="Calcula la suma de comprobación (checksum) de un fichero." +MSG_HELP_ogChangeRepo="Cambia el repositorio para el recurso remoto images." 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." diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf index e3698328..5327eabb 100644 --- a/client/shared/etc/lang.en_GB.conf +++ b/client/shared/etc/lang.en_GB.conf @@ -90,6 +90,7 @@ MSG_HELP_ogAddRegistryKey="Add a new Windows registry key." MSG_HELP_ogAddRegistryValue="Add a new Windows registry value." MSG_HELP_ogBoot="Boot a installed operating system." MSG_HELP_ogCalculateChecksum="Calculate file checksum." +MSG_HELP_ogChangeRepo="Cambia el repositorio para el recurso remoto images." 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." diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf index b3c5b761..d7a2fa0d 100644 --- a/client/shared/etc/lang.es_ES.conf +++ b/client/shared/etc/lang.es_ES.conf @@ -90,6 +90,7 @@ MSG_HELP_ogAddRegistryKey="Añade una nueva clave al registro de Windows." MSG_HELP_ogAddRegistryValue="Añade un nuevo valor al registro de Windows." MSG_HELP_ogBoot="Arranca un sistema operativo instalado." MSG_HELP_ogCalculateChecksum="Calcula la suma de comprobación (checksum) de un fichero." +MSG_HELP_ogChangeRepo="Cambia el repositorio para el recurso remoto images." 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." diff --git a/client/shared/scripts/deployImage b/client/shared/scripts/deployImage index 3be16e92..821d1e3d 100755 --- a/client/shared/scripts/deployImage +++ b/client/shared/scripts/deployImage @@ -31,6 +31,9 @@ #@version 1.0.6 - Se añade la gestión de errores de la CACHE cuando en el engine.cfg se define RESTOREPROTOCOLNOCACHE=NONE. #@author Antonio J. Doblas Viso. #@date 2015-02-23 +#@version 1.1 - Cambio de repositorio para el recurso remoto images si es necesario +#@author Irina Gomez, ETSII Universidad de Sevilla +#@date 2015-06-16 #**/ @@ -77,17 +80,20 @@ ogEcho log session "$MSG_HELP_ogUnmount $DISK $PART" ogUnmount $DISK $PART 2>/dev/null # Valor por defecto para el repositorio. -[ "$REPO" == "$(ogGetRepoIp)" ] && REPO="REPO" -[ "$REPO" == "$(ogGetIpAddress)" ] && REPO="CACHE" +ogCheckIpAddress "$REPO" +[ $? == 0 -o "$REPO" == "REPO" ] && MODE="REPO" +[ "$REPO" == "$(ogGetIpAddress)" -o "$REPO" == "CACHE" ] && MODE="CACHE" +# Se comenta lo siguiente porque no se puede obtener antes de cambiar de repositorio +# Solo informativo, se comprueba en updateCache y restoreImage #Informacioin previa de la imagen -IMGOS=$(ogGetImageInfo `ogGetPath $REPO $IMGNAME.img`) || exit $(ogRaiseError session $OG_ERR_NOTFOUND "$REPO $2"; echo $?) -IMGSIZE=$(ls -s `ogGetPath $REPO $IMGNAME.img`| cut -f1 -d" ") +#IMGOS=$(ogGetImageInfo `ogGetPath $REPO $IMGNAME.img`) || exit $(ogRaiseError session $OG_ERR_NOTFOUND "$REPO $2"; echo $?) +#IMGSIZE=$(ls -s `ogGetPath $REPO $IMGNAME.img`| cut -f1 -d" ") -ogEcho log session "[1] REPO=$REPO IMG-FILE=$IMGNAME.img SIZE=$IMGSIZE (KB) METADATA=$IMGOS" +#ogEcho log session "[1] REPO=$REPO IMG-FILE=$IMGNAME.img SIZE=$IMGSIZE (KB) METADATA=$IMGOS" # Procesar repositorio. -case "$REPO" in +case "$MODE" in CACHE) # Repositorio en caché local. NEXTOPERATION=CACHE ;; @@ -102,9 +108,9 @@ case "$REPO" in # Si protocolo es torrent|torrent-cache o multicast|multicast-cache TORRENT|TORRENT-CACHE|MULTICAST|MULTICAST-CACHE|UNICAST|UNICAST-CACHE) - ogEcho log session "[2] updateCache REPO \"/$IMGNAME.img\" $PROTO $PROTOOPT" + ogEcho log session "[2] updateCache "$REPO" \"/$IMGNAME.img\" $PROTO $PROTOOPT" TIME2=$SECONDS - updateCache REPO "/$IMGNAME.img" "$PROTO" "$PROTOOPT" + updateCache "$REPO" "/$IMGNAME.img" "$PROTO" "$PROTOOPT" RETVAL=$? TIME2=$[SECONDS-TIME2] ogEcho log session " [ ] $MSG_SCRIPTS_TIME_PARTIAL updateCache $[TIME2/60]m $[TIME2%60]s" @@ -165,9 +171,9 @@ case "$NEXTOPERATION" in CACHE) PARAMS="CACHE $IMGNAME $DISK $PART" ;; UNICAST) - PARAMS="REPO $IMGNAME $DISK $PART" ;; + PARAMS="$REPO $IMGNAME $DISK $PART" ;; MULTICAST) - PARAMS="REPO $IMGNAME $DISK $PART $PROTO $PROTOOPT" ;; + PARAMS="$REPO $IMGNAME $DISK $PART $PROTO $PROTOOPT" ;; esac # Si existe, ejecuta script personalizado "restoreImageCustom"; si no, llama al genérico "restoreImage". diff --git a/client/shared/scripts/restoreImage b/client/shared/scripts/restoreImage index 6d5198aa..f0bda76a 100755 --- a/client/shared/scripts/restoreImage +++ b/client/shared/scripts/restoreImage @@ -1,6 +1,20 @@ #!/bin/bash -# Script de ejemplo para restaurar una imagen. -# (puede usarse como base para el programa de restauración de imágenes usado por OpenGNSys Admin). +#/** +#@file restoreImage +#@brief Script de ejemplo para restaurar una imagen. +#@param $1 Repositorio (CACHE, REPO o dirección IP) +#@param $2 Nombre canónico de la imagen (sin extensión) +#@param $3 Número de disco +#@param $4 Número de particion +#@param $5 Protocolo (UNICAST, UNICAST-DIRECT, MULTICAST o MULTICAST-DIRECT) +#@param $6 Opciones del protocolo +#@exception OG_ERR_FORMAT 1 formato incorrecto. +#@exception OG_ERR_NOTFOUND 2 cambio de repositorio: repositorio no encontrado +#@exception OG_ERR_NOTFOUND 2 fichero de imagen o partición no detectados. +#@version 1.1 - Cambio de repositorio para el recurso remoto images si es necesario +#@author Irina Gomez, ETSII Universidad de Sevilla +#@date 2015-06-16 +#**/ TIME1=$SECONDS PROG="$(basename $0)" @@ -30,6 +44,17 @@ PROTO="${5^^}" PROTO=${PROTO:-"UNICAST"} PROTOOPT="$6" IMGTYPE="${IMGTYPE:-"img"}" + +# Si es una ip y es igual a la del equipo restaura desde cache +[ "$REPO" == "$(ogGetIpAddress)" ] && REPO="CACHE" +# Si es una ip y es distinta a la del recurso samba cambiamos de REPO. +ogCheckIpAddress $REPO +if [ $? == 0 -o $REPO == "REPO" ] ; then + # Si falla el cambio -> salimos con error repositorio no valido + ogChangeRepo $REPO || exit $(ogRaiseError $OG_ERR_NOTFOUND '$REPO'; echo $?) + REPO="REPO" +fi + # Comprobar que existe la imagen del origen. IMGFILE=$(ogGetPath "$REPO" "$IMGNAME.$IMGTYPE") IMGDIR=$(ogGetParentPath "$REPO" "$IMGNAME") diff --git a/client/shared/scripts/updateCache b/client/shared/scripts/updateCache index 8760ddd2..03cc4234 100755 --- a/client/shared/scripts/updateCache +++ b/client/shared/scripts/updateCache @@ -27,7 +27,9 @@ #@date 2013-02-20 #@version 1.0.5 - uso de md5 full para las transferencias torrent, en la llamada => ogUpdateCacheIsNecesary #@date 2014-07-09 - +#@version 1.1 - Cambio de repositorio para el recurso remoto images si es necesario +#@author Irina Gomez, ETSII Universidad de Sevilla +#@date 2015-06-16 #*/ ## PROG="$(basename $0)" @@ -47,6 +49,13 @@ echo " " > $OGLOGCOMMAND REPOSITORIO="${1^^}" PROTOCOLO="${3^^}" OPTPROTOCOLO="$4" +# Si es una ip y es distinta a la del recurso samba cambiamos de REPO. +ogCheckIpAddress $REPOSITORIO +if [ $? == 0 -o $REPOSITORIO == "REPO" ] ; then + # Si falla el cambio -> salimos con error repositorio no valido + ogChangeRepo $REPOSITORIO || exit $(ogRaiseError $OG_ERR_NOTFOUND $REPOSITORIO; echo $?) + REPOSITORIO="REPO" +fi REPOIP=$(ogGetRepoIp) ogEcho log session $REPOSITORIO $REPOIP $PROTOCOLO $OPTPROTOCOLO @@ -75,7 +84,7 @@ else # Si la imagen es monolitica y ha elegido protocolo = RSYNC salimos con error. [ $PROTOCOLO == "RSYNC" ] && exit $(ogRaiseError session $OG_ERR_DONTSYNC_IMAGE "REPO $2"; echo $?) IMGSYNC=FALSE - ogUpdateCacheIsNecesary "$1" "$2" "$PROTOCOLO" + ogUpdateCacheIsNecesary "$REPOSITORIO" "$2" "$PROTOCOLO" RETVAL=$? fi # si RETVAL=0 => actualizamos si RETVAL=1 no actaulizasmo-exit 0 || si RETVAL>2 exit 1 @@ -174,7 +183,7 @@ TIME1=$SECONDS case "$PROTOCOLO" in TORRENT) - ogEcho log session "ogCopyFile $1 $2.torrent absolute $OGCAC/$OGIMG" + ogEcho log session "ogCopyFile $REPOSITORIO $2.torrent absolute $OGCAC/$OGIMG" # tiempos timewait=$(expr $(printf '%d\n' 0x$(ogGetMacAddress | awk -F: '{print $5$6}')) \* 120 / 65535) ogExecAndLog command ogCopyFile $REPOSITORIO "$2.torrent" "$IMGDIR" @@ -273,7 +282,8 @@ case "$PROTOCOLO" in [ ${PIPESTATUS[0]} -eq 0 ] && RETVAL="1"|| RETVAL="2" # Desmonto las imagenes ogUnmountImage CACHE "$IMGNAME" $IMGTYPE - ogUnmountImage REPO "$IMGNAME" $IMGTYPE + ogUnmountImage REPO "$IMGNAME" $IMGTYPE + ogUnlockImage CACHE "$2" fi ;; esac |