summaryrefslogtreecommitdiffstats
path: root/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux
diff options
context:
space:
mode:
authorChristian Rößler2018-07-10 16:39:11 +0200
committerChristian Rößler2018-07-10 16:39:11 +0200
commit8dba10d138fa615f1c9e2783ede5395104be996a (patch)
treecf9de98833d53650a1700aeaf25c552a3665984a /core/modules/run-virt/data/opt/openslx/vmchooser/data/linux
parent[run-virt] Linux scripts: mounting of (pseudo)floppy fd1 via systemd (diff)
downloadmltk-8dba10d138fa615f1c9e2783ede5395104be996a.tar.gz
mltk-8dba10d138fa615f1c9e2783ede5395104be996a.tar.xz
mltk-8dba10d138fa615f1c9e2783ede5395104be996a.zip
[run-virt] Linux scripts: shares mountes simultaneously (no wait
while trying eg. cifs versions)
Diffstat (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser/data/linux')
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc40
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc79
2 files changed, 85 insertions, 34 deletions
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 30b75efa..d6fd7caa 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
@@ -72,5 +72,45 @@ function mounter()
return $AUSGANG
}
+function mount_share()
+{
+ USERSHAREDIR="${USERHOME}"/SHARE_"${CONFIGROW}" # ROHSHARES: Zeilennummer; Shares >=1
+ if [ ! -d "$USERSHAREDIR" ]; then
+ mkdir -p "$USERSHAREDIR" 2>/dev/null
+ chown "$LOCALUSER":$(id --group "$LOCALUSER") "$USERSHAREDIR"
+ chmod 700 "$USERSHAREDIR"
+ logger "openslx sharemapper: share mount dir $USERSHAREDIR created."
+ fi
+ # Wenn kein Homeverzeichnis, dann share zuerst mit den Credentials aus der share-Konfig
+ # versuchen zu mounten; wenn nicht, dann mit den Hauptcredentials nachversuchen.
+ logger "openslx sharemapper: non-home share \"$SHARENAME\" (${CONFIGROW}) found."
+ export USER="${SHAREUSER}"
+ export PASSWD="${SHAREPASS}"
+ mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERSHAREDIR}" 2>/dev/null 1>&2
+ ERR=$?
+ unset USER
+ unset PASSWD
+ if [ "$ERR" -eq 1 ]; then
+ export USER="${GLOBALUSER}"
+ export PASSWD="${PW}"
+ logger "openslx sharemapper: Could not mount ${USERSHAREDIR}, now trying using user credentials."
+ 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."
+ fi
+ unset USER
+ unset PASSWD
+ fi
+ if [ "$ERR" -eq 0 ]; then
+ logger "openslx sharemapper: Linking ${SHARELETTER} and $SHARENAME, if possible."
+ [ -n "${SHARELETTER}" ] && ln -s "$USERSHAREDIR" "${USERHOME}"/"$SHARELETTER"
+ [ -n "${SHARELETTER}" ] && ln -s "$USERSHAREDIR" "${USERHOME}"/"$SHARENAME"
+ else
+ logger "openslx sharemapper: deleting previously creates share mount dir $USERSHAREDIR."
+ rmdir "$USERSHAREDIR" 2>/dev/null
+ fi
+}
+
### Funktionen Ende ###############################
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 12f08af4..7fd3c73d 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
@@ -1,3 +1,46 @@
+function mount_nothome()
+{
+ if [ -z "${SHARELETTER}" ]; then
+ logger "openslx sharemapper: $SHARELETTER not found. Do not know where to mount."
+ continue
+ else
+ USERSHAREDIR="${USERHOME}"/SHARE_"${CONFIGROW}" # ROHSHARES: Zeilennummer; Shares >=1
+ if [ ! -d "$USERSHAREDIR" ]; then
+ mkdir -p "$USERSHAREDIR" 2>/dev/null
+ chown "$LOCALUSER":$(id --group "$LOCALUSER") "$USERSHAREDIR"
+ chmod 700 "$USERSHAREDIR"
+ logger "openslx sharemapper: share mount dir $USERSHAREDIR created."
+ fi
+ fi
+ # Wenn kein Homeverzeichnis, dann share zuerst mit den Credentials aus der share-Konfig
+ # versuchen zu mounten; wenn nicht, dann mit den Hauptcredentials nachversuchen.
+ logger "openslx sharemapper: non-home share \"$SHARENAME\" (${CONFIGROW}) found."
+ export USER="${SHAREUSER}"
+ export PASSWD="${SHAREPASS}"
+ mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERSHAREDIR}" 2>/dev/null 1>&2
+ ERR=$?
+ unset USER
+ unset PASSWD
+ if [ "$ERR" -eq 1 ]; then
+ export USER="${GLOBALUSER}"
+ export PASSWD="${PW}"
+ logger "openslx sharemapper: Could not mount ${USERSHAREDIR}, now trying using user credentials."
+ 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."
+ fi
+ unset USER
+ unset PASSWD
+ fi
+ if [ "$ERR" -eq 0 ]; then
+ logger "openslx sharemapper: Linking ${SHARELETTER} and $SHARENAME, if possible."
+ [ -n "${SHARELETTER}" ] && ln -s "$USERSHAREDIR" "${USERHOME}"/"$SHARELETTER"
+ [ -n "${SHARELETTER}" ] && ln -s "$USERSHAREDIR" "${USERHOME}"/"$SHARENAME"
+ fi
+}
+
+
function mount_shares()
{
for (( CONFIGROW = 1; CONFIGROW < ${#ROHSHARES[@]}; CONFIGROW++ )); do
@@ -26,7 +69,7 @@ function mount_shares()
logger "openslx sharemapper: home share \"$SHARENAME\" found (for PERSISTENT)."
export USER="${GLOBALUSER}"
export PASSWD="${PW}"
- mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERHOMEDIR}" 2>/dev/null 1>&2
+ mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERHOMEDIR}" 2>/dev/null 1>&2 &
unset USER
unset PASSWD
else
@@ -34,39 +77,7 @@ function mount_shares()
logger "openslx sharemapper: $SHARELETTER not found. Do not know where to mount."
continue
else
- USERSHAREDIR="${USERHOME}"/SHARE_"${CONFIGROW}" # ROHSHARES: Zeilennummer; Shares >=1
- if [ ! -d "$USERSHAREDIR" ]; then
- mkdir -p "$USERSHAREDIR" 2>/dev/null
- chown "$LOCALUSER":$(id --group "$LOCALUSER") "$USERSHAREDIR"
- chmod 700 "$USERSHAREDIR"
- logger "openslx sharemapper: share mount dir $USERSHAREDIR created."
- fi
- fi
- # Wenn kein Homeverzeichnis, dann share zuerst mit den Credentials aus der share-Konfig
- # versuchen zu mounten; wenn nicht, dann mit den Hauptcredentials nachversuchen.
- logger "openslx sharemapper: non-home share \"$SHARENAME\" (${CONFIGROW}) found."
- export USER="${SHAREUSER}"
- export PASSWD="${SHAREPASS}"
- mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERSHAREDIR}" 2>/dev/null 1>&2
- ERR=$?
- unset USER
- unset PASSWD
- if [ "$ERR" -eq 1 ]; then
- export USER="${GLOBALUSER}"
- export PASSWD="${PW}"
- logger "openslx sharemapper: Could not mount ${USERSHAREDIR}, now trying using user credentials."
- 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."
- fi
- unset USER
- unset PASSWD
- fi
- if [ "$ERR" -eq 0 ]; then
- logger "openslx sharemapper: Linking ${SHARELETTER} and $SHARENAME, if possible."
- [ -n "${SHARELETTER}" ] && ln -s "$USERSHAREDIR" "${USERHOME}"/"$SHARELETTER"
- [ -n "${SHARELETTER}" ] && ln -s "$USERSHAREDIR" "${USERHOME}"/"$SHARENAME"
+ mount_share &
fi
fi
done