From e21d69bfc5f1713597e1ba088008dd625647ea36 Mon Sep 17 00:00:00 2001 From: Christian Rößler Date: Tue, 27 Mar 2018 15:21:09 +0200 Subject: [run-virt] Linux mount scripts now mount different cifs version. --- .../vmchooser/data/linux/includes/10_functions.inc | 51 ++++++++++++++++------ .../data/linux/includes/30_mount_shares.inc | 14 +++--- 2 files changed, 46 insertions(+), 19 deletions(-) (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser/data/linux') diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc index 3152b85d..30b75efa 100644 --- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc +++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc @@ -26,25 +26,48 @@ function already_mounted() function mounter() { # Ausgabe: konnte mounten: 0, konnte nicht mounten: 1, schon gemountet 2 - already_mounted "$3" + already_mounted "$4" ERR=$? if [ "$ERR" -eq 0 ]; then logger "openslx sharemapper: $3 already mounted." AUSGANG=2 else - AUSGANG=0 - x=2 - while ! mount $1 $2 $3 2>/dev/null 1>&2; do - logger "openslx sharemapper: could not mount ${2} to ${3}, waited another $x seconds, retrying." - sleep $x - if [ "$x" -gt 6 ]; then - AUSGANG=1 - logger "openslx sharemapper: timeout, could not mount ${2} to ${3}." - break - fi - let x=x+2 - done - [ "$AUSGANG" -eq 0 ] && logger "openslx sharemapper: ${2} mounted to ${3}." # Todo: Schöner schreiben:) + case "$MOUNTER" in + nfs) AUSGANG=0 + x=2 + while ! mount $1 $2 $3 $4 2>/dev/null 1>&2; do + logger "openslx sharemapper: could not mount ${3} to ${4}, waited another $x seconds, retrying." + sleep $x + if [ "$x" -gt 6 ]; then + AUSGANG=1 + logger "openslx sharemapper: timeout, could not mount ${3} to ${4}." + break + fi + let x=x+2 + done + [ "$AUSGANG" -eq 0 ] && logger "openslx sharemapper: ${3} mounted to ${4} (nfs)." # Todo: Schöner schreiben:) + ;; + cifs) AUSGANG=0 + x=2 + for VERSION in $CIFSVERSIONS; do + AUSGANG=0 + while ! mount $1 vers="$VERSION",${2} $3 $4 2>/dev/null 1>&2; do + logger "openslx sharemapper: could not mount ${3} to ${4}, waited another $x seconds, retrying." + sleep $x + if [ "$x" -gt 4 ]; then + AUSGANG=1 + logger "openslx sharemapper: timeout, could not mount ${3} to ${4} cifs v${VERSION}." + break + fi + let x=x+2 + done + [ "$AUSGANG" -eq 0 ] && break + done + [ "$AUSGANG" -eq 0 ] && logger "openslx sharemapper: ${3} mounted to ${4} (cifs $VERSION)." + ;; + *) logger "openslx sharemapper: unknown mounter ${MOUNTER}!" + ;; + esac fi return $AUSGANG } diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc index 0ce8b427..12f08af4 100644 --- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc +++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc @@ -12,9 +12,13 @@ function mount_shares() if [ "${SHAREPATH:0:2}" == '\\' ] || [ "${SHAREPATH:0:2}" == '//' ]; then USER=$(echo "$SHAREUSER"|cut -d '\' -f 2) SHAREPATH="${SHAREPATH//\\//}" # '\' --> `/` :-) - MOUNTOPTS="$MOUNTOPTSCIFS" + MOUNTER=cifs + MOUNTPARAM="$MOUNTCIFSPRAE" + MOUNTOPTS="$MOUNTCIFSOPTS" else - MOUNTOPTS="$MOUNTOPTSNFS" + MOUNTER=nfs + MOUNTPARAM="$MOUNTNFSPRAE" + MOUNTOPTS="$MOUNTNFSOPTS" fi # User-Homeverzeichnis? @@ -22,7 +26,7 @@ function mount_shares() logger "openslx sharemapper: home share \"$SHARENAME\" found (for PERSISTENT)." export USER="${GLOBALUSER}" export PASSWD="${PW}" - mounter "${MOUNTOPTS}" "${SHAREPATH}" "${USERHOMEDIR}" 2>/dev/null 1>&2 + mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERHOMEDIR}" 2>/dev/null 1>&2 unset USER unset PASSWD else @@ -43,7 +47,7 @@ function mount_shares() logger "openslx sharemapper: non-home share \"$SHARENAME\" (${CONFIGROW}) found." export USER="${SHAREUSER}" export PASSWD="${SHAREPASS}" - mounter "${MOUNTOPTS}" ${SHAREPATH} ${USERSHAREDIR} 2>/dev/null 1>&2 + mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERSHAREDIR}" 2>/dev/null 1>&2 ERR=$? unset USER unset PASSWD @@ -51,7 +55,7 @@ function mount_shares() export USER="${GLOBALUSER}" export PASSWD="${PW}" logger "openslx sharemapper: Could not mount ${USERSHAREDIR}, now trying using user credentials." - mounter "${MOUNTOPTS}" ${SHAREPATH} ${USERSHAREDIR} 2>/dev/null 1>&2 + mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERSHAREDIR}" 2>/dev/null 1>&2 ERR=$? # ERR merken wg. Links aus USERSHAREDIR if [ "$ERR" -eq 1 ]; then logger "openslx sharemapper: Could not mount ${USERSHAREDIR} even using user credentials; giving up." -- cgit v1.2.3-55-g7522