summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2014-03-25 17:40:58 +0100
committerJonathan Bauer2014-03-25 17:40:58 +0100
commit63ddcba5ed59e951140cde6eb69f23dc92f13a2c (patch)
treeee5249cafb0b4ba05c8718be7f8d9fad12711031
parent[idleaction] added support for SLX_REBOOT_SHUTDOWN (diff)
parent[vbox] Added vmchooser-xml_filter (diff)
downloadtm-scripts-63ddcba5ed59e951140cde6eb69f23dc92f13a2c.tar.gz
tm-scripts-63ddcba5ed59e951140cde6eb69f23dc92f13a2c.tar.xz
tm-scripts-63ddcba5ed59e951140cde6eb69f23dc92f13a2c.zip
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
-rw-r--r--[-rwxr-xr-x]remote/modules/vbox/data/opt/openslx/scripts/systemd-vbox_env3
-rw-r--r--remote/modules/vbox/data/opt/openslx/scripts/vmchooser-xml_filter74
-rw-r--r--remote/modules/vmware/module.conf44
3 files changed, 121 insertions, 0 deletions
diff --git a/remote/modules/vbox/data/opt/openslx/scripts/systemd-vbox_env b/remote/modules/vbox/data/opt/openslx/scripts/systemd-vbox_env
index a69719ac..ece8c9f1 100755..100644
--- a/remote/modules/vbox/data/opt/openslx/scripts/systemd-vbox_env
+++ b/remote/modules/vbox/data/opt/openslx/scripts/systemd-vbox_env
@@ -19,6 +19,9 @@ export PATH="$PATH":/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt
VBOX_CONF_DIR=/opt/openslx/etc/vbox
VBOXMANAGE=$(which vboxmanage)
+# create required standard directories
+mkdir -p "/tmp/virt/virtualbox" -m 1777
+
# load required Vbox modules
for module in vboxdrv.ko vboxnetadp.ko vboxnetflt.ko vboxpci.ko ; do
insmod /lib/modules/vbox/${module} || slxlog "vbox-systemd" "Loading of ${module} failed."
diff --git a/remote/modules/vbox/data/opt/openslx/scripts/vmchooser-xml_filter b/remote/modules/vbox/data/opt/openslx/scripts/vmchooser-xml_filter
new file mode 100644
index 00000000..c50b01a5
--- /dev/null
+++ b/remote/modules/vbox/data/opt/openslx/scripts/vmchooser-xml_filter
@@ -0,0 +1,74 @@
+#!/bin/bash
+# Probably needs bash somewhere
+# -----------------------------------------------------------------------------
+# Copyright (c) 2007..2009 - RZ Uni FR
+# Copyright (c) 2007..2011 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# xmlfilter.sh
+# - This script is invoked by the vmchooser tool. It simply filters xml-
+# files (taking the path to these files in $1). You might modify it in any
+# way to match your needs, e.g. ask some database instead. You can re-
+# implement it in any other programming language too. You simply have to
+# return a list of proper xml files to be interpreted by the vmchooser
+# binary). Please check for vmchooser.sh too ...
+# -----------------------------------------------------------------------------
+
+# This script .
+#
+# currently:
+# - filter for slxgrp (which comes from /etc/machine-setup)
+#
+
+# include default directories
+. /opt/openslx/config
+
+if [ -f "${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf" ]; then
+ . "${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf"
+fi
+
+function handlePersistentVM() {
+ if grep --extended-regexp -q "<persistent param=\"(|.+:)$USER(|:.+)\"" "$1"; then
+ # If this virtual machine is useable as persistent version for current
+ # user we provide an additional persistent version.
+ # TODO: This evil black magic needs to be rewritten some day (by someone who understands it)
+ local originalImagePath=$(grep -io '<image_name param=.*"' "$1" | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')
+ local imageName=$(basename "$originalImagePath")
+ eval export SLX_VM_PERSISTENT_PATH="${SLX_VM_PERSISTENT_PATH}" && \
+ local imagePath="${SLX_VM_PERSISTENT_PATH}${imageName}"
+ local persistentConfigVersionFilePath="$(mktemp --directory)/$(basename "$1")"
+ local vmchooserFilePath="$(dirname "$0")/vmchooser-clc"
+ if [ ! -f "$vmchooserFilePath" ]; then
+ vmchooserFilePath='/opt/openslx/scripts/vmchooser-clc'
+ fi
+ "$vmchooserFilePath" "$1" "$persistentConfigVersionFilePath" \
+ --create-persistent-config "$imagePath" && \
+ echo "$persistentConfigVersionFilePath"
+ fi
+}
+
+for FILE in $(find -L "$1" -iname "*.xml"); do
+ # filter all xmls which aren't set active
+ grep -i -q "<active param=.*true.*" "$FILE" || continue
+ # HACK: filter all virtualbox images, as vbox is not ready yet
+ #grep -i -q "<virtualmachine param=.*virtualbox.*" "$FILE" && continue
+ if [ -n "${SLX_VM_POOL_FILTER}" ]; then
+ # filter all xmls with pool-param not equal to vmchooser::env
+ if [ $(grep "<pools param=\"${SLX_VM_POOL_FILTER}\"" "$FILE" | wc -l) -eq 1 ]; then
+ handlePersistentVM "$FILE"
+ echo "$FILE"
+ fi
+ else
+ handlePersistentVM "$FILE"
+ # if there is no pool set, just take all available xmls
+ echo "$FILE"
+ fi
+done
+
diff --git a/remote/modules/vmware/module.conf b/remote/modules/vmware/module.conf
index 017d1d5b..749a0838 100644
--- a/remote/modules/vmware/module.conf
+++ b/remote/modules/vmware/module.conf
@@ -22,3 +22,47 @@ REQUIRED_FILES="
REQUIRED_BINARIES="
vmnet-netifup
"
+
+REQUIRED_VMWARE_DELETIONS="
+ /var/lib/vmware
+ /etc/vmw*
+ /etc/rc?.d/???vmware*
+ /etc/rc0.d/K06vmware-workstation-server
+ /etc/pam.d/vmware-authd
+ /etc/rc3.d/S25vmamqpd
+ /etc/xdg/menus/applications-merged
+ /etc/init.d/vmamqpd
+ /etc/init.d/vmware*
+ /etc/thnuclnt
+ /etc/cups/thnuclnt.convs
+ /etc/cups/thnuclnt.types
+ /etc/modprobe.d/vmware-fuse.conf
+ /lib/modules/3.11.0-13-generic/misc/vmnet.ko
+ /lib/modules/3.11.0-13-generic/misc/vmmon.ko
+ /usr/share/mime/packages/vmware-player.xml
+ /usr/share/applications/vmware*
+ /usr/share/desktop-directories/vmware-ace-vms.directory
+ /usr/share/man/man1/vmware.1.gz
+ /usr/share/doc/vmware*
+ /usr/share/icons/hicolor/*/mimetypes/application-certificate.png
+ /usr/share/icons/hicolor/*/apps/vmware*
+ /usr/share/icons/hicolor/*/mimetypes/*vmware*
+ /usr/bin/vmnet-dhcpd
+ /usr/bin/ovftool
+ /usr/bin/vmrun
+ /usr/bin/vmware-wssc-adminTool
+ /usr/bin/vmnet-bridge
+ /usr/bin/vmplayer
+ /usr/bin/vmnet-sniffer
+ /usr/bin/vmss2core
+ /usr/bin/vm-support
+ /usr/bin/vmnet-natd
+ /usr/bin/vmnet-netifup
+ /usr/bin/vmware*
+ /usr/include/vmware-vix
+ /usr/lib/libvixAllProducts.so
+ /usr/lib/cups/filter/thnucups
+ /usr/lib/diskLibWrapper.so
+ /usr/lib/vmware*
+ /usr/sbin/vmware*
+"