diff options
Diffstat (limited to 'client/engine/Net.lib')
-rwxr-xr-x | client/engine/Net.lib | 119 |
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/ ;; |