summaryrefslogtreecommitdiffstats
path: root/repoman
diff options
context:
space:
mode:
authoririna <irinagomez@us.es>2016-03-02 10:13:54 +0000
committeririna <irinagomez@us.es>2016-03-02 10:13:54 +0000
commit25a56b8bfa8125b28c974c832f22f0ff9a87e5eb (patch)
treedfe3ba4e6e2897bc9aaa709016f4703fc5bd1369 /repoman
parenta1c1fe02fbb93758ba66278c2c589f781eb12bff (diff)
#678 Permite borrar imágenes en directorios de unidades organizativas desde la consola o línea de comando
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4811 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'repoman')
-rwxr-xr-xrepoman/bin/deleteimage35
-rwxr-xr-xrepoman/bin/deletepreimage36
2 files changed, 19 insertions, 52 deletions
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage
index d30ec785..c9aff3f0 100755
--- a/repoman/bin/deleteimage
+++ b/repoman/bin/deleteimage
@@ -1,14 +1,11 @@
#!/bin/bash
-# deleteimage [ -b | -r ] [ dir_ogunit ] str_image
+# deleteimage [ -b | -r ] [ str_image | str_dir/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 str_dir_ogunit Nombre del subdirectorio de la unidad organizativa (opcional).
-#@param str_image Nombre canónico de la imagen, sin extensión.
+#@param str_image Nombre canónico de la imagen, sin extensión. Permite directorio.
#@exception 1 Error de formato
-#@exception 2 Solo ejecutable por root
-#@exception 3 No existe subdirectorio de la unidad organizativa
#@version 1.0 - Versión inicial.
#@date 2012-10-14
#@author Ramón Gómez, ETSII Univ. Sevilla
@@ -18,9 +15,6 @@
#@version 1.0.6 - Detección automática del tipo de imagen.
#@date 2014-10-29
#@author Ramón Gómez, ETSII Univ. Sevilla
-#@version 1.1 - Separación subdirectorios unidades organizativas.
-#@date 2016-01-03
-#@author Irina Gómez, ETSII Univ. Sevilla
PROG=$(basename $0)
@@ -34,13 +28,11 @@ DIFFEXT="diff"
if [ "$*" == "help" ]; then
cat << EOT
$PROG: Borra los ficheros de una imagen del repositorio.
-Formato: $PROG [ -b | -r ] [ str_dir_ogunit ] str_image
+Formato: $PROG [ -b | -r ] [ str_image | str_dir/str_image ]
-b Elimina también la copia de seguridad de la imagen.
-r Recupera la copia de seguridad de la imagen.
- dir_ogunit subdirectorio unidad organizativa
-
Ejemplo: $PROG imagen1
- $PROG -r dir_ogunit2 imagen2
+ $PROG -r dir2/imagen2
EOT
exit 0
fi
@@ -54,26 +46,11 @@ while getopts br OPTION; do
shift $((OPTIND-1))
done
[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1
-if [ $# -lt 1 -o -n "$ERR" ]; then
- echo "$PROG Error: Formato: $PROG [ -b | -r ] [ str_dir_ogunit ] str_image"
+if [ $# != 1 -o -n "$ERR" ]; then
+ echo "$PROG Error: Formato: $PROG [ -b | -r ] [ str_image | str_dir/str_image ]"
exit 1
fi
-if [ "$USER" != "root" ]; then
- echo "$PROG: Error: solo ejecutable por root" >&2
- exit 2
-fi
-
-if [ "$2" ]; then
- if [ -d "$OGIMG/$1" ]; then
- OGIMG="$OGIMG/$1"
- else
- echo "$PROG Error: No existe el subdirectorio de la unidad organizativa $OGIMG/$1"
- exit 3
- fi
- shift
-fi
-
# Eliminar ficheros de imagen monolítica o sincronizada básica.
IMGPATH="$OGIMG/$1.$IMGEXT"
if [ -f $IMGPATH ]; then
diff --git a/repoman/bin/deletepreimage b/repoman/bin/deletepreimage
index 39077483..b4020ba0 100755
--- a/repoman/bin/deletepreimage
+++ b/repoman/bin/deletepreimage
@@ -30,33 +30,23 @@ ls /opt/opengnsys/images/*.delete &>/dev/null || exit
for IMG in `ls /opt/opengnsys/images/*.delete`; do
## Obtenemos el nombre de la imagen
- DELETEIMAGE=$(echo $IMG | awk -F"." '{print $1}' | awk -F"/opt/opengnsys/images/" '{print $2}')
+ # DELETEIMAGE=$(echo $IMG | awk -F"." '{print $1}' | awk -F"/opt/opengnsys/images/" '{print $2}')
+ DELETEIMAGE=$(echo ${IMG%%.*} | awk -F"/opt/opengnsys/images/" '{print $2}')
# Borramos marca .delete para que el proximo cron no trabaje sobre este conjunto.
[ -f $IMG ] && rm $IMG
- ## Comprobamos si es un Directorio .delete
- DELETEdir=$(echo $IMG | awk -F"." '{print $2}') ## .delete
+ ## Comprobamos si es una imagen de backup
DELETEant=$(echo $IMG | awk -F"." '{print $3}') ## .ant
- DELETEdiff=$(echo $IMG | awk -F"." '{print $3}') ## .diff
- ## Si NO es ninguno es un img
- ## se llama al escript de borrado de imagen.
- ## Si es un Directorio Borramos
- if [[ $DELETEdir == "delete" ]]; then
- /opt/opengnsys/bin/deleteimage $DELETEIMAGE
-
- # Si es un Imagen Backup Borramos
- elif [[ $DELETEant == "ant" ]]; then
- DELETEIMAGE=$DELETEIMAGE".ant"
- /opt/opengnsys/bin/deleteimage $DELETEIMAGE
-
- # Si es un Imagen diff Borramos
- elif [[ $DELETEdiff == "diff" ]]; then
- /opt/opengnsys/bin/deleteimage $DELETEIMAGE
-
- # Si no es una de las anteriores lo que queda es img
- else
- /opt/opengnsys/bin/deleteimage $DELETEIMAGE
+ ## Si la imagen es un backup se añade la extensión ant
+ if [[ $DELETEant == "ant" ]]; then
+ DELETEIMAGE=$DELETEIMAGE".ant"
fi
-done \ No newline at end of file
+ ## si directorio:imagen cambiamos : por /
+ DELETEIMAGE=$(echo $DELETEIMAGE|tr : /)
+
+ ## se llama al escript de borrado de imagen.
+ /opt/opengnsys/bin/deleteimage $DELETEIMAGE
+
+done