summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/asistentes/jscripts/asistentes.js
diff options
context:
space:
mode:
Diffstat (limited to 'admin/WebConsole/asistentes/jscripts/asistentes.js')
-rw-r--r--admin/WebConsole/asistentes/jscripts/asistentes.js199
1 files changed, 146 insertions, 53 deletions
diff --git a/admin/WebConsole/asistentes/jscripts/asistentes.js b/admin/WebConsole/asistentes/jscripts/asistentes.js
index 1e9e3d95..b47e888b 100644
--- a/admin/WebConsole/asistentes/jscripts/asistentes.js
+++ b/admin/WebConsole/asistentes/jscripts/asistentes.js
@@ -6,12 +6,15 @@
// Nombre del fichero: asistentes.js
// Descripción :
// Este fichero implementa las funciones javascript del fichero AsistentesEjecutarScripts.php (Comandos)
-// version 1.0.6b y 1.1: codeDeployImage: Compone atributo para el comando restaurar imagen (ticket #757)
+// version 1.1: cliente con varios repositorios - Imagenes de todos los repositorios de la UO.
+// autor: Irina Gomez, Universidad de Sevilla
+// fecha 2015-06-17
+// version 1.1: showPartitionForm: Se incluye aviso para particiones GTP.
// autor: Irina Gomez, ETSII Universidad de Sevilla
-// fecha: 2016-10-27
-// versión 1.0.6b: Si existe Cache al crear las particiones reservamos la cuarta libre (ticket #753)
+// fecha: 2016-06-21
+// version 1.1: codeDeployImage: Compone atributo para el comando restaurar imagen (ticket #757)
// autor: Irina Gomez, ETSII Universidad de Sevilla
-// fecha: 2016-12-15
+// fecha: 2016-10-27
// ***********************************************************************************************************
function codeCloneRemotePartition(form){
@@ -67,13 +70,16 @@ switch (form.idmetodo.value)
protocol="UNICAST-DIRECT";
break;
}
+
// Datos imagen
var imagen = form.idimagen.value.split("_");
+
//form.codigo.value="deployImage REPO /";
if (form.modo[0].checked)
{
// UHU - Distinguimos entre disco y particion, el valor de idparticion sera disco;particion. eje. 1;1
var diskPart = form.idparticion.value.split(";");
+ var imagen = form.idimagen.value.split("_");
command="deployImage " + imagen[0] + " /" + imagen[1] + " "+diskPart[0]+" " + diskPart[1] + " " + protocol ;
form.codigo.value="\
ogEcho log session \"[0] $MSG_SCRIPTS_TASK_START " + command + "\"\n \ " +
@@ -82,11 +88,11 @@ command + " \n";
// Atributos para comando RestaurarImagen
form.atrib_restore.value = "dsk=" + diskPart[0] + "@par="+ diskPart[1] +"@idi=" +imagen[2] +
"@nci="+imagen[1] + "@ipr="+ imagen[0] +"@ifs=" +imagen[3] +
- "@ptc="+protocol +"@";
+ "@ptc="+protocol +"@";
}
else
{
- command="updateCache REPO /" + imagen[1] + ".img" + " " + protocol ;
+ command="updateCache REPO /" + imagen[1] + ".img" + " " + protocol ;
form.codigo.value="\
ogEcho log session \"[0] $MSG_SCRIPTS_TASK_START " + command +"\"\n \ " +
command + " \n";
@@ -101,29 +107,36 @@ function modificarCodigo() {
}
function codeParticionado(form){
- var errorMsg = "¡El espacio libre en disco no puede ser menor que 0!";
var n_disk = form.n_disk.value;
var tipo_part_table = form.tipo_part_table.value;
// Comprobamos si la opcion elejida es GPT o MSDOS para llamar a una funcion u otra
if(tipo_part_table == "GPT"){
+ var freediskGPT = parseInt(document.getElementById("freediskGPT").value);
// Comprobamos que el espacio libre en el disco no sea negativo, si lo es, dar aviso
- if(parseInt(document.getElementById("freediskGPT").value) < 0){
- alert(errorMsg);
+ if(freediskGPT < 0){
+ alert(TbMsg['NODISKSIZE']);
+ }
+ else if (!validaCache(freediskGPT)) {
+ alert(TbMsg['NOCACHESIZE']);
}
else{
codeParticionadoGPT(form);
}
}
else{
+ var freedisk = parseInt(document.getElementById("freedisk").value);
// Comprobamos que el espacio libre en el disco no sea negativo, si lo es, dar aviso
- if(parseInt(document.getElementById("freedisk").value) < 0){
- alert(errorMsg);
+ if(freedisk < 0){
+ alert(TbMsg['NODISKSIZE']);
+ }
+ else if (!validaCache(freedisk)) {
+ alert(TbMsg['NOCACHESIZE']);
}
else{
codeParticionadoMSDOS(form);
}
}
-
+
}
@@ -131,26 +144,18 @@ function codeParticionadoMSDOS (form) {
var partCode="";
var logicalCode="";
var sizecacheCode="";
- // cacheCode: codigo para preparar la particion cache
- var cacheCode="";
- // cacheInit: codigo para crear la particion cache, al final de todo el proceso
- var cacheInit="";
+ var cacheCode;
var cacheSize;
var extended=false;
var n_disk = form.n_disk.value;
var tipo_part_table = form.tipo_part_table.value;
var maxParts = 4;
- var emptyCache = "";
+ var swapPart = new Array();
+ var swapCode = "";
// Comprobamos si esta seleccionada la cuarta particion y no es CACHE
- if(form.check4.checked) {
- if (form.part4.value == "CACHE") {
- // Si existe Cache al crear las particiones reservamos la cuarta libre
- emptyCache = " EMPTY:0";
- } else {
- maxParts = 5;
- }
- }
+ if(form.check4.checked && form.part4.value != "CACHE")
+ maxParts = 5;
for (var nPart=1; nPart<maxParts; nPart++) {
var partCheck=eval("form.check"+nPart);
@@ -159,13 +164,24 @@ function codeParticionadoMSDOS (form) {
if (partType.value == "CUSTOM" ) {
var partTypeCustom=eval("form.part"+nPart+"custom");
partCode += " " + partTypeCustom.value;
- if (partTypeCustom.value == "EXTENDED") {
+ switch(partTypeCustom.value) {
+ case "EXTENDED":
extended=true;
+ break;
+ case "LINUX-SWAP":
+ swapPart.push(nPart);
+ break;
}
+
} else {
partCode += " " + partType.value;
- if (partType.value == "EXTENDED") {
+ switch(partType.value) {
+ case "EXTENDED":
extended=true;
+ break;
+ case "LINUX-SWAP":
+ swapPart.push(nPart);
+ break;
}
}
var partSize=eval("form.size"+nPart);
@@ -175,12 +191,11 @@ function codeParticionadoMSDOS (form) {
} else {
partCode += ":" + partSize.value;
}
- // En la partición 4 dejo espacio libre para la Cache
- if (nPart == 3) partCode += emptyCache;
} else {
partCode += " EMPTY:0";
}
}
+ var cacheCode="";
// Si se selecciono la particion 4 y es CACHE
if(form.part4.value == "CACHE"){
@@ -188,29 +203,34 @@ function codeParticionadoMSDOS (form) {
if (form.size4.value == "0") {
sizecacheCode="\
ogEcho session \"[20] $MSG_HELP_ogGetCacheSize\"\n \
-sizecache=`ogGetCacheSize` \n";
- cacheInit="initCache "+n_disk+" $sizecache &>/dev/null | tee -a $OGLOGCOMMAND \n ";
+sizecache=`ogGetCacheSize` \n ";
cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
+ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
ogDeletePartitionTable "+n_disk+" \n \
-ogExecAndLog command ogUpdatePartitionTable "+n_disk+" \n \ ";
+ogExecAndLog command ogUpdatePartitionTable "+n_disk+" \n \
+ogEcho session \"[50] $MSG_HELP_ogCreateCache\"\n \
+initCache "+n_disk+" $sizecache NOMOUNT &>/dev/null \n ";
} else {
if (form.size4.value == "CUSTOM") {
cacheSize = form.size4custom.value;
} else {
cacheSize = form.size4.value;
}
- cacheInit="initCache " + n_disk + " " + cacheSize + " &>/dev/null | tee -a $OGLOGCOMMAND \n ";
cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
+ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
ogDeletePartitionTable "+n_disk+" \n \
-ogUpdatePartitionTable "+n_disk+" \n \ ";
+ogUpdatePartitionTable "+n_disk+" \n \
+ogEcho session \"[50] $MSG_HELP_ogCreateCache\"\n \
+initCache " + n_disk + " " + cacheSize + " NOMOUNT &>/dev/null";
}
} else {
cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
+ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
ogDeletePartitionTable "+n_disk+" \n \
-ogUpdatePartitionTable "+n_disk+" \n \ ";
+ogUpdatePartitionTable "+n_disk+" \n";
partCode += " EMPTY:0";
}
}
@@ -230,8 +250,14 @@ partCode += " EMPTY:0";
if (partType.value == "CUSTOM" ) {
var partTypeCustom=eval("form.part"+nPart+"custom");
logicalCode += " " + partTypeCustom.value;
+ // Partición swap
+ if (partTypeCustom.value == "LINUX-SWAP")
+ swapPart.push(nPart);
} else {
logicalCode += " " + partType.value;
+ // Partición swap
+ if (partType.value == "LINUX-SWAP")
+ swapPart.push(nPart);
}
var partSize=eval("form.size"+nPart);
if (partSize.value == "CUSTOM" ) {
@@ -247,25 +273,36 @@ partCode += " EMPTY:0";
partCode += logicalCode;
}
+ // Formateo de la partición swap
+ if (swapPart.length > 0) {
+ for (var i=0; i < swapPart.length; i++) {
+ swapCode += "ogEcho session log \"$MSG_HELP_ogFormat "+n_disk+" "+swapPart[i]+" LINUX-SWAP \" \n " ;
+ swapCode += "ogExecAndLog command session log ogFormat "+n_disk+" "+swapPart[i]+" LINUX-SWAP \n ";
+ }
+
+ }
+
form.codigo.value="\
-" + sizecacheCode + " \
-ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
-ogEcho log session \"[0] $MSG_HELP_ogCreatePartitions \"\n \
+" + sizecacheCode + " \n \
ogEcho session \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\"\n \
-ogUnmountAll "+n_disk+" 2>/dev/null\n \
+ogUnmountAll "+n_disk+" 2>/dev/null \n \
ogUnmountCache \n \
-" + cacheCode + " \
+" + cacheCode + " \n \
ogEcho session \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
ogExecAndLog command session ogListPartitions "+n_disk+" \n \
ogEcho session \"[70] $MSG_HELP_ogCreatePartitions " + partCode + "\"\n \
-ogExecAndLog command ogCreatePartitions "+n_disk+" " + partCode + " \n \
-ogEcho session \"[80] $MSG_HELP_ogSetPartitionActive "+n_disk+" 1\"\n \
-ogSetPartitionActive "+n_disk+" 1 \n \
-ogEcho log session \"[100] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
-ogUpdatePartitionTable "+n_disk+" \n \
-ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \
-" + cacheInit + " \
-ogExecAndLog command session log ogListPartitions "+n_disk+" \n";
+if ogExecAndLog command session ogCreatePartitions "+n_disk+" " + partCode + "; then \n \
+ ogEcho session \"[80] $MSG_HELP_ogSetPartitionActive "+n_disk+" 1\"\n \
+ ogSetPartitionActive "+n_disk+" 1 \n \
+ ogEcho log session \"[100] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
+ ogUpdatePartitionTable "+n_disk+" \n \
+ ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \
+ ogExecAndLog command session log ogListPartitions "+n_disk+" \n \
+ "+ swapCode +"\
+else \n \
+ ogEcho session log \"[100] ERROR: $MSG_HELP_ogCreatePartitions\" \n \
+ sleep 5 \n \
+fi";
}
@@ -278,6 +315,9 @@ function codeParticionadoGPT (form) {
var extended=false;
var n_disk = form.n_disk.value;
var tipo_part_table = form.tipo_part_table.value;
+ var swapPart = new Array();
+ var swapCode = "";
+
numParts=document.getElementById("numGPTpartitions").value;
for (var nPart=1; nPart <= numParts; nPart++) {
@@ -287,15 +327,15 @@ function codeParticionadoGPT (form) {
// Solo tratamos la particion 4 como cache, si se selecciono este tipo
if(nPart == 4 && form.partGPT4.value == "CACHE") {
if (form.sizeGPT4.value == "0") {
- sizecacheCode="\
+ sizecacheCode="\
ogEcho session \"[20] $MSG_HELP_ogGetCacheSize\"\n \
-sizecache=`ogGetCacheSize` \n";
+sizecache=`ogGetCacheSize` \n ";
cacheCode="\
ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
ogDeletePartitionTable "+n_disk+" \n \
ogExecAndLog command ogUpdatePartitionTable "+n_disk+" \n \
ogEcho session \"[50] $MSG_HELP_ogCreateCache\"\n \
-initCache "+ n_disk +" $sizecache &>/dev/null \n ";
+initCache "+ n_disk +" $sizecache NOMOUNT &>/dev/null \n ";
} else {
if (form.sizeGPT4.value == "CUSTOM") {
cacheSize = form.sizeGPT4custom.value;
@@ -307,15 +347,21 @@ ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \
ogDeletePartitionTable "+n_disk+" \n \
ogUpdatePartitionTable "+n_disk+" \n \
ogEcho session \"[50] $MSG_HELP_ogCreateCache\"\n \
-initCache " + n_disk +" "+ cacheSize + " &>/dev/null";
+initCache " + n_disk +" "+ cacheSize + " NOMOUNT &>/dev/null";
}
} else{
var partType=eval("form.partGPT"+nPart);
if (partType.value == "CUSTOM" ) {
var partTypeCustom=eval("form.partGPT"+nPart+"custom");
partCode += " " + partTypeCustom.value;
+ // Partición swap
+ if (partTypeCustom.value == "LINUX-SWAP")
+ swapPart.push(nPart);
} else {
partCode += " " + partType.value;
+ // Partición swap
+ if (partType.value == "LINUX-SWAP")
+ swapPart.push(nPart);
}
var partSize=eval("form.sizeGPT"+nPart);
if (partSize.value == "CUSTOM" ) {
@@ -337,6 +383,14 @@ partCode += " EMPTY:0";
}
}
}
+ // Formateo de la partición swap
+ if (swapPart.length > 0) {
+ for (var i=0; i < swapPart.length; i++) {
+ swapCode += " ogEcho session log \"$MSG_HELP_ogFormat "+n_disk+" "+swapPart[i]+" LINUX-SWAP \" \n" ;
+ swapCode += " ogExecAndLog command session log ogFormat "+n_disk+" "+swapPart[i]+" LINUX-SWAP \n";
+ }
+ }
+
form.codigo.value="\
" + sizecacheCode + " \n \
ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
@@ -354,7 +408,10 @@ ogSetPartitionActive "+n_disk+" 1 \n \
ogEcho log session \"[100] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \
ogUpdatePartitionTable "+n_disk+" \n \
ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \
-ogExecAndLog command session log ogListPartitions "+n_disk+" \n";
+ogExecAndLog command session log ogListPartitions "+n_disk+" \n";
+
+// Formateo de la swap
+form.codigo.value += swapCode;
}
@@ -363,8 +420,19 @@ function showPartitionForm (tipo_table_part) {
if(tipo_table_part == "MSDOS"){
// De los dos tipos, se oculta el otro
document.getElementById("formGPT").style.display="none";
+ document.getElementById("warngpt").style.display="none";
} else{
document.getElementById("formMSDOS").style.display="none";
+ // Para GPT obliga que primera partición sea EFI
+ document.getElementById("checkGPT1").checked=true;
+ document.getElementById("checkGPT1").disabled=true;
+ document.getElementById("partGPT1").value="CUSTOM";
+ document.getElementById("partGPT1custom").value="EFI";
+ document.getElementById("sizeGPT1").value="CUSTOM";
+ document.getElementById("sizeGPT1").disabled=false;
+ document.getElementById("sizeGPT1custom").value="512000";
+ document.getElementById("sizeGPT1custom").disabled=false;
+ document.getElementById("warngpt").style.display="table-row";
}
}
@@ -430,6 +498,30 @@ function getMinDiskSize(disk){
return (minSize > 1024 ? minSize - 1024 : minSize)
}
+// Calcula el tamaño de la mayor cache y lo guarda en un campo oculto
+function getMaxCacheSize() {
+ var cacheSizeArray = document.getElementsByName("cachesize");
+ var maxSize = cacheSizeArray[0].value;
+ for(var i= 1; i < cacheSizeArray.length; i++){
+ if(maxSize < cacheSizeArray[i].value)
+ maxSize = cacheSizeArray[i].value;
+ }
+ document.getElementById("maxcachesize").value = maxSize;
+ return
+
+}
+
+
+// Comprueba que la cache quepa en el espacio libre del disco
+function validaCache (freedisk) {
+ var form = document.fdatos;
+ var maxcachesize = parseInt(document.getElementById("maxcachesize").value);
+ if(form.part4.value == "CACHE" && form.check4.checked && form.size4.value == 0 ){
+ return (freedisk - maxcachesize > 0 ? true : false);
+ }
+ return true;
+}
+
// Código para calcular el espacio libre del disco.
function calculateFreeDisk(form) {
// Si esta seleccionada la opcion GPT, se llama a la funcion correspondiente
@@ -616,3 +708,4 @@ function checkExtendedPartition(form) {
}
}
+