summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralbertogp <albertogp@uma.es>2013-07-18 14:13:17 +0000
committeralbertogp <albertogp@uma.es>2013-07-18 14:13:17 +0000
commit5b521cbaff9f95942e15c4281046ea5ff86a62ea (patch)
tree34975f961331091a89efa00684cfd4e7ea04f9aa
parente540f57b71aff7b4589aeb06bac21f823d5cd025 (diff)
branches-version1.0
EliminarImagenRepositorio #564 Añadiendo funciones en fichero deleteimage Creando fichero deletepreimage git-svn-id: https://opengnsys.es/svn/branches/version1.0@4000 a21b9725-9963-47de-94b9-378ad31fedc9
-rwxr-xr-xrepoman/bin/deleteimage63
-rw-r--r--repoman/bin/deletepreimage37
2 files changed, 86 insertions, 14 deletions
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage
index 67a3e88c..e66243ed 100755
--- a/repoman/bin/deleteimage
+++ b/repoman/bin/deleteimage
@@ -1,12 +1,13 @@
#!/bin/bash
-# deleteimage [ -b | -r ] str_image
+# deleteimage [ -b | -r | i ] str_image
#@file deleteimage
#@brief Borra del repositorio los ficheros de una imagen.
#@param -b Elimina también la copia de seguridad de la imagen (opcional).
#@param -r Recupera la copia de seguridad de la imagen (opcional).
+#@param -i Elimina imagen Incremental o Basica
#@param str_image Nombre canónico de la imagen, sin extensión.
-#@version 1.0
-#@date 2012-10-14
+#@version 1.2
+#@date 2013-07-17
#@author Ramón Gómez, ETSII Univ. Sevilla
@@ -15,39 +16,37 @@ OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
OGIMG=$OPENGNSYS/images
IMGEXT="img"
BAKEXT="ant"
-
+DIFFEXT="diff"
+
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
cat << EOT
$PROG: Borra los ficheros de una imagen del repositorio.
-Formato: $PROG [ -b | -r ] str_image
+Formato: $PROG [ -b | -r | -i ] str_image
-b Elimina también la copia de seguridad de la imagen.
-r Recupera la copia de seguridad de la imagen.
+ -i Elimina imagen Incremental o Basica
Ejemplo: $PROG imagen1
EOT
exit 0
fi
+
# Procesar parámetros
-while getopts br OPTION; do
+while getopts bri OPTION; do
case $OPTION in
b) DELETEBACKUP=1 ;;
r) RECOVERBACKUP=1 ;;
+ i) DELETEINCREMEN=1 ;;
*) ERR=1 ;;
esac
shift $((OPTIND-1))
done
-[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1
+[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && [ -n "$DELETEINCREMEN" ] && ERR=1
if [ $# != 1 -o -n "$ERR" ]; then
- echo "$PROG Error: Formato: $PROG [ -b | -r ] str_image"
+ echo "$PROG Error: Formato: $PROG [ -b | -r | -i ] str_image"
exit 1
fi
-# Fichero principal de la imagen.
-IMGFILE="$OGIMG/$1.$IMGEXT"
-
-# Eliminar ficheros de la imagen.
-rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent}
-
# Recuperar copia de seguridad de la imagen.
if [ -n "$RECOVERBACKUP" ]; then
mv -f $IMGFILE.$BAKEXT $IMGFILE && \
@@ -60,3 +59,39 @@ if [ -n "$DELETEBACKUP" ]; then
rm -f $IMGFILE.$BAKEXT && rm -f $IMGFILE.{sum,torrent}.$BAKEXT
fi
+# Borrar directorio de imagen
+IMGFILECA="$OGIMG/$1"
+if [ -n "$DELETEINCREMEN" ];then
+rm -R $IMGFILECA && exit
+fi
+
+# Si el Nombre canonico es un directorio eliminamos
+# o si la opcion es i tambien eliminamos
+IMGFILECA="$OGIMG/$1"
+if [ -d "$IMGFILECA" ];then
+rm -R $IMGFILECA
+# Si el Nomobre canonico NO es un directorio
+else
+ # Comprobamos si es un archivo backup .ant
+ NOMBREANT=$(echo $1 | awk -F. '{print $1}')
+ if [ $1 == "$NOMBREANT.$BAKEXT" ]; then
+ IMGFILE="$OGIMG/$NOMBREANT.$IMGEXT.$BAKEXT"
+ # Eliminar fichero de seguridad .img.ant
+ rm -f $IMGFILE
+ else
+ # Comprobamos si es un archivo diferencial .diff
+ NOMBREDIF="$OGIMG/$1.$IMGEXT.$DIFFEXT"
+ if [ -f $NOMBREDIF ]; then
+ IMGFILE="$OGIMG/$1.$IMGEXT.$DIFFEXT"
+ # Eliminar fichero diferencial .diff .torrent .sum
+ rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent}
+
+ else
+ # Fichero principal de la imagen.
+ IMGFILE="$OGIMG/$1.$IMGEXT"
+ # Eliminar ficheros de la imagen.
+ rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent}
+ fi
+ fi
+
+fi \ No newline at end of file
diff --git a/repoman/bin/deletepreimage b/repoman/bin/deletepreimage
new file mode 100644
index 00000000..820ffeed
--- /dev/null
+++ b/repoman/bin/deletepreimage
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Eliminar las imagenees del repositiro seg�raca de la onsola web .img
+#Version 0.3 Ejecuci�n desde cron cada minuto,o.
+#echo "* * * * * root /opt/opengnsys/bin/image-delete" > /etc/cron.d/imagedelete
+
+# Comprobar si el proceso ya est� en ejecuci�n.on.
+PROG=$(basename $0)
+[ "$(pgrep "$PROG")" != "$$" ] && exit
+
+# Variables.
+OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
+PATH=$PATH:$OPENGNSYS/bin
+OGIMG="$OPENGNSYS/images"
+REPOCFG="$OPENGNSYS/etc/ogAdmRepo.cfg"
+LOGFILE="$OPENGNSYS/log/$PROG.log"
+
+# Error si no est� bien configurado el repositorio de im�genes.nes.
+[ -d $OGIMG -a -f $REPOCFG ] || exit 1
+
+# Procesar ficheros de im�genes.s.
+trap 'echo "`date` : Proceso interrumpido" >> $LOGFILE; exit ' 1 2 3 6 9 15
+
+#TODO en LOCAL: si existe algun fichero *.delete lo movemos al repositorio
+ls /opt/opengnsys/www/tmp/*.delete &>/dev/null || exit
+#[ -f /opt/opengnsys/www/tmp/*.delete ] &&
+mv /opt/opengnsys/www/tmp/*.* /opt/opengnsys/images/
+
+#TODO: iniciar blucle siempre y cuando haya algun delete
+ls /opt/opengnsys/images/*.delete &>/dev/null || exit
+
+for IMG in `ls /opt/opengnsys/images/*.delete`; do
+ DELETEIMAGE=$(echo $IMG | awk -F"." '{print $1}' | awk -F"/opt/opengnsys/images/" '{print $2}')
+ # Borramos marca .delete para que el proximo cron no trabaje sobre este conjunto.
+ [ -f $IMG ] && rm $IMG
+ ## se llama al escript de borrado de imagen.
+ /opt/opengnsys/bin/deleteimage $DELETEIMAGE
+done