summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2016-04-08 09:36:48 +0000
committerramon <ramongomez@us.es>2016-04-08 09:36:48 +0000
commit01d425390ced0e20b320630619ea3dff749f4563 (patch)
tree38e4c212a781429ee8955d0ca6b7649cdb378b56 /client
parent492bf9cfb8ab1043da8f65e9576aa534a1eeedb5 (diff)
#744: Nuevas funciones {{{ogLockDisk}}} y {{{ogUnlockDisk}}}.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4869 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client')
-rwxr-xr-xclient/engine/Disk.lib70
-rw-r--r--client/shared/etc/lang.ca_ES.conf2
-rw-r--r--client/shared/etc/lang.en_GB.conf2
-rw-r--r--client/shared/etc/lang.es_ES.conf2
4 files changed, 76 insertions, 0 deletions
diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib
index f7726b3e..0af97497 100755
--- a/client/engine/Disk.lib
+++ b/client/engine/Disk.lib
@@ -1132,6 +1132,41 @@ echo $PARTS | cut -sf5- -d" "
#/**
+# ogLockDisk int_ndisk
+#@brief Genera un fichero de bloqueo para un disco en uso exlusivo.
+#@param int_ndisk nº de orden del disco
+#@return (nada)
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
+#@note El fichero de bloqueo se localiza en \c /var/lock/disk, siendo \c disk el dispositivo del disco, sustituyendo el carácter "/" por "-".
+#@version 1.1.0 - Primera versión para OpenGnSys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2016-04-07
+#*/ ##
+function ogLockDisk ()
+{
+# Variables locales
+local DISK LOCKFILE
+
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk" \
+ "$FUNCNAME 1"
+ return
+fi
+# Error si no se recibe 1 parámetro.
+[ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+
+# Obtener partición.
+DISK="$(ogDiskToDev $1)" || return $?
+
+# Crear archivo de bloqueo exclusivo.
+LOCKFILE="/var/lock/lock${DISK//\//-}"
+touch $LOCKFILE
+}
+
+
+#/**
# ogSetPartitionActive int_ndisk int_npartition
#@brief Establece cual es la partición activa de un disco.
#@param int_ndisk nº de orden del disco
@@ -1462,6 +1497,41 @@ ogSetPartitionType $1 $2 $NEWTYPE
#/**
+# ogUnlockDisk int_ndisk
+#@brief Elimina el fichero de bloqueo para un disco.
+#@param int_ndisk nº de orden del disco
+#@return (nada)
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
+#@note El fichero de bloqueo se localiza en \c /var/lock/disk, siendo \c disk el dispositivo del disco, sustituyendo el carácter "/" por "-".
+#@version 1.1.0 - Primera versión para OpenGnSys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2016-04-08
+#*/ ##
+function ogUnlockDisk ()
+{
+# Variables locales
+local DISK LOCKFILE
+
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk" \
+ "$FUNCNAME 1"
+ return
+fi
+# Error si no se recibe 1 parámetro.
+[ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+
+# Obtener partición.
+DISK="$(ogDiskToDev $1)" || return $?
+
+# Borrar archivo de bloqueo exclusivo.
+LOCKFILE="/var/lock/lock${DISK//\//-}"
+rm -f $LOCKFILE
+}
+
+
+#/**
# ogUpdatePartitionTable
#@brief Fuerza al kernel releer la tabla de particiones de los discos duros
#@param no requiere
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf
index ead87529..6f0885eb 100644
--- a/client/shared/etc/lang.ca_ES.conf
+++ b/client/shared/etc/lang.ca_ES.conf
@@ -208,6 +208,7 @@ MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una
MSG_HELP_ogListRegistryValues="Lista los nombres de los valores incluidos en una clave del registro de Windows."
MSG_HELP_ogListSoftware="Lista el inventario de programas instalados en un sistema operativo."
MSG_HELP_ogLock="Bloquea una partición para operación de uso exclusivo."
+MSG_HELP_ogLockDisk="Bloquea un disco para operación de uso exclusivo."
MSG_HELP_ogLockImage="Bloquea una imagen para operación de uso exclusivo."
MSG_HELP_ogLockPartition=$MSG_HELP_ogLock
MSG_HELP_ogMakeChecksumFile="Almacena la suma de comprobación de un fichero."
@@ -250,6 +251,7 @@ MSG_HELP_ogUcastSendPartition=""
MSG_HELP_ogUcastSyntax=""
MSG_HELP_ogUnhidePartition="Hace visible una partición de Windows."
MSG_HELP_ogUnlock="Desbloquea una partición tras finalizar una operación de uso exclusivo."
+MSG_HELP_ogUnlockDisk="Desbloquea un disco tras finalizar una operación de uso exclusivo."
MSG_HELP_ogUnlockImage="Desbloquea una imagen tras finalizar una operación de uso exclusivo."
MSG_HELP_ogUnlockPartition=$MSG_HELP_ogUnlock
MSG_HELP_ogUnmountAll="Desmonta todos los sistemas de archivos."
diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf
index f19b9106..1b225e60 100644
--- a/client/shared/etc/lang.en_GB.conf
+++ b/client/shared/etc/lang.en_GB.conf
@@ -208,6 +208,7 @@ MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una
MSG_HELP_ogListRegistryValues="Lista los nombres de los valores incluidos en una clave del registro de Windows."
MSG_HELP_ogListSoftware="Lista el inventario de programas instalados en un sistema operativo."
MSG_HELP_ogLock="Bloquea una partición para operación de uso exclusivo."
+MSG_HELP_ogLockDisk="Bloquea un disco para operación de uso exclusivo."
MSG_HELP_ogLockImage="Bloquea una imagen para operación de uso exclusivo."
MSG_HELP_ogLockPartition=$MSG_HELP_ogLock
MSG_HELP_ogMakeChecksumFile="Store the file checksum."
@@ -250,6 +251,7 @@ MSG_HELP_ogUcastSendPartition=""
MSG_HELP_ogUcastSyntax=""
MSG_HELP_ogUnhidePartition="Unhide a Windows partition."
MSG_HELP_ogUnlock="Desbloquea una partición tras finalizar una operación de uso exclusivo."
+MSG_HELP_ogUnlockDisk="Desbloquea un dicso tras finalizar una operación de uso exclusivo."
MSG_HELP_ogUnlockImage="Desbloquea una imagen tras finalizar una operación de uso exclusivo."
MSG_HELP_ogUnlockPartition=$MSG_HELP_ogUnlock
MSG_HELP_ogUnmountAll="Unmount all filesystems."
diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf
index da7d8db2..c12d6482 100644
--- a/client/shared/etc/lang.es_ES.conf
+++ b/client/shared/etc/lang.es_ES.conf
@@ -208,6 +208,7 @@ MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una
MSG_HELP_ogListRegistryValues="Lista los nombres de los valores incluidos en una clave del registro de Windows."
MSG_HELP_ogListSoftware="Lista el inventario de programas instalados en un sistema operativo."
MSG_HELP_ogLock="Bloquea una partición para operación de uso exclusivo."
+MSG_HELP_ogLockDisk="Bloquea un disco para operación de uso exclusivo."
MSG_HELP_ogLockImage="Bloquea una imagen para operación de uso exclusivo."
MSG_HELP_ogLockPartition=$MSG_HELP_ogLock
MSG_HELP_ogMakeChecksumFile="Almacena la suma de comprobación de un fichero."
@@ -250,6 +251,7 @@ MSG_HELP_ogUcastSendPartition=""
MSG_HELP_ogUcastSyntax=""
MSG_HELP_ogUnhidePartition="Hace visible una partición de Windows."
MSG_HELP_ogUnlock="Desbloquea una partición tras finalizar una operación de uso exclusivo."
+MSG_HELP_ogUnlockDisk="Desbloquea un disco tras finalizar una operación de uso exclusivo."
MSG_HELP_ogUnlockImage="Desbloquea una imagen tras finalizar una operación de uso exclusivo."
MSG_HELP_ogUnlockPartition=$MSG_HELP_ogUnlock
MSG_HELP_ogUnmountAll="Desmonta todos los sistemas de archivos."