diff options
author | ramon <ramongomez@us.es> | 2016-03-10 12:46:05 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2016-03-10 12:46:05 +0000 |
commit | 8630dafe16aa77ccead0d1c702de556c663b4caf (patch) | |
tree | 1d04d0498d42a9be4d8efbd4d60bd4f62ab257da | |
parent | 8182e59bbbbf3a91a351afac3ff5f868de08d91d (diff) |
Versión 1.0.6a, #730: Integrar código y liberar la versión de mantenimiento OpenGnSys 1.0.6a.
git-svn-id: https://opengnsys.es/svn/tags/opengnsys-1.0.6a@4820 a21b9725-9963-47de-94b9-378ad31fedc9
29 files changed, 131 insertions, 57 deletions
diff --git a/admin/Database/ogAdmBD-1.0-1.0.6.sql b/admin/Database/ogAdmBD-1.0-1.0.6.sql deleted file mode 120000 index 52b3ee2a..00000000 --- a/admin/Database/ogAdmBD-1.0-1.0.6.sql +++ /dev/null @@ -1 +0,0 @@ -ogAdmBD-1.0.1-1.0.6.sql
\ No newline at end of file diff --git a/admin/Database/ogAdmBD-1.0-1.0.6a.sql b/admin/Database/ogAdmBD-1.0-1.0.6a.sql new file mode 120000 index 00000000..dc227bf6 --- /dev/null +++ b/admin/Database/ogAdmBD-1.0-1.0.6a.sql @@ -0,0 +1 @@ +ogAdmBD-1.0.1-1.0.6a.sql
\ No newline at end of file diff --git a/admin/Database/ogAdmBD-1.0.1-1.0.6.sql b/admin/Database/ogAdmBD-1.0.1-1.0.6a.sql index 08a68c3b..08a68c3b 100644 --- a/admin/Database/ogAdmBD-1.0.1-1.0.6.sql +++ b/admin/Database/ogAdmBD-1.0.1-1.0.6a.sql diff --git a/admin/Database/ogAdmBD-1.0.2-1.0.6.sql b/admin/Database/ogAdmBD-1.0.2-1.0.6a.sql index 69b5428f..69b5428f 100644 --- a/admin/Database/ogAdmBD-1.0.2-1.0.6.sql +++ b/admin/Database/ogAdmBD-1.0.2-1.0.6a.sql diff --git a/admin/Database/ogAdmBD-1.0.2a-1.0.6.sql b/admin/Database/ogAdmBD-1.0.2a-1.0.6a.sql index 0eaf109b..0eaf109b 100644 --- a/admin/Database/ogAdmBD-1.0.2a-1.0.6.sql +++ b/admin/Database/ogAdmBD-1.0.2a-1.0.6a.sql diff --git a/admin/Database/ogAdmBD-1.0.3-1.0.6.sql b/admin/Database/ogAdmBD-1.0.3-1.0.6a.sql index 18648178..18648178 100644 --- a/admin/Database/ogAdmBD-1.0.3-1.0.6.sql +++ b/admin/Database/ogAdmBD-1.0.3-1.0.6a.sql diff --git a/admin/Database/ogAdmBD-1.0.4-1.0.6.sql b/admin/Database/ogAdmBD-1.0.4-1.0.6a.sql index 87b14858..87b14858 100644 --- a/admin/Database/ogAdmBD-1.0.4-1.0.6.sql +++ b/admin/Database/ogAdmBD-1.0.4-1.0.6a.sql diff --git a/admin/Database/ogAdmBD-1.0.4a-1.0.6.sql b/admin/Database/ogAdmBD-1.0.4a-1.0.6a.sql index ebe300e6..ebe300e6 100644 --- a/admin/Database/ogAdmBD-1.0.4a-1.0.6.sql +++ b/admin/Database/ogAdmBD-1.0.4a-1.0.6a.sql diff --git a/admin/Database/ogAdmBD-1.0.5-1.0.6.sql b/admin/Database/ogAdmBD-1.0.5-1.0.6a.sql index ada710d8..ada710d8 100644 --- a/admin/Database/ogAdmBD-1.0.5-1.0.6.sql +++ b/admin/Database/ogAdmBD-1.0.5-1.0.6a.sql diff --git a/admin/Database/ogAdmBD-1.0.6-postinst.sql b/admin/Database/ogAdmBD-1.0.6a-postinst.sql index 8b2e7be6..8b2e7be6 100644 --- a/admin/Database/ogAdmBD-1.0.6-postinst.sql +++ b/admin/Database/ogAdmBD-1.0.6a-postinst.sql diff --git a/admin/WebConsole/comandos/EliminarImagenRepositorio.php b/admin/WebConsole/comandos/EliminarImagenRepositorio.php index 144f833a..8f3ad95c 100644 --- a/admin/WebConsole/comandos/EliminarImagenRepositorio.php +++ b/admin/WebConsole/comandos/EliminarImagenRepositorio.php @@ -133,6 +133,7 @@ $repolocal="si"; $nombre=trim($nombre); $chekmarcadif=$_POST["marcadif".$i]; $tipoimg=$_POST["tipoimg".$i]; + $idcentroimg=$_POST["idcentroimg".$i]; if ($checkbox == "si" && $chekmarcadif == 1) { @@ -169,7 +170,7 @@ $repolocal="si"; if ($checkboxobjeto == "si") { //######################################################################### - $cmd->texto="SELECT * FROM imagenes WHERE nombreca='$nombre' AND idcentro='$idcentro'"; + $cmd->texto="SELECT * FROM imagenes WHERE nombreca='$nombre' AND idcentro='$idcentroimg'"; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(0); // Error al abrir recordset @@ -664,6 +665,7 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me echo '<input type="hidden" name="contar" value='.$contar.'></TD>'.chr(13);; echo '<input type="hidden" name="marcadif'.$contar.'" value='.$marcadif.'></TD>'.chr(13);; echo '<input type="hidden" name="tipoimg'.$contar.'" value='.$tipo[$contandotipo].'></TD>'.chr(13);; + echo '<input type="hidden" name="idcentroimg'.$contar.'" value='.$nombrecaidcentro.'></TD>'.chr(13);; // ########## Nombre de Imagen ######################################################## if ($tipo[$contandotipo]=="D") @@ -736,4 +738,4 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me <?php } - ?>
\ No newline at end of file + ?> diff --git a/admin/WebConsole/comandos/RestaurarImagen.php b/admin/WebConsole/comandos/RestaurarImagen.php index ec61a10e..e75b2f82 100644 --- a/admin/WebConsole/comandos/RestaurarImagen.php +++ b/admin/WebConsole/comandos/RestaurarImagen.php @@ -63,6 +63,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT> <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT> +<SCRIPT language="javascript" src="../jscripts/arrays.js"></SCRIPT> <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?> <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/restaurarimagen_'.$idioma.'.js"></SCRIPT>'?> </HEAD> @@ -115,7 +116,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; <?php } $sws=$fk_sysFi | $fk_tamano | $fk_nombreSO; - pintaConfiguraciones($cmd,$idambito,$ambito,9,$sws,false,"pintaParticionesRestaurarImagen"); + pintaConfiguraciones($cmd,$idambito,$ambito,9,$sws,false,"pintaParticionesRestaurarImagen","ipordenador"); //________________________________________________________________________________________________________ include_once("./includes/formularioacciones.php"); //________________________________________________________________________________________________________ diff --git a/admin/WebConsole/comandos/jscripts/RestaurarImagen.js b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js index d675fa8d..7d8ca817 100644 --- a/admin/WebConsole/comandos/jscripts/RestaurarImagen.js +++ b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js @@ -37,22 +37,30 @@ atributos+="ipr="+imgcanrepo[2]+RC; // Ip del repositorio donde está alojada atributos+="ifs="+imgcanrepo[3]+RC; // Identificador del perfil soft contenido en la imagen atributos+="ptc="+protoclonacion.value+RC; // Identificador del protocolo de clonación + document.fdatosejecucion.atributos.value=atributos; var cc=ochecks[i].getAttribute('idcfg'); // Toma identificador del bloque de configuración + var tbOrd=document.getElementById("tbOrd_"+cc); + var iptabla=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores + filtrado(); + var ipfiltro=document.fdatosejecucion.filtro.value; - if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){ - var tbOrd=document.getElementById("tbOrd_"+cc); - var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores - var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito - if(idordenadores!=cadenaid){ - document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido - document.fdatosejecucion.idambito.value=idordenadores; + // Elimino los ordenadores del filtro que no estén en la tabla + if (ipfiltro!=''){ + var arraytabla = iptabla.split(","); + var arrayfiltro =ipfiltro.split(";"); + arrayfiltro = array_interset (arrayfiltro.sort(), arraytabla.sort()); + ipfiltro = arrayfiltro.join(";"); + if (ipfiltro ==''){ + alert(TbMsg["FILTER"]); + return(false); } - } - document.fdatosejecucion.atributos.value=atributos; - filtrado(); + } else { + ipfiltro=iptabla.replace(/,/g, ";"); + } + document.fdatosejecucion.filtro.value=ipfiltro; + document.fdatosejecucion.submit(); - break; } } } @@ -96,4 +104,3 @@ } return(comprobar_datosejecucion()) } - diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js index ec7ef847..fa501192 100644 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/restaurarimagen_cat.js @@ -10,4 +10,5 @@ TbMsg[2]="ATENCIÓN: Ha selecccionado una imagen de Sistema Operativo distinto TbMsg[3]="¿ Está seguro ?" TbMsg[4]="Debe elegir al menos una imagen para la partición" TbMsg[5]="Debe elegir al menos un path de imagen para la partición "; -TbMsg[6]="Debe elegir la imagen de uno sólo de los desplegables" +TbMsg[6]="Debe elegir la imagen de uno sólo de los desplegables"; +TbMsg["FILTER"]="Debe seleccionar al menos un ordenador que tenga la configuración elegida."; diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js index dbe7a4df..fcaaf8c6 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js @@ -10,4 +10,5 @@ TbMsg[2]="WARNING: You have selected an Image from other operating system for c TbMsg[3]="Are you sure ?" TbMsg[4]="You must select at least a partition and an Image" TbMsg[5]="You must select at least a image path for partition "; -TbMsg[6]="You must choose only one image of the down"
\ No newline at end of file +TbMsg[6]="You must choose only one image of the down"; +TbMsg["FILTER"]="Debe seleccionar al menos un ordenador que tenga la configuración elegida."; diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js index ec7ef847..e5842b92 100644 --- a/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js +++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js @@ -10,4 +10,5 @@ TbMsg[2]="ATENCIÓN: Ha selecccionado una imagen de Sistema Operativo distinto TbMsg[3]="¿ Está seguro ?" TbMsg[4]="Debe elegir al menos una imagen para la partición" TbMsg[5]="Debe elegir al menos un path de imagen para la partición "; -TbMsg[6]="Debe elegir la imagen de uno sólo de los desplegables" +TbMsg[6]="Debe elegir la imagen de uno sólo de los desplegables"; +TbMsg["FILTER"]="Debe seleccionar al menos un ordenador que tenga la configuración elegida."; diff --git a/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php b/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php index f9bdff68..ec09a325 100644 --- a/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php +++ b/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php @@ -179,7 +179,7 @@ class Almanaque{ $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13); $HTML_calendario.='<TR>'.chr(13); $HTML_calendario.='<TH style="cursor:pointer" onclick="TH_'.$this->onclick.'">Años</TH></TR>'.chr(13); // Literal años - for ($i=1;$i<7;$i++){ + for ($i=1;$i<9;$i++){ $HTML_calendario.='<TR><TD align="center" id="'.$this->numero_annos[$i][0].'" value="'.$this->numero_annos[$i][1].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" @@ -388,4 +388,4 @@ ________________________________________________________________________________ $HTML_calendario.='</TR></TABLE>'.chr(13); return($HTML_calendario); } -} // Fin de la clase Almanaque
\ No newline at end of file +} // Fin de la clase Almanaque diff --git a/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php b/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php index 97cbc0e2..7f486f22 100644 --- a/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php +++ b/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php @@ -72,14 +72,14 @@ class Almanaque{ $this->semanas[5]=array ("5",0x10); $this->semanas[6]=array ("Last",0x20); - $this->numero_annos[1]=array ("2004",0x01); // tamao 1 bytes - $this->numero_annos[2]=array ("2005",0x02); - $this->numero_annos[3]=array ("2006",0x04); - $this->numero_annos[4]=array ("2007",0x08); - $this->numero_annos[5]=array ("2008",0x10); - $this->numero_annos[6]=array ("2009",0x20); - $this->numero_annos[7]=array ("2010",0x40); - $this->numero_annos[8]=array ("2011",0x80); + $this->numero_annos[1]=array ("2010",0x01); // tamao 1 bytes + $this->numero_annos[2]=array ("2011",0x02); + $this->numero_annos[3]=array ("2012",0x04); + $this->numero_annos[4]=array ("2013",0x08); + $this->numero_annos[5]=array ("2014",0x10); + $this->numero_annos[6]=array ("2015",0x20); + $this->numero_annos[7]=array ("2016",0x40); + $this->numero_annos[8]=array ("2017",0x80); $this->numero_dias[1]=0x00000001; // tamao 4 bytes $this->numero_dias[2]=0x00000002; @@ -211,7 +211,7 @@ class Almanaque{ $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13); $HTML_calendario.='<TR>'.chr(13); $HTML_calendario.='<TH style="cursor:hand" onclick="TH_'.$this->onclick.'">Years</TH></TR>'.chr(13); // Literal aos - for ($i=1;$i<7;$i++){ + for ($i=1;$i<9;$i++){ $HTML_calendario.='<TR><TD id="'.$this->numero_annos[$i][0].'" value="'.$this->numero_annos[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_annos[$i][0].'</TD></TR>'.chr(13); } $HTML_calendario.='</TABLE>'.chr(13); @@ -402,4 +402,4 @@ ________________________________________________________________________________ $HTML_calendario.='</TR></TABLE>'.chr(13); return($HTML_calendario); } -} // Fin de la clase Almanaque
\ No newline at end of file +} // Fin de la clase Almanaque diff --git a/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php b/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php index 579addde..868fc394 100644 --- a/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php +++ b/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php @@ -179,7 +179,7 @@ class Almanaque{ $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13); $HTML_calendario.='<TR>'.chr(13); $HTML_calendario.='<TH style="cursor:pointer" onclick="TH_'.$this->onclick.'">Años</TH></TR>'.chr(13); // Literal años - for ($i=1;$i<7;$i++){ + for ($i=1;$i<9;$i++){ $HTML_calendario.='<TR><TD align="center" id="'.$this->numero_annos[$i][0].'" value="'.$this->numero_annos[$i][1].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" @@ -388,4 +388,4 @@ ________________________________________________________________________________ $HTML_calendario.='</TR></TABLE>'.chr(13); return($HTML_calendario); } -} // Fin de la clase Almanaque
\ No newline at end of file +} // Fin de la clase Almanaque diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php index 54fdab36..8cdd669c 100644 --- a/admin/WebConsole/includes/ConfiguracionesParticiones.php +++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php @@ -179,7 +179,7 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) configuración de los ordenadores o la pantalla de los comandos "Configurar" o "RestaurarImagen" para permitir introducir los datos necesarios. ________________________________________________________________________________________________________*/ -function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr,$pintaParticionesFunction="pintaParticiones") +function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr,$pintaParticionesFunction="pintaParticiones",$tipoid="idordenador") { global $AMBITO_AULAS; global $AMBITO_GRUPOSORDENADORES; @@ -270,7 +270,7 @@ function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr,$pintaPar $cc++; //Muestra ordenadores echo '<tr><td colspan="'.$colums.'" style="background-color: #ffffff;">'; - echo pintaOrdenadores($cmd,$rs->campos["idordenadores"],10,$cc); + echo pintaOrdenadores($cmd,$rs->campos["idordenadores"],10,$cc,$tipoid); echo '</td></tr>'; //Muestra particiones y configuración $configuraciones[$cc-1] = $rs->campos["configuraciones"]; diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib index 109c3048..78e16ccb 100755 --- a/client/engine/Boot.lib +++ b/client/engine/Boot.lib @@ -480,7 +480,10 @@ FILE=/tmp/temp$$ VERSION=$(ogGetOsVersion $1 $2) -if echo "$VERSION" | grep "Windows 8.1" +if echo "$VERSION" | grep "Windows 10" +then + WINVER="Windows 10" +elif echo "$VERSION" | grep "Windows 8.1" then WINVER="Windows 8.1" elif echo "$VERSION" | grep "Windows 8" @@ -1022,7 +1025,7 @@ ogGrubAddOgclient () { # Error si no existe el kernel y el initrd en la cache. # Falta crear nuevo codigo de error. - [ -r $OGCAC/boot/ogvmlinuz -a -r $OGCAC/boot/oginitrd.img ] || return $(ogRaiseError log session OG_ERR_NOTFOUND "CACHE: ogvmlinuz, oginitrd.img" 1>&2; echo ?) + [ -r $OGCAC/boot/ogvmlinuz -a -r $OGCAC/boot/oginitrd.img ] || return $(ogRaiseError log session $OG_ERR_NOTFOUND "CACHE: ogvmlinuz, oginitrd.img" 1>&2; echo $?) # Archivo de configuracion del grub DIRMOUNT=$(ogMount $1 $2) diff --git a/client/engine/Cache.lib b/client/engine/Cache.lib index ce1fc38b..626cab6f 100755 --- a/client/engine/Cache.lib +++ b/client/engine/Cache.lib @@ -35,7 +35,7 @@ function ogCreateCache () { # Variables locales. -local FINDCACHE NDSK SIZECACHE PART DISK START END ENDPREVPART SIZE MINSIZE MAXSIZE PTTYPE ID +local FINDCACHE NDSK SIZECACHE IOSIZE PART DISK START END ENDPREVPART SIZE MINSIZE MAXSIZE PTTYPE ID # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_partsize" "$FUNCNAME 1 10000000" @@ -65,7 +65,15 @@ PART=4 DISK=$(ogDiskToDev $NDSK) || return $? END=$[$(ogGetLastSector $NDSK 2>/dev/null)] # Sector final del disco. SIZE=$[$SIZECACHE*2] # Tamaño en sectores de 512 B. -START=$[END-SIZE+1] +###### agp ############ +IOSIZE=$(fdisk -l $DISK | grep I/O | cut -d ":" -f2 | cut -d "/" -f1 | cut -d " " -f2) +if [[ $IOSIZE = 4096 ]]; then + END=$[$END-8192] + START=$[END-SIZE-8192] +else + START=$[END-SIZE+1] +fi +###### agp ############ ENDPREVPART=$[$(ogGetLastSector $NDSK $[PART-1] 2>/dev/null)] # Error si tamaño no está entre límites permitidos o si se solapa con la partición anterior. MINSIZE=25000 # Error de formateo si tamaño < 50 MB. diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib index adb9cb01..4ff545a3 100755 --- a/client/engine/Disk.lib +++ b/client/engine/Disk.lib @@ -44,7 +44,7 @@ timeout -k 5s -s KILL 3s $(which parted) "$@" function ogCreatePartitions () { # Variables locales. -local ND DISK PTTYPE PART SECTORS START SIZE TYPE CACHEPART CACHESIZE EXTSTART EXTSIZE tmpsfdisk +local ND DISK PTTYPE PART SECTORS START SIZE TYPE CACHEPART CACHESIZE IOSIZE EXTSTART EXTSIZE tmpsfdisk # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk str_parttype:int_partsize ..." \ @@ -72,7 +72,20 @@ CACHEPART=$(ogFindCache 2>/dev/null) [ "$ND" = "${CACHEPART% *}" ] && CACHESIZE=$(ogGetCacheSize 2>/dev/null | awk '{print $0*2}') [ -n "$CACHESIZE" ] && SECTORS=$[SECTORS-CACHESIZE] # Sector de inicio (la partición 1 empieza en el sector 63). -START=63 +########## agp ########### +iodisco=$(ogDiskToDev $1) +IOSIZE=$(fdisk -l $iodisco | grep I/O | cut -d ":" -f2 | cut -d "/" -f1 | cut -d " " -f2) +if [[ $IOSIZE = 4096 ]]; then + START=4096 +else + START=63 +fi +########## agp ########### + + + + + PART=1 # Fichero temporal de entrada para "sfdisk" @@ -257,6 +270,9 @@ sgdisk $DELOPTIONS $OPTIONS $DISK 2>/dev/null && partprobe $DISK #@version 1.0.4 - Primera versión compatible con OpenGnSys. #@author Universidad de Huelva #@date 2012/03/06 +#@version 1.0.6a - Adaptar creación de nueva tabla MSDOS. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2016/01/29 #*/ ## function ogCreatePartitionTable () { @@ -308,7 +324,8 @@ case "$CREATE" in if [ "$PTTYPE" == "GPT" ]; then sgdisk -Z $DISK fi - fdisk $DISK <<< "w" + # Crear y borrar una partición para que la tabla se genere bien. + echo -e "o\nn\np\n\n\n\nd\n\nw" | fdisk $DISK partprobe $DISK 2>/dev/null ;; esac @@ -592,7 +609,7 @@ echo $TYPE function ogGetLastSector () { # Variables locales -local DISK PART PTTYPE LASTSECTOR SECTORS CYLS +local DISK PART PTTYPE LASTSECTOR SECTORS CYLS IOSIZE # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk [int_npart]" \ @@ -626,7 +643,14 @@ case "$PTTYPE" in if [ $# == 1 ]; then SECTORS=$(awk -v D=${DISK#/dev/} '{if ($4==D) {print $3*2}}' /proc/partitions) CYLS=$(sfdisk -g $DISK | cut -f2 -d" ") - LASTSECTOR=$[SECTORS/CYLS*CYLS-1] + ########## agp ########### + IOSIZE=$(fdisk -l $DISK | grep I/O | cut -d ":" -f2 | cut -d "/" -f1 | cut -d " " -f2) + if [[ $IOSIZE = 4096 ]]; then + LASTSECTOR=$[SECTORS-512] + else + LASTSECTOR=$[SECTORS/CYLS*CYLS-1] + fi + ########## agp ########### else LASTSECTOR=$(sfdisk -uS -l $DISK 2>/dev/null | \ awk -v P="$PART" '{if ($1==P) {if ($2=="*") print $4; else print $3} }') diff --git a/client/engine/FileSystem.lib b/client/engine/FileSystem.lib index 257c5a23..73fd44bc 100755 --- a/client/engine/FileSystem.lib +++ b/client/engine/FileSystem.lib @@ -468,7 +468,7 @@ findmnt -n -o TARGET $PART function ogIsFormated () { # Variables locales -local DISK +local PART if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_nfilesys" \ "if $FUNCNAME 1 1; then ... ; fi" @@ -476,8 +476,9 @@ if [ "$*" == "help" ]; then fi # Falso, en caso de error. [ $# == 2 ] || return 1 +PART="$(ogDiskToDev $1 $2 2>/dev/null)" || return 1 -test -n "$(ogMount "$1" "$2" 2>/dev/null)" +test -n "$(blkid -s TYPE $PART | egrep -vi "swap|_member")" } diff --git a/client/engine/Image.lib b/client/engine/Image.lib index 5e799968..7940b4f5 100755 --- a/client/engine/Image.lib +++ b/client/engine/Image.lib @@ -627,7 +627,7 @@ fi # Procesar parámetros. DISK=$(ogDiskToDev "$3") || return $? IMGFILE=$(ogGetPath "$1" "$2.mbr") || return $? -[ -r "$IMGFILE" ] || ogRaiseError OG_ERR_NOTFOUND "$IMGFILE" || return $? +[ -r "$IMGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$IMGFILE" || return $? # Restaurar imagen del MBR. dd if="$IMGFILE" of="$DISK" bs=512 count=1 || ogRaiseError $OG_ERR_IMAGE "$1 $IMGFILE" || return $? @@ -663,7 +663,7 @@ fi # Procesar parámetros. DISK=$(ogDiskToDev "$3") || return $? IMGFILE=$(ogGetPath "$1" "$2.mbr") || return $? -[ -r "$IMGFILE" ] || ogRaiseError OG_ERR_NOTFOUND "$IMGFILE" || return $? +[ -r "$IMGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$IMGFILE" || return $? # Restaurar imagen del MBR. dd if="$IMGFILE" of="$DISK" bs=446 count=1 || ogRaiseError $OG_ERR_IMAGE "$1 $IMGFILE" || return $? @@ -802,7 +802,7 @@ function ogGetImageProgram () { local IMGFILE IMGFILE=$(ogGetPath "$1" "$2.img") || return $? -[ -r "$IMGFILE" ] || ogRaiseError OG_ERR_NOTFOUND "$IMGFILE" || return $? +[ -r "$IMGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$IMGFILE" || return $? ogGetImageInfo $IMGFILE | awk -F: '{print $1}' } @@ -811,7 +811,7 @@ function ogGetImageCompressor () { local IMGFILE IMGFILE=$(ogGetPath "$1" "$2.img") || return $? -[ -r "$IMGFILE" ] || ogRaiseError OG_ERR_NOTFOUND "$IMGFILE" || return $? +[ -r "$IMGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$IMGFILE" || return $? ogGetImageInfo $IMGFILE | awk -F: '{print $2}' } @@ -819,7 +819,7 @@ function ogGetImageType () { local IMGFILE IMGFILE=$(ogGetPath "$1" "$2.img") || return $? -[ -r "$IMGFILE" ] || ogRaiseError OG_ERR_NOTFOUND "$IMGFILE" || return $? +[ -r "$IMGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$IMGFILE" || return $? #partimage -B gui=no imginfo "$IMGFILE" 2>&1 | \ # awk '/^Filesystem/ {sub(/\.\.+/," "); sub(/fs$/,""); print toupper($2);}' ogGetImageInfo $IMGFILE | awk -F: '{print $3}' @@ -841,7 +841,7 @@ fi [ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $? # Error si el fichero de imagen no es accesible. IMGFILE=$(ogGetPath "$1" "$2.img") || return $? -[ -r "$IMGFILE" ] || ogRaiseError OG_ERR_NOTFOUND "$IMGFILE" || return $? +[ -r "$IMGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$IMGFILE" || return $? # Devuelve el tamaño de la imagen en KB. #partimage -B gui=no imginfo "$IMGFILE" 2>&1 | \ diff --git a/doc/CHANGELOG.es.txt b/doc/CHANGELOG.es.txt index 61c2278b..7253d94d 100644 --- a/doc/CHANGELOG.es.txt +++ b/doc/CHANGELOG.es.txt @@ -2,6 +2,26 @@ LISTA DE CAMBIOS CHANGELOG.es.txt ======================================== +Lista de cambios incluidos en OpenGnSys 1.0.6a (versión de mantenimiento) +---------------------------------------------- + +Tickets resueltos en módulo OpenGnSys Cloning Engine: +#696 Función ogUnmountAll monta la caché +#728 Solucionar problemas de clonado y postconfiguración de Windows 10 +#733 No se genera tabla de partición en discos vacíos +#735 Discos duros con sectores de 4096 bytes + +Tickets resueltos en módulo OpenGnSys Server: +#719 setclientmode: desaparece equipo de netBootAvanzado + +Tickets resueltos en módulo OpenGnSys Web Admin Console: +#721 Consola Restaurar Imagen: falla el filtro de equipos +#732 Ampliar el calendario de programación de acciones más allá de 2015 (parcial) + +Tickets genéricos resueltos: +#734 Liberar versión de mantenimiento OpenGnSys 1.0.6a en rama principal + + Lista de cambios incluidos en OpenGnSys 1.0.6 --------------------------------------------- diff --git a/doc/VERSION.txt b/doc/VERSION.txt index edca710e..f68d1eb2 100644 --- a/doc/VERSION.txt +++ b/doc/VERSION.txt @@ -1 +1 @@ -OpenGnSys 1.0.6 +OpenGnSys 1.0.6a r4820 diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh index 71f71d97..a7c6843b 100755 --- a/installer/opengnsys_update.sh +++ b/installer/opengnsys_update.sh @@ -884,7 +884,7 @@ function updateSummary() echoAndLog "Project version: $(cat $VERSIONFILE)" echoAndLog "Update log file: $LOG_FILE" if [ -n "$NEWFILES" ]; then - echoAndLog "Check the new config files: $(echo $NEWFILES)" + echoAndLog "Check new config files: $(echo $NEWFILES)" fi if [ -n "$NEWSERVICES" ]; then echoAndLog "New compiled services: $(echo $NEWSERVICES)" @@ -896,6 +896,7 @@ function updateSummary() echoAndLog " New OpenGnSys services will be restarted by the cronjob." fi fi + echoAndLog "Warning: You must to clear web browser cache before loading OpenGnSys page." echo } diff --git a/server/bin/setclientmode b/server/bin/setclientmode index 02e5be59..68729cc0 100755 --- a/server/bin/setclientmode +++ b/server/bin/setclientmode @@ -97,13 +97,17 @@ for MAC in $ETHERNET; do LEFT JOIN perfileshard USING (idperfilhard) LEFT JOIN menus USING (idmenu) WHERE ordenadores.mac='$MAC';") - # Quitar tabuladores y sustituir caracteres quitando acentos y tildes. + # Quitar tabuladores, sustituir acentos y dejar resolución por defecto. DATOS=$(echo ${DATOS// /} | tr 'áéíóúñÁÉÍÓÚÑ' 'aeiounAEIOUN') + [[ "$DATOS" =~ (vga|video) ]] || DATOS="$DATOS vga=788" # Crear fichero PXE a partir de la plantilla con los datos obtenidos en la BD. sed -e "s/vga=[0-9]*//g; s/INFOHOST/$DATOS/g" $TEMPLATE >$PXEFILE - # Actualizar en la BD el modo de arranque asociada el cliente. + # Ponemos como propietario al usuario y grupo de Apache para que se pueda cambiar desde la consola web. + PERMS=$(ps axho user,group,comm|awk '!/root/ && /httpd|apache/ {u=$1; g=$2} END {if (g) printf "%s:%s",u,g}') + [ -n "$PERMS" ] && chown $PERMS $PXEFILE + # Actualizar en la BD la plantilla de arranque asociada el cliente. mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -e \ - "UPDATE ordenadores SET arranque='$BOOTMODE' WHERE mac='$MAC';" + "UPDATE ordenadores SET arranque='$(basename $TEMPLATE)' WHERE mac='$MAC';" fi let NPC=NPC+1 done |