summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradv <adv@uma.es>2011-04-25 07:22:52 +0000
committeradv <adv@uma.es>2011-04-25 07:22:52 +0000
commit5b82964bcca3f5e86b036235ca41c41e205d24e7 (patch)
treea0549c62cc56049189a93c1dfb3d16f769e42694
parent0b43097f34c76b445897444b2c9b284d5a190e64 (diff)
trunk #384 #315 se gestiona desde asistente Clonacion particiones remotas el cambio de rol de cliente a Master para enviar ficheros-imagen al aula. El origen del fichero-imagen puede ser cache, o repo.
git-svn-id: https://opengnsys.es/svn/trunk@1892 a21b9725-9963-47de-94b9-378ad31fedc9
-rw-r--r--admin/WebConsole/asistentes/xajax.server.php2
-rwxr-xr-xclient/engine/Protocol.lib89
-rwxr-xr-xclient/shared/scripts/cloneRemoteFromMaster17
3 files changed, 101 insertions, 7 deletions
diff --git a/admin/WebConsole/asistentes/xajax.server.php b/admin/WebConsole/asistentes/xajax.server.php
index 23ca9a53..f7efb0c7 100644
--- a/admin/WebConsole/asistentes/xajax.server.php
+++ b/admin/WebConsole/asistentes/xajax.server.php
@@ -91,7 +91,7 @@ where repositorios.idrepositorio=(select idrepositorio from ordenadores where or
if($cantRegistros>0){
$rs->Primero();
while (!$rs->EOF){
- $SelectHtml.='<OPTION value=" CACHE /'.$rs->campos["nombreca"].'"';
+ $SelectHtml.='<OPTION value=" REPO /'.$rs->campos["nombreca"].'"';
$SelectHtml.='>';
$SelectHtml.='IMG-REPO: ' . $rs->campos["nombreca"].'</OPTION>';
$rs->Siguiente();
diff --git a/client/engine/Protocol.lib b/client/engine/Protocol.lib
index 85cea42b..098ab48c 100755
--- a/client/engine/Protocol.lib
+++ b/client/engine/Protocol.lib
@@ -8,6 +8,9 @@
#@warning License: GNU GPLv3+
#*/
+
+##################### FUNCIONES UNICAST ################
+
#/**
# ogUcastSyntax
#@brief Función para generar la instrucción de transferencia de datos unicast
@@ -27,7 +30,7 @@
#*/ ##
-##################### FUNCIONES UNICAST ################
+
function ogUcastSyntax ()
{
@@ -123,10 +126,10 @@ SENDPARTITION)
echo "$SYNTAXCLIENT | $COMPRESSOR | $TOOLS "
;;
SENDFILE)
- echo "$SYNTAXSERVER --file $3"
+ echo "$SYNTAXSERVER -i $3"
;;
RECEIVERFILE)
- echo "$SYNTAXCLIENT --file $3"
+ echo "$SYNTAXCLIENT -i $3"
;;
*)
;;
@@ -238,6 +241,86 @@ fi
#/**
+# ogUcastSendFile [ str_repo | int_ndisk int_npart ] /Relative_path_file sessionMulticast
+#@brief Envía un fichero por unicast ORIGEN(fichero) DESTINO(sessionmulticast)
+#@param (2 parámetros) $1 path_aboluto_fichero $2 sesionMcast
+#@param (3 parámetros) $1 Contenedor REPO|CACHE $2 path_absoluto_fichero $3 sesionMulticast
+#@param (4 parámetros) $1 disk $2 particion $3 path_absoluto_fichero $4 sesionMulticast
+#@return
+#@exception OG_ERR_FORMAT formato incorrecto.
+#@exception $OG_ERR_NOTFOUND
+#@exception OG_ERR_UCASTSENDFILE
+#@note Requisitos:
+#@version 1.0 - Definición de Protocol.lib
+#@author Antonio Doblas Viso, Universidad de Málaga
+#@date 2010/05/09
+#*/ ##
+#
+
+function ogUcastSendFile ()
+{
+# Variables locales.
+local ARGS SOURCE TARGET COMMAND DEVICE RETVAL LOGFILE
+
+
+#ARGS usado para controlar ubicación de la sesion multicast
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME [str_REPOSITORY] [int_ndisk int_npart] /Relative_path_file sesionMcast(puerto:ip:ip:ip)" \
+ "$FUNCNAME 1 1 /aula1/winxp.img 8000:172.17.36.11:172.17.36.12" \
+ "$FUNCNAME REPO /aula1/ubuntu.iso sesionUcast" \
+ "$FUNCNAME CACHE /aula1/winxp.img sesionUcast" \
+ "$FUNCNAME /opt/opengnsys/images/aula1/hd500.vmx sesionUcast"
+ return
+fi
+
+ARGS="$@"
+case "$1" in
+ /*) # Camino completo. */ (Comentrio Doxygen)
+ SOURCE=$(ogGetPath "$1")
+ ARG=2
+ DEVICE="$1"
+ ;;
+ [1-9]*) # ndisco npartición.
+ SOURCE=$(ogGetPath "$1" "$2" "$3")
+ ARG=4
+ DEVICE="$1 $2 $3"
+ ;;
+ *) # Otros: repo, cache, cdrom (no se permiten caminos relativos).
+ SOURCE=$(ogGetPath "$1" "$2")
+ ARG=3
+ DEVICE="$1 $2 "
+ ;;
+esac
+
+
+# Error si no se reciben los argumentos ARG necesarios según la opcion.
+[ $# == "$ARG" ] || ogRaiseError $OG_ERR_FORMAT || return $?
+
+# Comprobar fichero origen
+ogGetPath $SOURCE &> /dev/null || ogRaiseError $OG_ERR_NOTFOUND " device or file $DEVICE not found" || return $?
+
+
+
+SESSION=${!ARG}
+
+#generamos la instrucción a ejecutar.
+COMMAND=`ogUcastSyntax "SENDFILE" "$SESSION" "$SOURCE"`
+RETVAL=$?
+
+if [ "$RETVAL" -gt "0" ]
+then
+ return $RETVAL
+else
+ echo $COMMAND
+ eval $COMMAND || ogRaiseError $OG_ERR_UCASTSENDFILE " "; return $?
+fi
+
+}
+
+
+
+#/**
# ogMcastSyntax
#@brief Función para generar la instrucción de ejucción la transferencia de datos multicast
#@param 1 Tipo de operación [ SENDPARTITION RECEIVERPARTITION SENDFILE RECEIVERFILE ]
diff --git a/client/shared/scripts/cloneRemoteFromMaster b/client/shared/scripts/cloneRemoteFromMaster
index 7fc94380..a7a5e11b 100755
--- a/client/shared/scripts/cloneRemoteFromMaster
+++ b/client/shared/scripts/cloneRemoteFromMaster
@@ -103,6 +103,7 @@ case $MASTERIP in
fi
echo $MODEMASTER
# Preparando instrucción del Master segun $MODEMASTER{SENDPARTITION SENDFILE}
+
case "$MODEMASTER" in
SENDPARTITION)
echo "[5] Master en modo $MODEMASTER: informacion inicial a los clientes-slaves"
@@ -152,12 +153,22 @@ case $MASTERIP in
REDSIZE=$(ogGetImageSize $2 $3)
echo "[25] Master en Modo $MODEMASTER: informacion de transferencia a los clientes-slaves $PROTOCOL $TOOLCLONE $COMPRESOR $REDSIZE"
faucet 4000 --out echo "READY $TOOLCLONE $COMPRESOR $REDSIZE" &
- echo "[29] ogMcastSendFile $2 $3.img $SESSIONMCASTSERVER "
- ogMcastSendFile $2 $3.img $SESSIONMCASTSERVER || RETVAL=$?
+ case $PROTOCOL in
+ MULTICAST|multicast)
+ echo "[29] ogMcastSendFile $2 $3.img $SESSIONMCASTSERVER "
+ ogMcastSendFile $2 $3.img $SESSIONMCASTSERVER || RETVAL=$?
+ ;;
+ UNICAST|unicast)
+ sleep 60
+ echo "[29] ogUcastSendFile $2 $3.img $SESSIONUCASTSERVER"
+ ogUcastSendFile $2 $3.img $SESSIONUCASTSERVER || RETVAL=$?
+ ;;
+ esac
pkill faucet
;;
esac
- exit $RETVAL
+ #exit $RETVAL
+ exit 0
# FIN Preparando instrucción del Master segun $MODEMASTER{SENDPARTITION SENDFILE}
;;
*)