summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authoririna <irinagomez@us.es>2011-03-31 08:43:03 +0000
committeririna <irinagomez@us.es>2011-03-31 08:43:03 +0000
commit140b7c954f70de6eea9a4f56ef12b804c35e89e2 (patch)
tree9ce8990317ca3205620fd1b818c725ce5b67cf2a /client
parent1fc14827b8f824ce50a591c917c9c24a0c8331ae (diff)
test de particiones y bloqueos
git-svn-id: https://opengnsys.es/svn/branches/version1.0@1683 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client')
-rw-r--r--client/shared/lib/engine/tests/NoModify/Lock1.shtest85
-rw-r--r--client/shared/lib/engine/tests/README6
-rwxr-xr-xclient/shared/lib/engine/tests/crearTestDisk1157
3 files changed, 248 insertions, 0 deletions
diff --git a/client/shared/lib/engine/tests/NoModify/Lock1.shtest b/client/shared/lib/engine/tests/NoModify/Lock1.shtest
new file mode 100644
index 00000000..39bac3eb
--- /dev/null
+++ b/client/shared/lib/engine/tests/NoModify/Lock1.shtest
@@ -0,0 +1,85 @@
+€jemplo de test de funciones de bloqueo de particiones e imagenes
+=================================================================
+# Funciones de bloqueo
+
+$ ogLock 1 1
+$ ls /var/lock/lock-dev-sda1
+/var/lock/lock-dev-sda1
+
+$ if ogIsLocked 1 1; then echo si; else echo no; fi
+si
+
+$ ls /var/lock/lock-dev-sda1
+/var/lock/lock-dev-sda1
+
+$ ogUnlock 1 1
+$ if ogIsLocked 1 1; then echo si; else echo no; fi
+no
+
+$ ogLockPartition 1 1
+$ if ogIsLocked 1 1; then echo si; else echo no; fi
+si
+
+$ ogUnlockPartition 1 1
+$ if ogIsLocked 1 1; then echo si; else echo no; fi
+no
+
+
+
+
+# Es necesario desmontar para probar ogCheck
+$ ogUnmount 1 1 >/dev/null 2>&1
+
+$ ogLock 1 1
+
+$ ogCheckFs 1 1
+OpenGnSys error: ogCheckFs: "1 1"
+
+$ ogUnlock 1 1
+
+$ ogCheckFs 1 1 >/dev/null 2>&1; echo $?
+0
+
+
+# Bloqueo del repositorio
+
+$ ogIsRepoLocked; echo $?
+1
+
+# FALTA: test bloqueo repo cuando esta bloqueado
+
+# bloqueo de imagenes
+
+
+
+# Creo una imagen ficticia
+$ touch $OGIMG/_test_.img
+
+$ ogLockImage REPO _test_
+$ ls $OGIMG/_test_.lock
+/opt/opengnsys/images/_test_.lock
+
+$ if ogIsImageLocked REPO _test_ ; then echo si; else echo no; fi
+si
+
+$ ogUnlockImage REPO _test_
+$ if ogIsImageLocked REPO _test_ ; then echo si; else echo no; fi
+no
+
+$ rm $OGIMG/_test_.*
+
+# Comprobando los errores (FALTA)
+$ ogLock
+OpenGnSys error: ogLockPartition: ""
+
+
+$ ogLock 1 10
+OpenGnSys error: ogDiskToDev: ""
+
+
+$ ogIsLocked
+OpenGnSys error: ogIsLocked: ""
+
+$ ogIsLocked 1 10
+OpenGnSys error: ogDiskToDev: ""
+
diff --git a/client/shared/lib/engine/tests/README b/client/shared/lib/engine/tests/README
new file mode 100644
index 00000000..f3190973
--- /dev/null
+++ b/client/shared/lib/engine/tests/README
@@ -0,0 +1,6 @@
+Separamos los test que no modifican el cliente y los que sí lo hacen (pueden modificar la partitiones, imagenes, etc) en dos directorios distintos.
+
+Ademas los numeramos diferentes por si los queremos mover de sitio:
+ Los test acabados en 1x no modifican nada
+ Los test acabados en 2x modifican el cliente
+
diff --git a/client/shared/lib/engine/tests/crearTestDisk1 b/client/shared/lib/engine/tests/crearTestDisk1
new file mode 100755
index 00000000..95d51802
--- /dev/null
+++ b/client/shared/lib/engine/tests/crearTestDisk1
@@ -0,0 +1,157 @@
+#!/bin/bash
+# Descripcion: Crea un test no destructivo de la libreria Disk.lib conficurandolo
+# para un cliente concreto.
+# Se ejecuta en el servidor y el test creado se utiliza en el cliente
+# Los datos los toma de la base de administración.
+# Uso: creaTestDisk1 NombreCliente
+#
+# Falta: la bd no tiene información de las particiones lógicas (el script sí esta preparado para ellas)
+# la bd no tiene datos del tamaño del disco
+
+
+# Variables.
+PROG=$(basename $0)
+OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
+SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
+TESTDIR="$OPENGNSYS/client/lib/engine/tests/NoModify"
+TESTFILE="$TESTDIR/Disk1-$1.shtest "
+# Control básico de errores.
+if [ $# -ne 1 ]; then
+ echo "$PROG: Error de ejecución"
+ echo "Formato: $PROG NOMBRE_PC"
+ exit 1
+fi
+
+# Obtener datos de acceso a la Base de datos.
+source $SERVERCONF
+
+# Comprobar si se recibe nombre de aula o de equipo.
+PARTICIONES=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
+ "SELECT ordenadores_particiones.numpar, tipospar.tipopar, ordenadores_particiones.tamano
+ FROM tipospar INNER JOIN ordenadores_particiones INNER JOIN ordenadores
+ WHERE tipospar.codpar=ordenadores_particiones.codpar
+ AND ordenadores.idordenador=ordenadores_particiones.idordenador
+ AND nombreordenador='$1'
+ ORDER By ordenadores_particiones.numpar;")
+# Si la cadena esta vacia, error
+if [ -z "$PARTICIONES" ]; then
+ echo "El equipo $1 no existe en la base de datos"
+ exit 2
+fi
+
+# Ejemplo para añadir partitiones lógicas
+#PARTICIONES="$PARTICIONES 5 LINUX-SWAP 1999999"
+PRI=$( echo ${PARTICIONES%%\ 5\ *}|awk '{print $2"_"$3" "$5"_"$6" "$8"_"$9" "$11"_"$12}' |sed s/\ _//g |sed s/\ //g)
+
+if $(echo $PARTICIONES |grep " 5 " >/dev/null); then
+ LOG=$( echo ${PARTICIONES##*\ 5\ }|awk '{print $1"_"$2" "$4"_"$5" "$7"_"$8" "$10"_"$11" "}' |sed s/\ _//g |sed s/\ //g)
+else
+ LOG=""
+fi
+AUX=$(echo $PARTICIONES| wc -w)
+let NUMPART=AUX/3
+P1SIZE=$(echo $PARTICIONES|cut -d\ -f3)
+P1TYPE=$(echo $PARTICIONES|cut -d\ -f2)
+case "$P1TYPE" in
+ EMPTY) P1ID=0 ;;
+ FAT12) P1ID=1 ;;
+ EXTENDED) P1ID=5 ;;
+ FAT16) P1ID=6 ;;
+ NTFS|EXFAT) P1ID=7 ;;
+ FAT32) P1ID=b ;;
+ HFAT12) P1ID=11 ;;
+ HFAT16) P1ID=16 ;;
+ HNTFS) P1ID=17 ;;
+ HFAT32) P1ID=1b ;;
+ LINUX-SWAP) P1ID=82 ;;
+ EXT[234]|REISERFS|REISER4|XFS|JFS)
+ P1ID=83 ;;
+ LINUX-LVM) P1ID=8e ;;
+ SOLARIS) P1ID=bf ;;
+ CACHE) P1ID=ca ;;
+ LINUX-RAP1ID) P1ID=fd ;;
+ *) P1ID="" ;;
+esac
+
+cat > $TESTFILE << EOF
+Ejemplo de test funciones de particionado no destrutivo
+=======================================================
+
+# Desmontamos antes de empezar
+$ ogUnmountAll 1 2>/dev/null
+
+$ ogUnmountCache 2>/dev/null
+
+# Cambio de formato
+
+$ ogDevToDisk /dev/sda
+1
+
+$ ogDevToDisk /dev/sda1
+1 1
+
+$ ogDiskToDev
+/dev/sda
+
+$ ogDiskToDev 1
+/dev/sda
+
+$ ogDiskToDev 1 1
+/dev/sda1
+
+$ ogFsToId NTFS
+7
+
+$ ogFsToId EXT4
+83
+
+
+# Tamaño de disco (cuando haya informacion en la base de datos)
+
+#$ ogGetDiskSize 1
+#312571224
+
+# Tamaño de la particion
+
+$ ogGetPartitionSize 1 1
+$P1SIZE
+
+# Información de las particiones
+$ ogListPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g | sed s/\ //g
+$PRI$LOG
+$ ogListPrimaryPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g | sed s/\ //g
+$PRI
+
+$ ogListLogicalPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g
+$LOG
+
+$ ogGetPartitionsNumber
+$NUMPART
+
+# Partición activa
+
+$ ogSetPartitionActive 1 2 >/dev/null
+$ ogGetPartitionActive 1
+2
+
+$ ogSetPartitionActive 1 1 >/dev/null
+$ ogGetPartitionActive 1
+1
+
+
+# Tipo de particiones
+
+$ ogGetPartitionId 1 1
+$P1ID
+
+
+# Montamos la cache al final
+$ ogMountCache >/dev/null 2>&1
+
+
+EOF
+
+
+
+echo "Test creado en $TESTFILE"
+echo "Las particiones logicas hay que incluirlas a mano, porque no hay información de las mismas en la base de datos."