source: admin/Interface/RestaurarImagen @ 905ea9e

Last change on this file since 905ea9e was 71643c0, checked in by ramon <ramongomez@…>, 13 years ago

Integrar versión 1.0.2 en rama trunk (modificar #464).

git-svn-id: https://opengnsys.es/svn/trunk@2404 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 4.4 KB
Line 
1#!/bin/bash
2#_______________________________________________________________________________________________________________________________
3#
4# PARAMETROS RECIBIDOS DESDE EL CLIENTE:
5# $1 disco
6# $2 par=N�mero de particion
7# $3 Nombre can�nico de la imagen
8# $4 Direcci�n IP del repositorio
9# $5 Protocolo  UNICAST  MULTICAST  TORRENT
10# $6 Opciones del protocolo
11#_______________________________________________________________________________________________________________________________
12
13#Descripcion:
14# La interfaz detecta:
15#    Si Repositorio es el global (REPO) realiza un deploy.
16#    Si Repositorio es local (CACHE) realiza un ogRestoreImage CACHE
17# El deploy, si detecta que el cliente no tiene una cache con espacio suficiente reazlia un ogRestore REPO
18
19#Códigos de error de ogRestoreImage
20#@exception OG_ERR_FORMAT   1 formato incorrecto.
21#@exception OG_ERR_NOTFOUND  2 fichero de imagen o partición no detectados.
22#@exception OG_ERR_PARTITION 3  # Error en partición de disco.
23#@exception OG_ERR_LOCKED    4 partición bloqueada por otra operación.
24#@exception OG_ERR_IMAGE    5 error al restaurar la imagen del sistema.
25#@exception OG_ERR_IMGSIZEPARTITION  30 Tamaño de la particion es menor al tamaño de la imagen.
26#@todo: el scripts restoreImage limitarlo a origen:fichero destino:particion
27#@version 1.0.1 - Separación en protocolos de transferencia y postconfiguracion
28#@author  Antonio J. Doblas Viso. Universidad de Málaga
29#@date   2011-05-11
30#@version 1.0.1 - Separación de los ficheros-log para ser gestionado por el httpd-log
31#@author Antonio J. Doblas Viso. Universidad de Málaga 
32#@date   2011-05-11
33
34
35TIME1=$SECONDS
36
37OGLOGSESSION="${OGLOGSESSION=:-/tmp/session.log}"
38OGLOGCOMMAND="${OGLOGCOMMAND=:-/tmp/command.log}"
39
40OGLOGSESSION="/tmp/session.log"
41OGLOGCOMMAND="/tmp/command.log"
42
43echo " " > $OGLOGSESSION
44echo " " > $OGLOGCOMMAND
45echo " " > ${OGLOGCOMMAND}.tmp
46# Registro de ejecución
47echo $* >> $OGLOGSESSION
48echo "$*" &>> $OGLOGSESSION | $(tail -n 1 $OGLOGSESSION >> $OGLOGFILE)
49
50
51echo "[1] Iniciando $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE
52
53# Si el origen(pariticion) esta bloqueada salir.
54
55echo "TODO comprobando si esta bloqueado el $1 $2" | tee -a $OGLOGSESSION $OGLOGFILE
56#if ogIsLocked $1 $2; then
57#       ogRaiseError $OG_ERR_LOCKED "$MSG_PARTITION, $1 $2"
58#       exit $?
59#fi
60
61# Valor por defecto para el repositorio.
62REPO=${4:-"REPO"}
63[ "$REPO" == "$(ogGetRepoIp)" ] && REPO="REPO"
64[ "$REPO" == "$(ogGetIpAddress)" ] && REPO="CACHE"
65[ "$REPO" == "CACHE" ] && REPO="CACHE"
66
67
68if [ "$REPO" == "CACHE" ]
69then
70        echo "[2] Iniciando un ogRestoreImage CACHE $3 $1 $2" | tee -a $OGLOGSESSION $OGLOGFILE
71        ogRestoreImage CACHE "$3" "$1" "$2" &>> $OGLOGCOMMAND
72        RETVAL=$?
73fi     
74
75
76
77if [ "$REPO" == "REPO" ]
78then
79        echo "[2] updateCache REPO \"/$3.img\" $5 $6"    | tee -a $OGLOGSESSION $OGLOGFILE
80        TIME2=$SECONDS
81        updateCache REPO "/$3.img" "$5" "$6"     &>> $OGLOGCOMMAND     
82        RETVAL=$?
83        TIME2=$[SECONDS-TIME2]
84        echo "   [ ] Duracion del subproceso updateCache $[TIME2/60]m $[TIME2%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
85        case $RETVAL in
86                0)
87                echo "[50] updateCache (correcto)" | tee -a $OGLOGSESSION $OGLOGFILE
88                echo "[55] Restaurando la imagen desde la cache con comando: ogRestoreImage CACHE $3 $1 $2 UNICAST" | tee -a $OGLOGSESSION $OGLOGFILE
89                TIME3=$SECONDS
90                ogRestoreImage CACHE "$3" "$1" "$2" &> $OGLOGCOMMAND     
91                RETVAL=$?
92                TIME3=$[SECONDS-TIME3]
93                echo "   [ ] Duracion del subproceso ogRestoreImage CACHE $[TIME3/60]m $[TIME3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
94                ;;
95                15)
96                echo "[50] updateCache(no hay CACHE); se realiza ogRestoreImage REPO $3 $1 $2 UNICAST"  | tee -a $OGLOGSESSION $OGLOGFILE
97                echo "[55] Se restaura la imagen directamente desde el REPO: ogRestoreImage REPO $3 $1 $2 UNICAST"  | tee -a $OGLOGSESSION $OGLOGFILE
98                TIME3=$SECONDS
99                ogRestoreImage REPO "$3" "$1" "$2" &> $OGLOGCOMMAND             
100                RETVAL=$?
101                ;;
102                16)
103                echo "[50] updateCache(no hay espacio sufiente en la CACHE), Se realiza ogRestoreImage REPO $3 $1 $2 UNICAST"  | tee -a $OGLOGSESSION $OGLOGFILE
104                TIME3=$SECONDS
105                ogRestoreImage REPO "$3" "$1" "$2" &> $OGLOGCOMMAND             
106                RETVAL=$?
107                TIME3=$[SECONDS-TIME3]
108                echo "   [ ] Duracion del subproceso ogRestoreImage REPO $[TIME3/60]m $[TIME3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
109                ;;
110        esac
111fi
112
113if [ $RETVAL == 0 ]
114then
115        echo "[90] Iniciando la Configuracion del Sistema Restaurado" | tee -a $OGLOGSESSION $OGLOGFILE
116        configureOs "$1" "$2"
117fi
118
119TIME=$[SECONDS-TIME1]
120echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
121
122
123exit $RETVAL
124
Note: See TracBrowser for help on using the repository browser.