diff options
Diffstat (limited to 'client/engine/Net.lib')
-rwxr-xr-x | client/engine/Net.lib | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/client/engine/Net.lib b/client/engine/Net.lib index f76dcc11..17c932d2 100755 --- a/client/engine/Net.lib +++ b/client/engine/Net.lib @@ -10,8 +10,65 @@ #/** +# ogChangeRepo IPREPO [ OgUnit ] +#@brief Cambia el repositorio para el recurso remoto images. +#@param 1 Ip Repositorio +#@param 2 Abreviatura Unidad Organizativa +#@return Cambio recurso remoto en OGIMG. +#@version 1.1 - Primera versión para OpenGnSys. +#@author Irina Gomez, ETSII Universidad de Sevilla +#@date 2015-06-16 +#*/ +function ogChangeRepo { +local SRCIMG NEWREPO REPO OGUNIT + +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME IPREPO [ OgUnit ]" \ + "$FUNCNAME 10.1.120.3" \ + "$FUNCNAME 10.1.120.3 cdc" + return +fi + + +if [ $# -lt 1 ]; then + ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $FUNCNAME IPREPO [ OgUnit ]" + return $? +fi + + +# Si REPO tomamos el repositorio y la unidad organizativa actual +REPO=$(ogGetRepoIp) +OGUNIT="$(df | awk -F " " '/oglog/ {sub("//.*/oglog","",$1); sub("/","",$1); print $1}')" + +# Parametros de entrada. Si $1 = "REPO" dejo el repositorio actual +[ "${1^^}" == "REPO" ] && NEWREPO="$REPO" || NEWREPO="${1}" + +# Si $1 y $2 son el repositorio y la OU actual me salgo +[ "$NEWREPO" == "$REPO" ] && [ "$2" == "$OGUNIT" ] && return 0 + +source /scripts/functions +source /scripts/ogfunctions +umount $OGIMG +[ "$2" == "" ] && SRCIMG="ogimages" || SRCIMG="ogimages/$2" +eval $(grep "OPTIONS=" /scripts/ogfunctions) +[ "$ogactiveadmin" == "true" ] && RW=",rw" || RW=",ro" + +ogEcho session log "$MSG_HELP_ogChangeRepo $NEWREPO ${2%/}" +ogConnect $NEWREPO $ogprotocol $SRCIMG $OGIMG $RW + +# Si da error volvemos a montar el inicial +if [ $? -ne 0 ]; then + ogConnect $REPO $ogprotocol $SRCIMG $OGIMG $RW + ogRaiseError session $OG_ERR_REPO "$NEWREPO" + return $? +fi + +} + + +#/** # ogGetGroupDir [ str_repo ] -#@brief Devuelve el cmaino del directorio para el grupo del cliente. +#@brief Devuelve el camino del directorio para el grupo del cliente. #@param str_repo repositorio de imágenes (opcional) #@return path_dir - Camino al directorio del grupo. #@note repo = { REPO, CACHE } REPO por defecto @@ -41,6 +98,8 @@ if [ -n "$GROUP" ]; then DIR=$(ogGetPath "$REPO" "/groups/$GROUP" 2>/dev/null) [ -d "$DIR" ] && echo "$DIR" fi +# Para que no haya error al fallar la condición anterior +return 0 } |