From 25a56b8bfa8125b28c974c832f22f0ff9a87e5eb Mon Sep 17 00:00:00 2001 From: irina Date: Wed, 2 Mar 2016 10:13:54 +0000 Subject: #678 Permite borrar imágenes en directorios de unidades organizativas desde la consola o línea de comando MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/branches/version1.1@4811 a21b9725-9963-47de-94b9-378ad31fedc9 --- .../comandos/EliminarImagenRepositorio.php | 337 +++++++-------------- .../php/cat/comandos/eliminarimagenrepo_cat.php | 3 +- .../php/eng/comandos/eliminarimagenrepo_eng.php | 3 +- .../php/esp/comandos/eliminarimagenrepo_esp.php | 1 + repoman/bin/deleteimage | 35 +-- repoman/bin/deletepreimage | 36 +-- 6 files changed, 140 insertions(+), 275 deletions(-) diff --git a/admin/WebConsole/comandos/EliminarImagenRepositorio.php b/admin/WebConsole/comandos/EliminarImagenRepositorio.php index 75fb1a59..a1ef1bca 100644 --- a/admin/WebConsole/comandos/EliminarImagenRepositorio.php +++ b/admin/WebConsole/comandos/EliminarImagenRepositorio.php @@ -20,7 +20,7 @@ if (isset($_POST["opcion"])) {$opcion=$_POST["opcion"];}else{$opcion;} // Recoge //$opcion=$_POST["opcion"]; // Recoge parametros if (isset($_POST["idrepositorio"])) {$idrepositorio=$_POST["idrepositorio"];}else{$idrepositorio;} //$idrepositorio=$_POST["idrepositorio"]; -if (isset($_POST["grupoid"])) {$grupoid=$_POST["grupoid"];}else{$grupoid;} +if (isset($_POST["grupoid"])) {$grupoid=$_POST["grupoid"];}else{$grupoid='';} //$grupoid=$_POST["grupoid"]; $idcentro=$_SESSION["widcentro"]; if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros @@ -86,19 +86,38 @@ if (!$rs->Abrir()) return(true); // Error al abrir recordset } $rs->Cerrar(); -if ($iprepositorio == $ipservidor) -{ - -$cmd->texto="SELECT * FROM repositorios WHERE ip='$iprepositorio'"; +// Compruebo si se separan directorio de unidades organizativas +$cmd->texto="SELECT ogunit FROM entidades INNER JOIN centros USING(identidad) where idcentro=$idcentro"; $rs=new Recordset; -$rs->Comando=&$cmd; +$rs->Comando=&$cmd; if (!$rs->Abrir()) return(true); // Error al abrir recordset - $rs->Primero(); - if (!$rs->EOF) +$rs->Primero(); +if (!$rs->EOF) +{ + $separarogunit=$rs->campos["ogunit"]; // 1 -> si, 0 -> no +} +$rs->Cerrar(); + +// Directorios de las imágenes, si separo por unidades organizativas leo la BD +$dircentros= array(); +$dircentros[0]='/'; // Incluimos /opt/opengnsys/images +if ($separarogunit == 1 ) { + $cmd->texto="SELECT idcentro, directorio FROM centros ORDER BY idcentro"; + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(true); // Error al abrir recordset + $rs->Primero(); + while (!$rs->EOF) { - $idrepodefault=$rs->campos["idrepositorio"]; + $dircentros[$rs->campos["idcentro"]]="/".$rs->campos["directorio"]; + $rs->Siguiente(); } - $rs->Cerrar(); +} + +if ($iprepositorio == $ipservidor) +{ + + //######################################################################### $repolocal="si"; @@ -106,19 +125,24 @@ $repolocal="si"; // LEYENDO EL DIRECTORIO local en el server // /opt/opengnsys/images/ //######################################################################### - $dirtemplates="/opt/opengnsys/images/"; - $directorio=dir($dirtemplates); $imarepo= array();//pila de nombres - //bucle para llenar las pilas :P - while ($archivo = $directorio->read()) - { + foreach ( array_unique($dircentros) as $subdir) { + $dirtemplates="/opt/opengnsys/images/$subdir"; + $directorio=dir($dirtemplates); + // quitamos la barra inicial + $subdir = ($subdir == "/") ? '' : substr($subdir,1).':'; + //bucle para llenar las pilas :P + while ($archivo = $directorio->read()) + { //no mostrar ni "." ni ".." ni "pxe" if(($archivo!=".")&&($archivo!="..")&&($archivo!="mount")&&($archivo!="lost+found")) { - array_push($imarepo, $archivo); + array_push($imarepo, $subdir.$archivo); } + } + $directorio->close(); } - $directorio->close(); + sort($imarepo); // Ordenamos el Array if (isset($_POST["contar"])) {$cuantos=$_POST["contar"];}else{$cuantos=0;$contar;} @@ -133,6 +157,7 @@ $repolocal="si"; $nombre=trim($nombre); $chekmarcadif=$_POST["marcadif".$i]; $tipoimg=$_POST["tipoimg".$i]; + $idcentroimg=$_POST["idcentroimg".$i]; if ($checkbox == "si" && $chekmarcadif == 1) { @@ -169,19 +194,15 @@ $repolocal="si"; if ($checkboxobjeto == "si") { //######################################################################### - $cmd->texto="SELECT * FROM imagenes WHERE nombreca='$nombre' AND idcentro='$idcentro'"; + // Si la imagen tiene directorio lo elimino + $cmd->texto="SELECT * FROM imagenes WHERE nombreca='".preg_replace('/^\w*:/','',$nombre)."' AND idcentro='$idcentroimg'"; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(0); // Error al abrir recordset $rs->Primero(); if (!$rs->EOF){ - $idimagen=$rs->campos["idimagen"]; - $nombrecanonico=$rs->campos["nombreca"]; - $centroimagen=$rs->campos["idcentro"]; - $idimagen=$rs->campos["idimagen"]; - //$cmd->texto="DELETE FROM imagenes WHERE idimagen='$idimagen'"; - //$resul=$cmd->Ejecutar(); - } + $idimagen=$rs->campos["idimagen"]; + } $rs->Cerrar(); EliminaImagenes($cmd,$idimagen,"idimagen");// Eliminación en cascada @@ -221,7 +242,7 @@ $repolocal="no"; ?> -Administración web de aulas +Administración web de aulas @@ -314,7 +335,9 @@ function confirmeliminar() {var mensaje="";if(confirm(me          -    + +    + @@ -352,7 +375,7 @@ function confirmeliminar() {var mensaje="";if(confirm(me } }else{ // Compruebo si es un directorio - $buscodir="/opt/opengnsys/images/".$imarepo[$x]; + $buscodir="/opt/opengnsys/images/".str_replace(":","/",$imarepo[$x]); $buscopengnsys=$buscodir."/.marcimg"; if(is_dir($buscodir) && file_exists($buscopengnsys)){ $imarepo[$x]=trim($imarepo[$x]); @@ -373,16 +396,24 @@ function confirmeliminar() {var mensaje="";if(confirm(me $contar=1; foreach($sin_duplicados as $value) //imprimimos $sin_duplicados { //Llave Forach + // Guardo los valores del directorio y el nombre imagen + // Si no se separan los directorios queda igual + $arrayname=explode(':', $value); + if (sizeof( $arrayname) == 1){ + $imgdir=""; + $imgname=$arrayname[0]; + } else { + $imgdir=$arrayname[0]; + $imgname=$arrayname[1]; + } //Buscamos tamano de fichero - //Buscamos .torrent y .sum con lock - $gensum=$value.".img.sum.lock"; - $gentor=$value.".img.lock"; + //Buscamos si existe fichero de bloqueo + $gentor=str_replace(":","/",$value).".img.lock"; if(ereg(".diff",$value))$gendif=$value.".img.diff"; // ########### Buscando si existe fichero imagen ##################### - $buscando="find /opt/opengnsys/images/ -maxdepth 1 -name ".$gentor." -print"; - $generando="Generando .torrent"; + $buscando="ls /opt/opengnsys/images/$gentor"; $bustor=exec($buscando); if(ereg(".diff",$value)) { @@ -400,200 +431,48 @@ function confirmeliminar() {var mensaje="";if(confirm(me $nombrefichero=$value.'.img';$marcadif=0; } - - if ($modov != 1){ - - // #################################################################################### - // ########## Si el nombre imagen existe en la Unidad Organizativa #################### - // #################################################################################### - - $cmd->texto="SELECT * FROM imagenes WHERE nombreca='$value' ";//AND idcentro='$idcentro'"; - $rs=new Recordset; - $rs->Comando=&$cmd; - if (!$rs->Abrir()) return(0); // Error al abrir recordset - $rs->Primero(); - if (!$rs->EOF){ - $nombrecacentro=$rs->campos["nombreca"]; - $nombrecaidcentro=$rs->campos["idcentro"]; - } - if (empty($nombrecacentro) or $nombrecacentro != $value){$nombrecaidcentro=0;} - $rs->Cerrar(); - - if($nombrecaidcentro == $idcentro || $nombrecaidcentro==0) - { //Comienzo de Condicion si es nombrecaidcentro - - // #################################################################################### // #################################################################################### // ########## Buscando si existe objeto imagen ######################################## - // ########## Si el Nombre contiene .diff lo quitamos para buscar objeto imagen - if(ereg(".diff",$value)){ $valuediff=$value; $value = str_replace(".diff", "", $value);} //quitar todos los .diff y continuamos // #################################################################################### + $encontradoobjetoimagen=''; + // Version anterior tomaba nombrecentro donde $nombrecaidcentro=$idrepodefault + $nombrecaidcentro=0; // No afecta a vista unidad organizativa + $nombrecentro=''; // No afecta a vista unidad organizativa + // ########## Si el Nombre contiene .diff lo quitamos para buscar objeto imagen + if(ereg(".diff",$imgname)){ $imgname = str_replace(".diff", "", $imgname);} - $encontradoobjetoimagen=""; - $cmd->texto="SELECT * FROM imagenes WHERE nombreca='$value' AND idcentro='$idcentro'"; + $cmd->texto="SELECT idcentro, nombrecentro, nombreca FROM imagenes LEFT JOIN centros USING(idcentro) WHERE nombreca='$imgname' "; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(0); // Error al abrir recordset $rs->Primero(); if (!$rs->EOF){ - $encontradoobjetoimagen=$rs->campos["nombreca"]; - } - if($encontradoobjetoimagen == $value){$encontradoobjetoimagen;}else{$encontradoobjetoimagen="";} - $rs->Cerrar(); - // #################################################################################### - - // ########################## VARIABLES FICHERO DELETE ################################ - $nombredirectorio="/opt/opengnsys/images/".$value; - // #################################################################################### - if ($tipo[$contandotipo] == "D") - { - $nombrefichero=str_replace(".img", "", $nombrefichero); - $ficherodelete="../tmp/".$nombrefichero.".delete"; - }else{ - $ficherodelete="../tmp/".$nombrefichero.".delete"; - } - // ########################## VARIABLES FICHERO DELETE ################################ - // #################################################################################### - // ######## TAMAÑO DEL FICHERO Y DIRECTORIO ########################## - if (is_dir ($nombredirectorio) && $tipo[$contandotipo] == "D") - { - $tamanofich=exec("ls -lah ".$nombredirectorio." | awk 'NR==1 {print $2}'"); - } - elseif (ereg(".ant",$nombrefichero)) - { - $nombreficheroant=str_replace(".ant", "", $nombrefichero); //quitar todos los .ant y continuamos - - $nombreficheroant=$nombreficheroant.".ant"; - $tamanofich=exec("du -h --max-depth=1 /opt/opengnsys/images/$nombreficheroant"); - $tamanofich=split("/",$tamanofich);//////////////////////////////////////////echo $nombrefichero."
"; - }else{ - $tamanofich=exec("du -h --max-depth=1 /opt/opengnsys/images/$nombrefichero"); - $tamanofich=split("/",$tamanofich);//////////////////////////////////////////echo $nombrefichero."
"; - } - // ######## TAMAÑO DEL FICHERO Y DIRECTORIO ########################## - - $todo=".delete"; - $ruta='touch%20/opt/opengnsys/images/'.$value.$todo;//////////////////////////////////////echo $value;// - - echo ''.chr(13); - - // ########## Nº ###################################################################### - echo ' '.$contar.' '.chr(13); - - // ########## Marcar ################################################################## - - if ($bustor<>"") - { - echo ' '.$TbMsg[14].''.chr(13); - } - elseif (file_exists($ficherodelete)) - { - echo ' '.$TbMsg[15].''.chr(13);} - else - { - echo ''.chr(13); - } - - // ########## Tipo #################################################################### - if ($tipo[$contandotipo]=="D") - { - echo ''.$tipo[$contandotipo].''.chr(13); - } - elseif ($tipo[$contandotipo]=="B") - { - echo ' '.$tipo[$contandotipo].' '.chr(13); - }else{ - echo ''.$tipo[$contandotipo].''.chr(13); - } - - echo ''.chr(13);; - echo ''.chr(13);; - echo ''.chr(13);; - echo ''.chr(13);; - - // ########## Nombre de Imagen ######################################################## - if ($tipo[$contandotipo]=="D") - { - echo ' '.$value.' '.chr(13); + $encontradoobjetoimagen=(is_null($rs->campos["nombreca"]))? '': $rs->campos["nombreca"]; + $nombrecaidcentro=(is_null($rs->campos["idcentro"]))? 0 :$rs->campos["idcentro"]; + $nombrecentro=(is_null($rs->campos["nombrecentro"]))? '' : $rs->campos["nombrecentro"]; } - else - { + $rs->Cerrar(); - echo ' '.$value.' '.chr(13); + // Sobre: si devuelve una imagen tiene que coincidir + if($encontradoobjetoimagen == $imgname) { + $encontradoobjetoimagen=$value; } - // ########## Tamaño de Imagen ######################################################## - if (is_dir ($nombredirectorio) && $tipo[$contandotipo] == "D") - {echo ' '.$tamanofich.''.chr(13);} - else{echo ' '.$tamanofich[0].''.chr(13);} + if ($modov != 1){ //VISTA UNIDAD ORGANIZATIVA + // Si la imagen no es del centro no la muestro + if ($nombrecaidcentro != $idcentro && $nombrecaidcentro != 0) { + $contandotipo++; + continue; + } + // si ogunit con dir separados -> si la imagen no es del dir del centro no la muestro + if ($separarogunit == 1 and ! ereg($dircentros[$idcentro], "/".$value)) { + $contandotipo++; + continue; + }; - // ########## Objeto Imagen ########################################################### - if($encontradoobjetoimagen<>"") - { - echo ''.chr(13); } - elseif (ereg(".ant",$nombrefichero)) - { - echo ' ------'.chr(13); - }else{ - echo ' '.$TbMsg[25].''.chr(13); - } - // ##################################################################################### - echo ''.chr(13); - $contar++; - $contandotipo++; - - }else{$contandotipo++;}//Fin de Condicion si es nombrecaidcentro - } - - else{ - - - $nombrecaidcentro=$idrepodefault; - //echo $value." - ".$idcentro."
"; - $cmd->texto="SELECT * FROM imagenes WHERE nombreca='$value' "; - $rs=new Recordset; - $rs->Comando=&$cmd; - if (!$rs->Abrir()) return(0); // Error al abrir recordset - $rs->Primero(); - if (!$rs->EOF){ - $nombrecacentro=$rs->campos["nombreca"]; - $nombrecaidcentro=$rs->campos["idcentro"]; - } - $rs->Cerrar(); - - $cmd->texto="SELECT * FROM centros WHERE idcentro='$nombrecaidcentro' "; - $rs=new Recordset; - $rs->Comando=&$cmd; - if (!$rs->Abrir()) return(0); // Error al abrir recordset - $rs->Primero(); - if (!$rs->EOF){ - $nombrecentro=$rs->campos["nombrecentro"]; - } - $rs->Cerrar(); - - - // #################################################################################### - // #################################################################################### - // ########## Buscando si existe objeto imagen ######################################## - // ########## Si el Nombre contiene .diff lo quitamos para buscar objeto imagen - if(ereg(".diff",$value)){ $valuediff=$value; $value = str_replace(".diff", "", $value);} //quitar todos los .diff y continuamos - // #################################################################################### - - $encontradoobjetoimagen=""; - $cmd->texto="SELECT * FROM imagenes WHERE nombreca='$value'";// AND idcentro='$idcentro'"; - $rs=new Recordset; - $rs->Comando=&$cmd; - if (!$rs->Abrir()) return(0); // Error al abrir recordset - $rs->Primero(); - if (!$rs->EOF){ - $encontradoobjetoimagen=$rs->campos["nombreca"]; - } - if($encontradoobjetoimagen == $value){$encontradoobjetoimagen;}else{$encontradoobjetoimagen="";} - $rs->Cerrar(); // #################################################################################### - // ########################## VARIABLES FICHERO DELETE ################################ $nombredirectorio="/opt/opengnsys/images/".$value; // #################################################################################### @@ -605,6 +484,8 @@ function confirmeliminar() {var mensaje="";if(confirm(me $ficherodelete="../tmp/".$nombrefichero.".delete"; } // ########################## VARIABLES FICHERO DELETE ################################ + $nombredirectorio=str_replace(":","/",$nombredirectorio); + $nombrefichero=str_replace(":","/",$nombrefichero); // #################################################################################### // ######## TAMAÑO DEL FICHERO Y DIRECTORIO ########################## @@ -634,6 +515,7 @@ function confirmeliminar() {var mensaje="";if(confirm(me echo ' '.$contar.' '.chr(13); // ########## Marcar ################################################################## + if ($bustor<>"") { echo ' '.$TbMsg[14].''.chr(13); @@ -662,15 +544,28 @@ function confirmeliminar() {var mensaje="";if(confirm(me echo ''.chr(13);; echo ''.chr(13);; echo ''.chr(13);; + echo ''.chr(13);; + + // ########## Aviso si directorio distinto al del centro - en vista repositorio ########## + $aviso=''; + if ($separarogunit == 1) { + if ( $nombrecaidcentro != 0 and "/".$imgdir != $dircentros[$nombrecaidcentro]){ + $aviso=" * "; + $textoaviso="\n ". + " * $TbMsg[33]  \n". + "\n"; + } + } // ########## Nombre de Imagen ######################################################## if ($tipo[$contandotipo]=="D") { - echo ' '.$value.' '.chr(13); + echo ' '.$value.' '.$aviso.' '.chr(13); } else { - echo ' '.$value.' '.chr(13); + + echo ' '.$value.' '.$aviso.' '.chr(13); } // ########## Tamaño de Imagen ######################################################## @@ -689,23 +584,23 @@ function confirmeliminar() {var mensaje="";if(confirm(me }else{ echo ' '.$TbMsg[25].''.chr(13); } - // ##################################################################################### - // ########## Unidad Organizativa ###################################################### + // VISTA REPOSITORIO COMPLETO + if ($modov == 1){ + // ##################################################################################### + // ########## Unidad Organizativa ###################################################### + + echo ''.$nombrecentro.''.chr(13); - echo ''.$nombrecentro.''.chr(13); + // ##################################################################################### + } // ##################################################################################### echo ''.chr(13); $contar++; $contandotipo++; -// }else{$contandotipo++;}//Fin de Condicion si es nombrecaidcentro - - } - - - } //Fin Llave Forach + if (isset ($textoaviso)) echo $textoaviso; ?> diff --git a/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php index 4a179f64..d2c36745 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php @@ -38,4 +38,5 @@ $TbMsg[30]='Unitat Organitzativa'; $TbMsg[31]='Arxiu'; $TbMsg[32]='Directori'; -?> \ No newline at end of file + $TbMsg[33]='AVISO: La imagen está situada en un directorio que no corresponde a la unidad organizativa.'; +?> diff --git a/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php index b341b96e..44b55610 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php @@ -38,4 +38,5 @@ $TbMsg[30]='Organizational Unit'; $TbMsg[31]='Archive'; $TbMsg[32]='Directory'; -?> \ No newline at end of file + $TbMsg[33]='AVISO: La imagen está situada en un directorio que no corresponde a la unidad organizativa.' +?> diff --git a/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php index c10f5094..53268c37 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php @@ -38,4 +38,5 @@ $TbMsg[30]='Unidad Organizativa'; $TbMsg[31]='Archivo'; $TbMsg[32]='Directorio'; + $TbMsg[33]='AVISO: La imagen está situada en un directorio que no corresponde a la unidad organizativa.'; ?> 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 -- cgit v1.2.3-18-g5258