summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xclient/engine/Net.lib16
-rwxr-xr-xclient/engine/System.lib1
-rw-r--r--client/shared/etc/lang.ca_ES.conf1
-rw-r--r--client/shared/etc/lang.en_GB.conf1
-rw-r--r--client/shared/etc/lang.es_ES.conf1
-rwxr-xr-xclient/shared/etc/preinit/loadenviron.sh1
6 files changed, 18 insertions, 3 deletions
diff --git a/client/engine/Net.lib b/client/engine/Net.lib
index a9c75a21..7e93e90d 100755
--- a/client/engine/Net.lib
+++ b/client/engine/Net.lib
@@ -39,17 +39,27 @@ REPO="${1^^}"
# Si REPO tomamos el valor por defecto.
[ "$REPO" == "REPO" ] && REPO=$ogrepo
+OLDREPO=$(ogGetRepoIp)
+# Si $1 y $2 son el repositorio y la OU actual me salgo
+[ "$REPO" == "$OLDREPO" ] && [ "$2" == "$ogunit" ] && return 0
+
source /scripts/functions
source /scripts/ogfunctions
-# Si $1 y $2 son el repositorio y la OU actual me salgo
-[ "$REPO" == "$(ogGetRepoIp)" ] && [ "$2" == "$ogunit" -o "$2" == "" ] && return 0
umount $OGIMG
[ "$2" == "" ] && SRCIMG="ogimages" || SRCIMG="ogimages/$2"
eval $(grep "OPTIONS=" /scripts/ogfunctions)
[ "$ogactiveadmin" == "true" ] && RW=",rw" || RW=",ro"
-echo "$MSG_HELP_ogChangeRepo $REPO"
+
+ogEcho session log "$MSG_HELP_ogChangeRepo $REPO"
ogConnect $REPO $ogprotocol $SRCIMG $OGIMG $RW
+# Si da error volvemos a montar el inicial
+if [ $? -ne 0 ]; then
+ ogConnect $OLDREPO $ogprotocol $SRCIMG $OGIMG $RW
+ ogRaiseError session $OG_ERR_REPO "$REPO"
+ return $?
+fi
+
}
diff --git a/client/engine/System.lib b/client/engine/System.lib
index 13183a6a..5ba71899 100755
--- a/client/engine/System.lib
+++ b/client/engine/System.lib
@@ -207,6 +207,7 @@ case "$CODE" in
$OG_ERR_LOCKED) MSG="$MSG_ERR_LOCKED \"$2\"" ;;
$OG_ERR_CACHE) MSG="$MSG_ERR_CACHE \"$2\"" ;;
$OG_ERR_NOGPT) MSG="$MSG_ERR_NOGPT \"$2\"" ;;
+ $OG_ERR_REPO) MSG="$MSG_ERR_REPO \"$2\"" ;;
$OG_ERR_FILESYS) MSG="$MSG_ERR_FILESYS \"$2\"" ;;
$OG_ERR_IMAGE) MSG="$MSG_ERR_IMAGE \"$2\"" ;;
$OG_ERR_NOTOS) MSG="$MSG_ERR_NOTOS \"$2\"" ;;
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf
index 79cc9780..3faf964f 100644
--- a/client/shared/etc/lang.ca_ES.conf
+++ b/client/shared/etc/lang.ca_ES.conf
@@ -9,6 +9,7 @@ MSG_ERR_PARTITION="Partición errónea o desconocida"
MSG_ERR_LOCKED="Recurso bloqueado por operación de uso exclusivo"
MSG_ERR_CACHE="Error en partición de caché local"
MSG_ERR_NOGPT="El disco indicado no contiene una particion GPT"
+MSG_ERR_REPO="Error al montar el repositorio de imágenes"
MSG_ERR_FILESYS="Sistema de archivos desconocido o no se puede montar"
MSG_ERR_NOTOS="Sistema operativo no detectado o no se puede iniciar"
MSG_ERR_IMAGE="No se puede crear o restaurar una image de sistema"
diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf
index ff8e50c1..eb2e1176 100644
--- a/client/shared/etc/lang.en_GB.conf
+++ b/client/shared/etc/lang.en_GB.conf
@@ -9,6 +9,7 @@ MSG_ERR_PARTITION="Unknown or missing partition"
MSG_ERR_LOCKED="Resource locked by an operation"
MSG_ERR_CACHE="Local cache error"
MSG_ERR_NOGPT="The current disc does not contain a GPT partition"
+MSG_ERR_REPO="Error al montar el repositorio de imágenes"
MSG_ERR_FILESYS="Unknown or unmounted filesystem"
MSG_ERR_NOTOS="Cannot detect or boot the operating system"
MSG_ERR_IMAGE="Cannot create or cannot restore an image"
diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf
index c15ea548..c501ba5e 100644
--- a/client/shared/etc/lang.es_ES.conf
+++ b/client/shared/etc/lang.es_ES.conf
@@ -9,6 +9,7 @@ MSG_ERR_PARTITION="Partición errónea o desconocida"
MSG_ERR_LOCKED="Recurso bloqueado por operación de uso exclusivo"
MSG_ERR_CACHE="Error en partición de caché local"
MSG_ERR_NOGPT="El disco indicado no contiene una partición GPT"
+MSG_ERR_REPO="Error al montar el repositorio de imágenes"
MSG_ERR_FILESYS="Sistema de archivos desconocido o no se puede montar"
MSG_ERR_NOTOS="Sistema operativo no detectado o no se puede iniciar"
MSG_ERR_IMAGE="No se puede crear o restaurar una image de sistema"
diff --git a/client/shared/etc/preinit/loadenviron.sh b/client/shared/etc/preinit/loadenviron.sh
index b165ecfd..d5b218be 100755
--- a/client/shared/etc/preinit/loadenviron.sh
+++ b/client/shared/etc/preinit/loadenviron.sh
@@ -116,6 +116,7 @@ export OG_ERR_OUTOFLIMIT=19 # Valor fuera de rango o no válido.
export OG_ERR_FILESYS=20 # Sistema de archivos desconocido o no se puede montar
export OG_ERR_CACHE=21 # Error en partición de caché local
export OG_ERR_NOGPT=22 # El disco indicado no contiene una particion GPT
+export OG_ERR_REPO=23 # Error al montar el repositorio de imagenes
export OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen
export OG_ERR_UPDATECACHE=31 # Error al realizar el comando updateCache