summaryrefslogtreecommitdiffstats
path: root/client/shared/scripts/ogCrearImagenBasica
blob: c4f622c4029293119788407e88ed5ea7e38f49a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#!/bin/bash
#___________________________________________________________________
#
#  CREAR IMAGEN BÁSICA
#___________________________________________________________________
#
# Parámetros recibidos desde el cliente:
#
# $1 Número de disco
# $2 Número de particion
# $3 Nombre canónico de la imagen básica (sin extensión)
# $4 Dirección del repositorio 
# $5 Es una cadena "nnn" tipo flags que codifica varios parametros.
#		Tiene el formato "nnn" donde "n" vale 0 ó 1.	
#		1XX: Gestionar fichero completo en lugar de diferencas
#		X1X: Eliminar archivos de la imagen que no estén en la partición 
#		XX1: Comprimir archivos para enviarlos por la red
#		El valor X indica que no importa el valor que tenga el dato
# $6 Es una cadena "nnnn" tipo flags que codifica varios parametros.
#		Tiene el formato "nnnn" donde "n" vale 0 ó 1.	
#		1XXX: Borrar la imagen del repositorio antes de crearla
#		X1XX: Copiar Imagen básica también a la cache 
#		XX1X: Borrar previamente la imagen de la cache antes de copiarla
#		XXX1: No borrar archivos en destino
#		El valor X indica que no importa el valor que tenga el dato
# $7 Método de syncronización 1=Sincronización1  2=Sincronizacion2
# $8 Ruta de origen de la Imagen (Carpeta)


#___________________________________________________________________
#
# Control parámetros
#___________________________________________________________________

	PROG="$(basename $0)"
	if [ $# -lt 7 ]; then
		usage=" ndisco nparticion nombre_imagen_basica ip_repositorio"
		usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen"
		ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
		exit $?
	fi
	
	DISCO=$1
	NPART=$2
	NOMBREIMG=$3
	IPREPOSITORIO=$4
	
	flag=$5
	echo "flah:$flag">/tmp/log
	WHLFILE=${flag:0:1}
	RMVFILE=${flag:1:1}
	CMPFILE=${flag:2:1}
	
	flag=$6
	echo "flah:$flag">/tmp/log
	BORRARIMG=${flag:0:1}
	COPIACACHE=${flag:1:1}
	BORRACACHE=${flag:2:1}
	NOBORRACHIVOS=${flag:3:1}
	
	RUTAORIGEN=$8
#___________________________________________________________________
#
# Variables y configuración logs
#___________________________________________________________________
	
	source /opt/opengnsys/scripts/ImagenesSincronizadas.lib 

#___________________________________________________________________
#
# Activa navegador para ver progreso
#___________________________________________________________________

	coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
#___________________________________________________________________
#
# Proceso
#___________________________________________________________________

  echo "Creacion de imagen basica..." | tee -a $OGLOGSESSION $OGLOGFILE

	ORIGEN=$PARTICION$RUTAORIGEN/	
	DESTINO="$REPOSITORIO/$NOMBREIMG/"
	
	# Borrado previo de imagen en repositorio
	if [ $BORRARIMG -eq 1 ]; then
	   echo "Borrando previamente imagen del repositorio" | tee -a $OGLOGSESSION $OGLOGFILE
	fi
	
	## Marca de localizacion Repositorio
	FILE_IMG=".marcimg"
	MARCA=$ORIGEN$FILE_IMG
	## Marca de localizacion Repositorio en Imagen
	if [[ ! -f $MARCA  ]]; then
		##echo "Creando Marca Repositorio en Imagen $MARCA"  | tee -a $OGLOGSESSION $OGLOGFILE
		touch $MARCA
	fi
	
	# Creación de la imagen básica
	echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
	crearListaAcl $ORIGEN $DESTINO $SISTEMAFICHERO $DISCO $NPART	
	crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
	RETVAL=$?	
	if [ $RETVAL -ne 0 ]; then
		 kill $COPROC_PID
	   exit $OG_ERR_IMAGE
	fi	

	echo "!!! Finaliza correctamente !!! la creacion de imagen básica $NOMBREIMG entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE

	# Copia opcional a la caché
	if [ $COPIACACHE -eq 1 ]; then
		echo "Copiando imagen a cache" | tee -a $OGLOGSESSION $OGLOGFILE
		CACHE=$(montaCache)
		if [ -z $CACHE ]; then
			echo "No se ha podido copiar la imagen a la cache" | tee -a $OGLOGSESSION $OGLOGFILE
			kill $COPROC_PID
      exit $OG_ERR_NOTCACHE
		fi			

		# Borrar imagen de la caché
		if [ $BORRACACHE -eq 1 ]; then
			echo "Borrando imagen $NOMBREIMG de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
		    rm -R $CACHE$OGIMG/$NOMBREIMG
		fi	

		# Redefinir destino	
		DESTINO="$CACHE$OGIMG/$NOMBREIMG/"
		
		## Marca de localizacion Repositorio
		FILE_IMG=".marcimg"
		MARCA=$ORIGEN$FILE_IMG
		## Marca de localizacion Repositorio en Imagen
		if [[ ! -f $MARCA  ]]; then
			##echo "Creando Marca Repositorio en Imagen $MARCA"  | tee -a $OGLOGSESSION $OGLOGFILE
			touch $MARCA
		fi

		echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
	
		crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2
		
		RETVAL=$?	
		if [ $RETVAL -ne 0 ]; then
			 kill $COPROC_PID
		   exit $OG_ERR_IMAGE
		fi	
		echo "!!! Finaliza correctamente !!! la copia de imagen basica $NOMBREIMG a la cache" | tee -a $OGLOGSESSION $OGLOGFILE		
  fi	

	eliminaListaAcl $ORIGEN $SISTEMAFICHERO	
	## Eliminar Marca Repositorio
	rm $MARCA
	
	#comprimeImagen  $NOMBREIMG 
	RETVAL=$?	
	if [ $RETVAL -ne 0 ]; then
		 kill $COPROC_PID
	   exit $OG_ERR_IMAGE
	fi		
#___________________________________________________________________
#
# Retorno
#___________________________________________________________________

	kill $COPROC_PID
	exit 0