summaryrefslogtreecommitdiffstats
path: root/client/engine/Net.lib
diff options
context:
space:
mode:
Diffstat (limited to 'client/engine/Net.lib')
-rwxr-xr-xclient/engine/Net.lib119
1 files changed, 103 insertions, 16 deletions
diff --git a/client/engine/Net.lib b/client/engine/Net.lib
index 6ac5a94a..b7534e20 100755
--- a/client/engine/Net.lib
+++ b/client/engine/Net.lib
@@ -4,12 +4,65 @@
#@brief Librería o clase Net
#@class Net
#@brief Funciones básicas de red.
-#@version 0.10
+#@version 1.0.2
#@warning License: GNU GPLv3+
#*/
#/**
+# ogGetGroupDir [ str_repo ]
+#@brief Devuelve el cmaino del directorio para el grupo del cliente.
+#@param str_repo repositorio de imágenes (opcional)
+#@return path_dir - Camino al directorio del grupo.
+#@note repo = { REPO, CACHE } REPO por defecto
+#@exception OG_ERR_FORMAT formato incorrecto.
+#@version 1.0.2 - Primera versión para OpenGnSys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2011-10-03
+#*/
+function ogGetGroupDir ()
+{
+local REPO DIR GROUP
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME str_repo" \
+ "$FUNCNAME REPO ==> /opt/opengnsys/images/groups/Grupo1"
+ return
+fi
+# Error si se recibe más de 1 parámetro.
+case $# in
+ 0) REPO="REPO" ;;
+ 1) REPO="$1" ;;
+ *) ogRaiseError $OG_ERR_FORMAT "$*"
+ return $? ;;
+esac
+
+GROUP="$(ogGetGroupName)"
+if [ -n "$GROUP" ]; then
+ DIR=$(ogGetPath "$REPO" "/groups/$GROUP" 2>/dev/null)
+ [ -d "$DIR" ] && echo "$DIR"
+fi
+}
+
+
+#/**
+# ogGetGroupName
+#@brief Devuelve el nombre del grupo al que pertenece el cliente.
+#@return str_group - Nombre de grupo.
+#@version 1.0.2 - Primera versión para OpenGnSys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2011-10-03
+#*/
+function ogGetGroupName ()
+{
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => Grupo1"
+ return
+fi
+[ -n "$group" ] && echo "$group"
+}
+
+
+#/**
# ogGetHostname
#@brief Muestra el nombre del cliente.
#@return str_host - nombre de máquina
@@ -20,6 +73,10 @@
function ogGetHostname ()
{
local HOST
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => pc1"
+ return
+fi
# Tomar nombre de la variable HOSTNAME
HOST="$HOSTNAME"
# Si no, tomar del DHCP, opción host-name /* (comentario para Doxygen)
@@ -30,14 +87,14 @@ HOST="$HOSTNAME"
[ -z "$HOST" ] && HOST=$(awk 'BEGIN {RS=""; FS="="}
$1~/hostname/ {print $2}' /proc/cmdline)
[ "$HOSTNAME" != "$HOST" ] && export HOSTNAME="$HOST"
-echo $HOST
+[ -n "$HOST" ] && echo $HOST
}
#/**
# ogGetNetInterface
#@brief Muestra la interfaz de red del sistema
-#@return str_interfaz - interfaz de red
+#@return str_interface - interfaz de red
#@version 1.0 - Integración OpenGnSys 0.10 Opengnsys 0.10-testing
#@note Usa las variables utilizadas por el initrd "/etc/net-ethX.conf
#@author Antonio J. Doblas Viso. Universidad de Malaga.
@@ -45,13 +102,14 @@ echo $HOST
#*/ ##
function ogGetNetInterface ()
{
- echo $DEVICE
-
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => eth0"
+ return
+fi
+[ -n "$DEVICE" ] && echo "$DEVICE"
}
-
-
#/**
# ogGetIpAddress
#@brief Muestra la dirección IP del sistema
@@ -63,19 +121,29 @@ function ogGetNetInterface ()
#@note Usa las variables utilizadas por el initrd "/etc/net-ethX.conf
#@author Antonio J. Doblas Viso. Universidad de Malaga.
#@date 2011-02-24
+#@version 1.0.2 - Soporte para varias tarjetas de red
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2011-06-17
#*/ ##
function ogGetIpAddress ()
{
local IP
-if [ -n $IPV4ADDR ]
-then
- echo $IPV4ADDR
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 192.168.0.10"
+ return
+fi
+if [ -n $IPV4ADDR ]; then
+ IP=$IPV4ADDR
else
- # Obtener direcciones IP. /* (comentario para Doxygen)
- IP=$(ip address show | awk '$2!~/lo/ { readline; if ($1~/inet$/) {sub (/\/.*/, ""); printf ("%s ", $2)}}')
- # Mostrar sólo la primera. (comentario para Doxygen) */
- echo ${IP%% *}
+ # Obtener direcciones IP.
+ if [ -n "$DEVICE" ]; then
+ IP=$(ip -o address show up dev "$DEVICE" 2>/dev/null | awk '{if ($3~/inet$/) {printf ("%s ", $4)}}')
+ else
+ IP=$(ip -o address show up | awk '$2!~/lo/ {if ($3~/inet$/) {printf ("%s ", $4)}}')
+ fi
fi
+# Mostrar solo la primera.
+echo ${IP%%/*} # (comentario para Doxygen) */
}
@@ -86,12 +154,23 @@ fi
#@version 0.10 - Integración en OpenGnSys 0.10
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2010-02-11
+#@version 1.0.2 - Soporte para varias tarjetas de red
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2011-06-17
#*/ ##
function ogGetMacAddress ()
{
local MAC
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 00:11:22:33:44:55"
+ return
+fi
# Obtener direcciones Ethernet.
-MAC=$(ip address show | awk '$2!~/lo/ {readline; if ($1~/ether/) printf ("%s ", toupper($2));}')
+if [ -n "$DEVICE" ]; then
+ MAC=$(ip -o address show up dev "$DEVICE" 2>/dev/null | awk '{sub (/.*\\/, ""); if ($1~/ether/) printf ("%s ", toupper($2));}')
+else
+ MAC=$(ip -o address show up | awk '$2!~/lo/ {sub (/.*\\/, ""); if ($1~/ether/) printf ("%s ", toupper($2));}')
+fi
# Mostrar sólo la primera.
echo ${MAC%% *}
}
@@ -111,6 +190,10 @@ echo ${MAC%% *}
#*/ ##
function ogGetRepoIp ()
{
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 192.168.0.2"
+ return
+fi
# Obtener direcciones IP, segun el protocolo de montaje
if [ -n "$OGIMG" ]; then
case "$ogprotocol" in
@@ -135,8 +218,12 @@ fi
#*/ ##
function ogGetServerIp ()
{
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 192.168.0.2"
+ return
+fi
# Obtener direcciones IP.
-if [ -n "$PENGNSYS" ]; then
+if [ -n "$OPENGNSYS" ]; then
case "$ogprotocol" in
nfs) mount | grep " on $OPENGNSYS " | cut -f1 -d: ;;
smb) mount | grep " on $OPENGNSYS " | cut -f3 -d/ ;;