source: client/shared/scripts/restoreImage @ 8883aa5

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 8883aa5 was dc157ae, checked in by irina <irinagomez@…>, 9 years ago

#678 Unidades organizativas separadas: script de restauración

git-svn-id: https://opengnsys.es/svn/branches/version1.1@4755 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 3.6 KB
Line 
1#!/bin/bash
2#/**
3#@file    restoreImage
4#@brief   Script de ejemplo para restaurar una imagen.
5#@param   $1 Repositorio (CACHE, REPO o dirección IP)
6#@param   $2 Nombre canónico de la imagen (sin extensión)
7#@param   $3 Número de disco
8#@param   $4 Número de particion
9#@param   $5 Protocolo (UNICAST, UNICAST-DIRECT, MULTICAST o MULTICAST-DIRECT)
10#@param   $6 Opciones del protocolo
11#@exception OG_ERR_FORMAT   1 formato incorrecto.
12#@exception OG_ERR_NOTFOUND  2 cambio de repositorio: repositorio no encontrado
13#@exception OG_ERR_NOTFOUND  2 fichero de imagen o partición no detectados.
14#@version 1.1 - Cambio de repositorio para el recurso remoto images si es necesario
15#@author  Irina Gomez, ETSII Universidad de Sevilla
16#@date    2015-06-16
17#**/
18
19TIME1=$SECONDS
20PROG="$(basename $0)"
21if [ $# -lt 4 ]; then
22    ogRaiseError session $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO|CACHE imagen ndisco nparticion [ UNICAST|MULTICAST opciones protocolo]"
23    exit $?
24fi
25
26#Load engine configurator from engine.cfg file.
27#Carga el configurador del engine desde el fichero engine.cfg
28# Valores por defecto: #IMGPROG="partclone" ; #IMGCOMP="lzop" ; #IMGEXT="img" #IMGREDUCE="TRUE"
29[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
30
31# Clear temporary file used as log track by httpdlog
32# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
33echo " " > $OGLOGCOMMAND
34[ "$(ogGetCaller)" == "deployImage" ] || echo -n "" > $OGLOGSESSION;
35
36ogEcho log session "[1] $MSG_SCRIPTS_START $0 $*"
37
38# Procesar parámetros de entrada
39REPO="${1^^}"
40IMGNAME="$2"
41DISK="$3"
42PART="$4"
43PROTO="${5^^}"
44PROTO=${PROTO:-"UNICAST"}
45PROTOOPT="$6"
46IMGTYPE="${IMGTYPE:-"img"}"
47
48# Unidad organizativa
49[ "$ogunit" != "" ] && OGUNIT="$ogunit/"
50
51# Si es una ip y es igual a la del equipo restaura desde cache
52[ "$REPO" == "$(ogGetIpAddress)" ] && REPO="CACHE"
53# Si es una ip y es distinta a la del recurso samba cambiamos de REPO.
54ogCheckIpAddress $REPO
55if [ $? == 0 -o $REPO == "REPO" ] ; then
56        # Si falla el cambio -> salimos con error repositorio no valido
57        ogChangeRepo $REPO ${OGUNIT%/} || exit $(ogRaiseError $OG_ERR_NOTFOUND '$REPO $OGUNIT'; echo $?)
58        REPO="REPO"
59fi
60
61# Comprobar que existe la imagen del origen.
62IMGFILE=$(ogGetPath "$REPO" "$IMGNAME.$IMGTYPE")
63IMGDIR=$(ogGetParentPath "$REPO" "$IMGNAME")
64if [ "$IMGFILE" == "" -o "$IMGDIR" == "" ]; then
65        ogRaiseError session $OG_ERR_NOTFOUND "$REPO, ${IMGNAME%/*}"
66        exit $?
67fi
68
69# Procesar protocolos de transferencia.
70case "$PROTO" in
71    UNICAST|UNICAST-DIRECT)
72        # Restaurar la imagen.
73        ogEcho log session "[40] ogRestoreImage $REPO $IMGNAME $DISK $PART UNICAST"
74        ogExecAndLog command ogRestoreImage "$REPO" "$IMGNAME" "$DISK" "$PART"
75        RETVAL=$?
76        ;;
77    MULTICAST|MULTICAST-DIRECT)
78        PORT=$(echo $PROTOOPT | cut -f1 -d":")
79        TOOL=$(ogGetImageProgram REPO $IMGNAME)
80        COMPRESS=$(ogGetImageCompressor REPO $IMGNAME)
81        #TODO comprobar parametros anteriores
82        ogEcho log session "[40] ogMcastReceiverPartition $DISK $PART $PORT $TOOL $COMPRESS"
83        ogMcastRequest "$OGUNIT$IMGNAME.img" "$PROTOOPT"
84        ogExecAndLog command ogMcastReceiverPartition "$DISK" "$PART" "$PORT" "$TOOL" "$COMPRESS"
85        RETVAL=$?
86        ;;
87    *)  # Protocolo desconocido.
88        ogRaiseError session $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO|CACHE imagen ndisco nparticion [ UNICAST|MULTICAST opciones ]"
89        exit $?
90esac
91
92TIME=$[SECONDS-TIME1]
93ogEcho log session "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s"
94
95# Código de salida del comando prinicpal de restauración.
96exit $RETVAL
97
Note: See TracBrowser for help on using the repository browser.