summaryrefslogtreecommitdiffstats
path: root/remote/modules
diff options
context:
space:
mode:
authorSimon Rettberg2015-05-15 18:20:05 +0200
committerSimon Rettberg2015-05-15 18:20:05 +0200
commitf778ad0cfa03bd7358efc4b54dff352cfbc0ec19 (patch)
tree1bd27a0980993c579080f086499d724a7cbe594a /remote/modules
parentMerge branch 'master' of dnbd3:openslx-ng/tm-scripts (diff)
downloadtm-scripts-f778ad0cfa03bd7358efc4b54dff352cfbc0ec19.tar.gz
tm-scripts-f778ad0cfa03bd7358efc4b54dff352cfbc0ec19.tar.xz
tm-scripts-f778ad0cfa03bd7358efc4b54dff352cfbc0ec19.zip
Moved common data files of vmchooser and vmchooser2 to new module called run-virt
Diffstat (limited to 'remote/modules')
l---------remote/modules/run-virt/data/etc/systemd/system/graphical.target.wants/run-virt-env.service1
-rw-r--r--remote/modules/run-virt/data/etc/systemd/system/mount-vm-store.service (renamed from remote/modules/vmchooser/data/etc/systemd/system/mount-vm-store.service)0
l---------remote/modules/run-virt/data/etc/systemd/system/network.target.wants/mount-vm-store.service (renamed from remote/modules/vmchooser/data/etc/systemd/system/network.target.wants/mount-vm-store.service)0
-rw-r--r--remote/modules/run-virt/data/etc/systemd/system/run-virt-env.service9
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/bin/clc.bash (renamed from remote/modules/vmchooser/data/opt/openslx/bin/clc.bash)0
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading (renamed from remote/modules/vmchooser/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading)0
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/scripts/systemd-mount_vm_store (renamed from remote/modules/vmchooser2/data/opt/openslx/scripts/systemd-mount_vm_store)0
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/scripts/systemd-run_virt_env (renamed from remote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env)0
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/scripts/vmchooser-clc (renamed from remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-clc)0
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/scripts/vmchooser-run_virt (renamed from remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt)0
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/scripts/vmchooser-xml_filter (renamed from remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-xml_filter)0
-rw-r--r--remote/modules/run-virt/data/opt/openslx/vmchooser/config/smb.conf (renamed from remote/modules/vmchooser/data/opt/openslx/vmchooser/config/smb.conf)0
-rw-r--r--remote/modules/run-virt/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf (renamed from remote/modules/vmchooser/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf)0
-rw-r--r--remote/modules/run-virt/data/opt/openslx/vmchooser/config/vmchooser.conf (renamed from remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/vmchooser.conf)0
-rw-r--r--remote/modules/run-virt/data/opt/openslx/vmchooser/data/SHARELWS.BAT (renamed from remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/SHARELWS.BAT)0
-rw-r--r--remote/modules/run-virt/data/opt/openslx/vmchooser/data/bootpgm.exe (renamed from remote/modules/vmchooser/data/opt/openslx/vmchooser/data/bootpgm.exe)bin8704 -> 8704 bytes
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe (renamed from remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/openslx.exe)bin14336 -> 14336 bytes
-rwxr-xr-xremote/modules/run-virt/data/opt/openslx/xsessions/default.desktop (renamed from remote/modules/vmchooser/data/opt/openslx/xsessions/default.desktop)0
-rw-r--r--remote/modules/run-virt/module.build13
-rw-r--r--remote/modules/run-virt/module.conf1
l---------remote/modules/vmchooser/data/etc/systemd/system/graphical.target.wants/vmchooser.service1
-rw-r--r--remote/modules/vmchooser/data/etc/systemd/system/vmchooser.service9
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/scripts/systemd-mount_vm_store27
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt648
-rw-r--r--remote/modules/vmchooser/data/opt/openslx/vmchooser/config/vmchooser.conf4
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/vmchooser/data/openslx.exebin12800 -> 0 bytes
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/vmchooser/sessionstart4
-rw-r--r--remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-left.pngbin5361 -> 0 bytes
-rw-r--r--remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-right.pngbin3390 -> 0 bytes
-rw-r--r--remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool.ini4
-rw-r--r--remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-left.pngbin11337 -> 0 bytes
-rw-r--r--remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-right.pngbin3082 -> 0 bytes
-rw-r--r--remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets.ini4
l---------remote/modules/vmchooser2/data/etc/systemd/system/graphical.target.wants/vmchooser.service1
-rw-r--r--remote/modules/vmchooser2/data/etc/systemd/system/mount-vm-store.service10
l---------remote/modules/vmchooser2/data/etc/systemd/system/network.target.wants/mount-vm-store.service1
-rw-r--r--remote/modules/vmchooser2/data/etc/systemd/system/vmchooser.service9
-rwxr-xr-xremote/modules/vmchooser2/data/opt/openslx/bin/clc.bash307
-rwxr-xr-xremote/modules/vmchooser2/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading3
-rwxr-xr-xremote/modules/vmchooser2/data/opt/openslx/scripts/systemd-vmchooser_env182
-rwxr-xr-xremote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-clc475
-rwxr-xr-xremote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-xml_filter74
-rw-r--r--remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/smb.conf38
-rw-r--r--remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf54
-rw-r--r--remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/bootpgm.exebin8704 -> 0 bytes
-rw-r--r--remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-left.pngbin9187 -> 0 bytes
-rw-r--r--remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-right.pngbin3390 -> 0 bytes
-rw-r--r--remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx.ini4
-rwxr-xr-xremote/modules/vmchooser2/data/opt/openslx/xsessions/default.desktop10
49 files changed, 27 insertions, 1866 deletions
diff --git a/remote/modules/run-virt/data/etc/systemd/system/graphical.target.wants/run-virt-env.service b/remote/modules/run-virt/data/etc/systemd/system/graphical.target.wants/run-virt-env.service
new file mode 120000
index 00000000..c47218eb
--- /dev/null
+++ b/remote/modules/run-virt/data/etc/systemd/system/graphical.target.wants/run-virt-env.service
@@ -0,0 +1 @@
+../run-virt-env.service \ No newline at end of file
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/mount-vm-store.service b/remote/modules/run-virt/data/etc/systemd/system/mount-vm-store.service
index ff801963..ff801963 100644
--- a/remote/modules/vmchooser/data/etc/systemd/system/mount-vm-store.service
+++ b/remote/modules/run-virt/data/etc/systemd/system/mount-vm-store.service
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/network.target.wants/mount-vm-store.service b/remote/modules/run-virt/data/etc/systemd/system/network.target.wants/mount-vm-store.service
index d6a88c27..d6a88c27 120000
--- a/remote/modules/vmchooser/data/etc/systemd/system/network.target.wants/mount-vm-store.service
+++ b/remote/modules/run-virt/data/etc/systemd/system/network.target.wants/mount-vm-store.service
diff --git a/remote/modules/run-virt/data/etc/systemd/system/run-virt-env.service b/remote/modules/run-virt/data/etc/systemd/system/run-virt-env.service
new file mode 100644
index 00000000..fee3e1c6
--- /dev/null
+++ b/remote/modules/run-virt/data/etc/systemd/system/run-virt-env.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Sets up the virtualization environment
+Wants=graphical.target
+Before=graphical.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/opt/openslx/scripts/systemd-run_virt_env
diff --git a/remote/modules/vmchooser/data/opt/openslx/bin/clc.bash b/remote/modules/run-virt/data/opt/openslx/bin/clc.bash
index ee198c51..ee198c51 100755
--- a/remote/modules/vmchooser/data/opt/openslx/bin/clc.bash
+++ b/remote/modules/run-virt/data/opt/openslx/bin/clc.bash
diff --git a/remote/modules/vmchooser/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading b/remote/modules/run-virt/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading
index b0909760..b0909760 100755
--- a/remote/modules/vmchooser/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading
+++ b/remote/modules/run-virt/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading
diff --git a/remote/modules/vmchooser2/data/opt/openslx/scripts/systemd-mount_vm_store b/remote/modules/run-virt/data/opt/openslx/scripts/systemd-mount_vm_store
index 5e1ebf43..5e1ebf43 100755
--- a/remote/modules/vmchooser2/data/opt/openslx/scripts/systemd-mount_vm_store
+++ b/remote/modules/run-virt/data/opt/openslx/scripts/systemd-mount_vm_store
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env b/remote/modules/run-virt/data/opt/openslx/scripts/systemd-run_virt_env
index c39803cd..c39803cd 100755
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env
+++ b/remote/modules/run-virt/data/opt/openslx/scripts/systemd-run_virt_env
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-clc b/remote/modules/run-virt/data/opt/openslx/scripts/vmchooser-clc
index 337dee44..337dee44 100755
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-clc
+++ b/remote/modules/run-virt/data/opt/openslx/scripts/vmchooser-clc
diff --git a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt b/remote/modules/run-virt/data/opt/openslx/scripts/vmchooser-run_virt
index 07f40e0f..07f40e0f 100755
--- a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-run_virt
+++ b/remote/modules/run-virt/data/opt/openslx/scripts/vmchooser-run_virt
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-xml_filter b/remote/modules/run-virt/data/opt/openslx/scripts/vmchooser-xml_filter
index 5fd8acc5..5fd8acc5 100755
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-xml_filter
+++ b/remote/modules/run-virt/data/opt/openslx/scripts/vmchooser-xml_filter
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/config/smb.conf b/remote/modules/run-virt/data/opt/openslx/vmchooser/config/smb.conf
index d8966f71..d8966f71 100644
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/config/smb.conf
+++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/config/smb.conf
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf b/remote/modules/run-virt/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf
index bca1397c..bca1397c 100644
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf
+++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/vmchooser.conf b/remote/modules/run-virt/data/opt/openslx/vmchooser/config/vmchooser.conf
index b4355880..b4355880 100644
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/vmchooser.conf
+++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/config/vmchooser.conf
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/SHARELWS.BAT b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/SHARELWS.BAT
index 01838705..01838705 100644
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/SHARELWS.BAT
+++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/SHARELWS.BAT
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/data/bootpgm.exe b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/bootpgm.exe
index 88f89418..88f89418 100644
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/data/bootpgm.exe
+++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/bootpgm.exe
Binary files differ
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/openslx.exe b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe
index 31666278..31666278 100755
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/openslx.exe
+++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe
Binary files differ
diff --git a/remote/modules/vmchooser/data/opt/openslx/xsessions/default.desktop b/remote/modules/run-virt/data/opt/openslx/xsessions/default.desktop
index 9d3a472d..9d3a472d 100755
--- a/remote/modules/vmchooser/data/opt/openslx/xsessions/default.desktop
+++ b/remote/modules/run-virt/data/opt/openslx/xsessions/default.desktop
diff --git a/remote/modules/run-virt/module.build b/remote/modules/run-virt/module.build
new file mode 100644
index 00000000..ccb7c4e1
--- /dev/null
+++ b/remote/modules/run-virt/module.build
@@ -0,0 +1,13 @@
+
+fetch_source () {
+ :
+}
+
+build () {
+ :
+}
+
+post_copy() {
+ :
+}
+
diff --git a/remote/modules/run-virt/module.conf b/remote/modules/run-virt/module.conf
new file mode 100644
index 00000000..6778a258
--- /dev/null
+++ b/remote/modules/run-virt/module.conf
@@ -0,0 +1 @@
+# (void)
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/graphical.target.wants/vmchooser.service b/remote/modules/vmchooser/data/etc/systemd/system/graphical.target.wants/vmchooser.service
deleted file mode 120000
index ad1590e8..00000000
--- a/remote/modules/vmchooser/data/etc/systemd/system/graphical.target.wants/vmchooser.service
+++ /dev/null
@@ -1 +0,0 @@
-../vmchooser.service \ No newline at end of file
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/vmchooser.service b/remote/modules/vmchooser/data/etc/systemd/system/vmchooser.service
deleted file mode 100644
index 1a5a980a..00000000
--- a/remote/modules/vmchooser/data/etc/systemd/system/vmchooser.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Sets up the vmchooser environment
-Wants=graphical.target
-Before=graphical.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/opt/openslx/scripts/systemd-vmchooser_env
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-mount_vm_store b/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-mount_vm_store
deleted file mode 100755
index 17706b5e..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-mount_vm_store
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/ash
-
-. /opt/openslx/config || exit 1
-
-[ -z "$SLX_VM_NFS" ] && slxlog "mount-vmstore-config" "No SLX_VM_NFS given in /opt/openslx/config!" && exit 1
-[ "x${SLX_VM_NFS}" = "xdnbd3" ] && exit 0
-
-# create target directory
-mkdir -p /mnt/vmstore
-
-# check if it is a CIFS-share or NFS-share
-# no bash, so this is a bit ugly...
-TEMP_LOG=$(mktemp)
-if [ "${SLX_VM_NFS#//}" = "${SLX_VM_NFS}" ]; then
- # doesn't start with '//' -> assume NFS
- mount -t nfs -o ro,async,nolock "$SLX_VM_NFS" /mnt/vmstore > "${TEMP_LOG}"
- RET=$?
-else
- # starts with '//' -> assume CIFS
- mount -t cifs -o guest,ro,file_mode=0644,dir_mode=0755,nounix "$SLX_VM_NFS" /mnt/vmstore > "${TEMP_LOG}"
- RET=$?
-fi
-
-# check for errors
-if [ $RET -ne 0 ]; then
- slxlog "mount-vmstore-exec" "Mount of '$SLX_VM_NFS' failed with '$RET'." "${TEMP_LOG}"
-fi
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt b/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
deleted file mode 100755
index d41bf564..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
+++ /dev/null
@@ -1,648 +0,0 @@
-#!/bin/bash
-# Full bash required
-# -----------------------------------------------------------------------------
-# Copyright (c) 2007..2010 - RZ Uni FR
-# Copyright (c) 2007..2013 - 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/
-# -----------------------------------------------------------------------------
-# run-virt.sh
-# - This is the generic wrapper for the several virtualization solutions.
-# The idea is to setup a set of variables used by at least two different
-# tools and then include the specific plugin which configures the speci-
-# fied virtualization tool.
-################################################################################
-
-################################################################################
-### Define default dirs / get configs
-################################################################################
-
-VMCHOOSER_DIR="/opt/openslx/vmchooser"
-VMCHOOSER_CONF_DIR="$VMCHOOSER_DIR/config"
-
-# include general configuration from vmchooser
-[ -f "$VMCHOOSER_CONF_DIR/vmchooser.conf" ] && . "$VMCHOOSER_CONF_DIR/vmchooser.conf"
-# load general virtualization information
-[ -f "$VMCHOOSER_CONF_DIR/virtualization.conf" ] && . "$VMCHOOSER_CONF_DIR/virtualization.conf"
-# Load general openslx config
-[ -f "/opt/openslx/config" ] && . "/opt/openslx/config"
-
-################################################################################
-### Functions used throughout the script
-################################################################################
-
-# function to write to stdout and logfile
-LOGFILE="/var/log/openslx/run-virt.${USER}.$$.log"
-writelog () {
- # write to stdout
- echo -e "$1"
- # log into file
- echo -e "$1" >> "${LOGFILE}"
-}
-
-# Clean exit will be called at the end of this script
-cleanexit () {
- sleep 1
- # remove config dirs when exit
- if echo "${RMDIRS}" 2>/dev/null | grep -q "${xmlvirt}"; then
- writelog "${xmlvirt} exited. Cleaning up... \c"
- rm -rf -- ${RMDIRS} >/dev/null 2>&1
- writelog "done"
- fi
- # Disconnect dnbd3 device
- if [ -n "$dnbd3" ]; then
- for timeout in 1 1 2; do
- dnbd3-client -d "$dnbd3" -c -d "$dnbd3" -c && break
- writelog "dnbd3 still busy...."
- sleep "$timeout"
- done
- fi
- # Kill LPD
- kill "$PID_LPD"
- # Remove spool directory for printjobs from VM
- [ -n "${SPOOLDIR}" ] && rm -rf -- "${SPOOLDIR}"
-
- [ $# -gt 0 ] && exit "$1"
- exit 129 # No exit code was given :/
-}
-
-function rv_clean_string ()
-{
- if [ "$#" -ge 1 ]; then
- echo "$@" | tr '[A-Z]' '[a-z]' | tr -d -c '[a-z0-9]'
- else
- tr '[A-Z]' '[a-z]' | tr -d -c '[a-z0-9]'
- fi
-}
-
-trap cleanexit SIGINT SIGTERM
-
-# check for important files used
-filecheck ()
-{
- filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
- writelog "Filecheck:\n${filecheck}\n"
- noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
- rightsfile=${diskfile}
-
- # check if link
- if [ -L "${diskfile}" ]; then
- # take link target
- rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F '-> *' '{print $2}')
- rightsfile=${vmdir}/${rightsfile}
- filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
- fi
-
- # does file exist
- if [ "${noimage}" -ge "1" ]; then
- writelog "Virtual Machine Image Problem:\c "
- writelog "\tThe image you've specified doesn't exist."
- writelog "Filecheck says:\c "
- writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory"
- writelog "Hint:\c "
- writelog "\t\t\tCompare spelling of the image with your options.\n"
- exit 1
- fi
-
- # readable by calling user
- if ! [ -r "${diskfile}" >/dev/null 2>&1 \
- -o -r "${diskfile}" >/dev/null 2>&1 ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n"
- exit 1
- fi
-
- # writable (for persistent-mode)?
- if ! [ -w "${diskfile}" >/dev/null 2>&1 \
- -o -w "${diskfile}" >/dev/null 2>&1 ] \
- && [ "${np}" = "independent-persistent" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you have specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n"
- exit 1
- fi
-}
-
-################################################################################
-### Get XML file and dir
-################################################################################
-
-## Added for persistent support.
-diskmode='nonpersistent'
-if [[ "$(grep --extended-regexp \
- '< *short_description *param=".+ --persistent--"' "$1")" ]]; then
- diskmode='persistent'
- imageFilePath="$(grep -io '<image_path param=.*"' "$1" | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')"
- [ -z "$imageFilePath" ] && imageFilePath="$(grep -io '<image_name param=.*"' "$1" | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')"
- originalXMLFilePath="$(grep -io '<original_xml_file_path param=.*"' "$1" \
- | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')"
- originalImageFileName="$(grep -io '<image_name param=.*"' \
- "$originalXMLFilePath" | sed -e "s/&.*;/; /g" | awk -F '"' \
- '{ print $2 }')"
- originalVMDKFilePath="$(dirname \
- "$originalXMLFilePath")/${originalImageFileName}"
- # Added to workaround path prefix coming from temporary generated xml file
- # by vmchooser.
- if [[ "$(grep --extended-regexp '^/tmp/tmp\.[^\/]+/' <<< \
- "$imageFilePath")" ]]; then
- imageFilePath=$(sed -r 's/^\/?tmp\/[^\/]+\///g' \
- <<< "$imageFilePath")
- sed -ir \
- "s/(<image_name param=\")[^\"]*(\")/\\1$(sed -e \
- 's/\\/\\\\/g' -e 's/\//\\\//g' -e \
- 's/&/\\\&/g' <<< "$imageFilePath")\\2/g" "$1"
- fi
- # Create linked clone if not exists.
- if [ ! -f "$imageFilePath" ]; then
- mkdir -p "$(dirname "$imageFilePath")" && \
- bash "$(dirname "$0")/vmchooser-clc" "$originalXMLFilePath" \
- "$imageFilePath" --debug --verbose &>"${LOGFILE}"
- fi
-fi
-##
-
-# absolute or relative path?
-xmlfile=$1
-if ls "${xmlfile}" 2>/dev/null | grep '/' >/dev/null 2>&1; then
- xmlpath=$(dirname "${xmlfile}")
- xmlfile=$(basename "${xmlfile}")
-else
- xmlpath=${vmchooser_xmlpath}
-fi
-# full path
-xmlfile="${xmlpath}/${xmlfile%.xml}.xml"
-
-DO_PROFILE="$(grep -c -E -i '<\s*profile\s*param="?(true|yes)"?' "$xmlfile")"
-
-################################################################################
-### Sanity checks
-################################################################################
-
-# test if the xml file is valid
-if ! [ -r "${xmlfile}" ]; then
- writelog "${xmlfile} not a readable XML file!"
- slxlog "virt-nonreadable-xml" "XML file not readable: $xmlfile"
- exit 1
-fi
-
-# test if XML file
-if ! grep -q '<?xml' "${xmlfile}"; then
- writelog "Submitted configuration file ${xmlfile} seems to have wrong XML format"
- slxlog "virt-invalid-xml" "Malformed XML file: $xmlfile" "$xmlfile"
- exit 1
-fi
-
-# check for running in graphical environment otherwise no much use here
-if [ -z "$DISPLAY" ]; then
- echo -e "\n\tStart only within a graphical desktop!\n"
- exit 1
-fi
-
-################################################################################
-### Logo for console
-################################################################################
-
-cat <<EOL
- __ __
- .----.--.--.-----.___.--.--.|__|.----.| |_
- | _| | | |___| | || || _|| _|
- |__| |_____|__|__| \___/ |__||__| |____|
- OpenSLX virtual machine environment preparation script ...
-
-EOL
-
-################################################################################
-### Read needed variables from XML file
-################################################################################
-
-writelog "Starting configuration..."
-writelog "\tLogfile:\t\t${LOGFILE}"
-writelog "\t/tmp info:\t\t$(df -h | grep " /tmp$" | awk '{print $2}') \c"
-writelog "$(grep "/tmp " /proc/mounts | awk '{print $1" "$2" "$3" "$4}')"
-writelog "\tVM XML dir:\t\t$(dirname "${xmlfile}")"
-writelog "\tXML file:\t\t${xmlfile}"
-writelog "Enable 3D:\t\t${enable3d}"
-writelog "VM config:"
-
-# Name of the virt image
-imgname=$(grep -io '<image_path param=.*"' "${xmlfile}" | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')
-imgrelpath=$(grep -io '<image_name param=.*"' "${xmlfile}" | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')
-[ -z "$imgname" ] && imgname="${imgrelpath}"
-imgrelpath=${imgrelpath#/mnt/vmstore/}
-
-## Added for persistent support.
-if [[ "$userBranchFilePath" ]]; then
- imgname="$userBranchFilePath"
-fi
-##
-
-# Imagename w/ full path
-if echo "${imgname}" | grep -q '^/'; then
- imgpath="$(dirname "${imgname}")"
- imgname="$(basename "${imgname}")"
- vmpath="${imgpath}/${imgname}"
- # If old vmchooser binary stuff
- # We do not need folder name as it is already included by vmchooser
-elif echo "${xmlfile}" | grep -q '^/tmp/'; then
- vmpath="$imgname"
- imgname="$(basename "${imgname}")"
-## Added for persistent support.
-elif [[ "$userBranchFilePath" ]]; then
- vmpath="$userBranchFilePath"
-##
- # Else use same path as xml
-else
- imgpath="${xmlpath}"
- vmpath="${imgpath}/${imgname}"
-fi
-
-
-# Name of the virt machine, sed because of Windows formatting
-vm_name=$(grep -o 'short_description param=.*"' "${xmlfile}" \
-| sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}')
-# If ${vm_name} not defined use ${xmlfile}
-vm_name="${vm_name:-${xmlfile%.xml}}"
-
-# Define vm_shortname since vm_name can be very long
-vm_shortname="$(basename "${xmlfile%.xml}" | sed -e "s, ,-,g")"
-
-# vm_name = displayname, define for old scripts
-displayname="${vm_name}"
-
-# image is for the following virtual machine
-xmlvirt=$(grep -o 'virtualmachine param=.*"' "${xmlfile}" \
-| sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}')
-
-# choose the proper virtualization/emulator plugin
-[ "x${xmlvirt}" != "x" -a "x${xmlvirt}" != "xqemukvm" -a "x${xmlvirt}" != "xvirtualbox" -a "x${xmlvirt}" != "xvmware" ] && xmlvirt="emufe"
-
-# make a guess from the filename extension if ${xmlvirt} is empty
-# (not set within the XML file)
-# TODO: implement possibility to submit own configuration files
-if [ -z "${xmlvirt}" ] && [ -n "${additional_config}" ]; then
- writelog "No virtual machine parameter defined in ${xmlfile}"
- writelog "Trying to guess VM...\c"
- case "$(cat ${additional_config} | tr \"[A-Z]\" \"[a-z]\")" in
- *config.version*|*virtualhw.version*|*independent-nonpersistent*|*vmdk*)
- xmlvirt="vmware"
- ;;
- *innotek*|*virtualbox*)
- xmlvirt="virtualbox"
- ;;
- *qemu*|*kvm*)
- xmlvirt="qemukvm"
- ;;
- *)
- xmlvirt="none"
- ;;
- esac
- elif [ -z "${xmlvirt}" ]; then
- case "$(echo ${imgname##*.} | tr \"[A-Z]\" \"[a-z]\")" in
- vmdk)
- xmlvirt="vmware"
- ;;
- vbox|vdi)
- xmlvirt="virtualbox"
- ;;
- qcow*)
- xmlvirt="qemukvm"
- ;;
- *)
- xmlvirt="emufe"
- ;;
- esac
- writelog "result:\t${xmlvirt}"
-fi
-
-# Definition of the client system
-vmostype=$(grep -io '<os param=.*"' "${xmlfile}" | awk -F '"' '{ print $2 }' | tr "[A-Z]" "[a-z]")
-
-# Definition of the networking the client system is connected to
-network_kind=$(grep -io '<network param=.*"' "${xmlfile}" | awk -F '"' '{ print $2 }' | tr "[A-Z]" "[a-z]")
-network_card=$(grep -io '<netcard param=.*"' "${xmlfile}" | awk -F '"' '{ print $2 }'| tr "[A-Z]" "[a-z]")
-override_hddtype=$(grep -io '<hddtype param=.*"' "${xmlfile}" | awk -F '"' '{ print $2 }'| tr "[A-Z]" "[a-z]")
-
-# Set redirects to 0, see vmgrid if you want to define some
-redirects=0
-
-# Serial/parallel ports defined (e.g. "ttyS0" or "autodetect")
-serial=$(grep -io '<serialport param=.*"' "${xmlfile}" | awk -F '"' '{ print $2 }')
-parallel=$(grep -io '<parport param=.*"' "${xmlfile}" | awk -F '"' '{ print $2 }')
-
-writelog "\tVirtualization:\t\t$xmlvirt"
-writelog "\tVM name:\t\t$vm_name"
-writelog "\tVM short name:\t\t$vm_shortname"
-
-###############################################################################
-### Declaration of default variables
-###############################################################################
-
-# take last two digits of current pid...
-VM_ID=$(expr substr $$ $(expr ${#$} - 1) 2)
-
-# Make sure cpu_cores is not empty
-cpu_cores=${cpu_cores:-"1"}
-
-# Amount of memory for the VM. Be generous if diff is written to HDD
-if mount | grep -q '^/dev/sd.*on.*/tmp'; then
- reserve=20
- min=768
- max=1536
-else
- reserve=65
- min=768
- max=8192
-fi
-
-# Calculate absulute amount of RAM that should stay available to the host
-reserve="$[ ( $totalmem * $reserve ) / 100 ]"
-# Respect some upper and lower bounds for the host amount
-[ "$reserve" -lt "$min" ] && reserve="$min"
-[ "$reserve" -gt "$max" ] && reserve="$max"
-
-# Get a result which can be divided by 4
-mem="$[ ( ( $totalmem - $reserve ) / 4 ) * 4 ]"
-if [ -n "$mainvirtmem" ]; then
- forcemem="$[ "$mainvirtmem" / 4 * 4 ]"
- mem="$forcemem"
-fi
-hostmem="$[ $totalmem - $mem ]"
-
-# TODO: We should only generate the suffix here (last 3 octets) as the first 3 are
-# dependant on the virtualizer/emulator. Check if any run-virt.include still relies on
-# $macguestpart/$macaddr. If so, fix it to use its specific first 3 bytes
-# and append $macaddrssuffix
-macguestpart="00:50:56:${VM_ID}"
-machostpart=$(echo "${hostmacaddr}" | awk -F ":" '{print $(NF-1)":"$NF}')
-macaddr=$(echo "${macguestpart}:${machostpart}" | tr "[a-z]" "[A-Z]")
-macaddrsuffix=$(echo "${VM_ID}:${machostpart}" | tr "[a-z]" "[A-Z]")
-
-if ! echo "$macaddrsuffix" | grep -q -E '^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$'; then
- slxlog "virt-mac" "Could not properly generate mac address suffix (got $macaddrsuffix)"
-fi
-
-# Virtual fd/cd/dvd and drive devices, floppy b: for configuration
-# if $floppy_0 from virtualization.conf set then fdtest="TRUE"
-fdtest=${floppy_0:+"TRUE"}
-# if $fdtest not set floppy0="FALSE", else "TRUE"
-floppy0=${fdtest:-"FALSE"}
-floppy1="TRUE"
-floppy1name="$VMCHOOSER_DIR/data/loopimg/fd.img"
-# if $cdrom_0 from virtualization.conf set then cdtest="TRUE"
-cdtest=${cdrom_0:+"TRUE"}
-# if $cdtest not set cdrom0="FALSE", else "TRUE"
-cdrom0=${cdtest:-"FALSE"}
-# if $cdrom_1 from virtualization.conf set then cdtest="TRUE"
-cdtest=${cdrom_1:+"TRUE"}
-# if $cdtest not set cdrom1="FALSE", else "TRUE"
-cdrom1=${cdtest:-"FALSE"}
-# IDE is expected default, test for the virtual disk image type should
-# be done while creating the runscripts ...
-# TODO enable SCSI support instead of just disabling it.
-ide="TRUE"
-scsi="FALSE"
-hddrv="ide"
-audio="true"
-remotedesktopport="590${VM_ID}"
-
-
-# Enable 3D
-enable3d=$(grep -i -o "<enable3d param=.*" "${xmlfile}" | awk -F '"' '{print $2}' | rv_clean_string)
-
-# Add rw share for home dir
-homesharepath="${HOME}/PERSISTENT"
-homesharename="home"
-
-# Add common share
-commonsharepath="${HOME}/SHARE"
-commonsharename="share"
-
-# Set hostname: using original hostname and adding string
-hostname="virt-$(hostname)"
-
-writelog "\tVM Hostname:\t\t$hostname"
-
-################################################################################
-### Setup the rest of the environment and run the configured vm
-################################################################################
-# 8086:1e20
-if lspci -n | grep -E -i '8086:1e20( |$)'; then
- VOL="100%" # bwPC 4: Speaker too quiet :-(
-else
- VOL="85%"
-fi
-if true; then
- # detecting which card is to be used
- echo "Detecting which sound card to use ..."
- PROC="/proc/asound/cards"
- if [ ! -r "$PROC" ]; then
- echo "'${PROC}' not found or not readable."
- SOUND_CARD_INDEX=0
- SOUND_CARD_COUNT=1
- else
- # Try to filter HDMI cards first
- SOUND_CARD_INDEX=$(grep -v -i 'HDMI' "${PROC}" | grep -E -o '^[[:space:]]{0,2}[0-9]+[[:space:]]+' | head -n 1)
- # If empty, try again with all
- [ -z "${SOUND_CARD_INDEX}" ] && SOUND_CARD_INDEX=$(cat "${PROC}" | grep -E -o '^[[:space:]]{0,2}[0-9]+[[:space:]]+' | head -n 1)
- if [ -z "${SOUND_CARD_INDEX}" ]; then
- echo "No sound card found."
- SOUND_CARD_INDEX=0
- fi
- SOUND_CARD_COUNT=$(grep -E '^[[:space:]]{0,2}[0-9]+[[:space:]]+' "${PROC}" | wc -l)
- fi
-
- SOUND_CARD_INDEX="$(grep -E -o '[0-9]+' <<<$SOUND_CARD_INDEX)"
- echo "Detected sound card index is: $SOUND_CARD_INDEX"
- echo "Sound card count: $SOUND_CARD_COUNT"
-
- # Adjust sound volume (playback)... Random mixer names we have encountered during testing
- echo "Setting up volume..."
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Master' "$VOL" unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'PCM' "$VOL" unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'CD' "$VOL" unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Headphone' "$VOL" unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Front' "$VOL" unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Speaker' "$VOL" unmute
- # Recording. It seems that (most) devices need the volume set to 0, so you
- # don't hear your own mic input, but should be unmuted. Also on some cards,
- # you need to set the cap option on the mic you want to use, while other cards
- # will just ignore that option.
- # Plus, most cards have a Capture mixer, which needs to be set to cap too, and
- # have its volume turned up. (There'll probably be some cards that need yet
- # another setup, but this works for now on 4 tested cards)
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Rear Mic Boost' "50%" cap unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Rear Mic' "0%" cap unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Front Mic Boost' "50%" cap unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Front Mic' "0%" cap unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Mic Boost' "50%" cap unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Mic' "0%" cap unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Capture' "100%" cap unmute
- amixer -q -c "$SOUND_CARD_INDEX" sset 'Input Source' 'Front Mic' # Let's hope nobody uses rear mic...
- # fix random static noise when starting vmplayer when module snd_pcsp (not pcspkr) is loaded
- amixer -q -c pcsp sset Master "0%" mute
- echo "Done setting up volume."
-fi >> "${LOGFILE}" 2>&1
-
-# Start printer daemon
-QUEUE="STANDARD" # This has to match the queue you configured in your VM
-USER="$(whoami)"
-SPOOLDIR=
-### Disabled: 100megs is not enough, some jobs are HUGE, try to use temp which should be on disk
-## Try using user's tmpfs home first, as it gets wiped on logout
-#if [ -n "${HOME}" ] && [ -w "${HOME}" ]; then
-# SPOOLDIR="${HOME}/.spool"
-# mkdir -p "${SPOOLDIR}/${QUEUE}"
-#fi
-# If failed, try to fall back to /tmp
-if [ -z "${SPOOLDIR}" ] || [ ! -w "${SPOOLDIR}/${QUEUE}" ]; then
- SPOOLDIR="/tmp/printergui-${USER}-$$-${RANDOM}"
- rm -rf -- "${SPOOLDIR}"
- if ! mkdir -p "${SPOOLDIR}/${QUEUE}"; then
- slxlog "virt-spooldir" "Could not create spool directory ($SPOOLDIR) for $USER - printing will not work!"
- # TODO: Warn user
- fi
- chmod 0700 "${SPOOLDIR}/${QUEUE}"
-fi
-
-# Start the lpdaemon listening on the given port
-# TODO: externalize with something like runtvirt.d (other parts might benefit from that too)
-tcpsvd -E 192.168.101.1 5515 \
- lpd "$SPOOLDIR" \
- ash -c "/opt/openslx/cups/printergui '${USER}' \"${SPOOLDIR}/${QUEUE}/\$DATAFILE\"" &
-
-# PID to kill the process
-PID_LPD="$!"
-
-# Copy guest configuration (with added information) config.xml to be accessed
-# via virtual floppy
-cp "$xmlfile" "$VMCHOOSER_DIR/fd-loop/config.xml"
-# Add another file with resolution information
-xrandr | grep -o -E 'connected\s*(primary)?\s*[0-9]+x[0-9]+\+0\+0' | grep -o -E '[0-9]+x[0-9]+' | head -n 1 > "$VMCHOOSER_DIR/fd-loop/hostres.txt"
-# Add our magic openslx binary that sets the correct guest resolution
-cp "$VMCHOOSER_DIR/data/openslx.exe" "$VMCHOOSER_DIR/fd-loop/"
-
-# Try to use dnbd3 to access the image
-unset vm_diskfile
-unset vm_revision
-unset dnbd3
-unset dnbd3error
-if [ -n "$SLX_DNBD3_SERVERS" -o -n "$SLX_DNBD3_PRIO_SERVERS" ] && [ "x$SLX_VM_DNBD3" = "xyes" ]; then
- if [ -e "/dev/dnbd0" -a -e "/var/run/dnbd3.socket" ]; then
- # Shuffle server list
- [ -n "$SLX_DNBD3_SERVERS" ] && TMP_SERVERS=$(for SRV in $SLX_DNBD3_SERVERS; do echo "$RANDOM $SRV"; done | sort -u | sed -r 's/^[0-9]+ //')
- for SRV in $SLX_DNBD3_PRIO_SERVERS $TMP_SERVERS; do
- dnbd3=$(dnbd3-client -h "$SRV" -i "${imgrelpath}" -r 0)
- RET=$?
- if [ "$RET" = "0" ]; then
- vm_revision=$(cat "/sys/block/${dnbd3#/dev/}/net/rid")
- writelog "DNBD3: $vm_diskfile on $dnbd3 with rid $vm_revision"
- vm_diskfile="$dnbd3"
- vmpath="$vm_diskfile"
- break
- fi
- dnbd3error="$dnbd3error ($RET/$dnbd3)"
- usleep 200000
- done
- if [ -z "$vm_diskfile" ]; then
- slxlog "virt-dnbd3" "No dnbd3 server for ${imgrelpath} found ($SLX_DNBD3_PRIO_SERVERS $TMP_SERVERS $dnbd3error), trying NFS/CIFS..."
- writelog "No working dnbd3 server found :-("
- fi
- else
- writelog "Won't use dnbd3 as it's not loaded, or the daemon is not running..."
- fi
-else
- writelog "Won't use dnbd3 as no servers are given in config"
-fi
-
-# $vm_diskfile will be empty if dnbd3 is not used or failed. Let's try to fall back to NFS/CIFS via file system
-if [ -z "$vm_diskfile" ]; then
- new_vmpath=$(ls "${vmpath}.r"* | grep -E -o '\.r[0-9]+$' | grep -o -E '[0-9]+' | sort -n | tail -1)
- [ -n "$new_vmpath" ] && vmpath="${vmpath}.r${new_vmpath}"
- vm_diskfile="$vmpath"
-fi
-
-# Check if virtual machine container file exists
-if ! [ -e "${vmpath}" ]; then
- slxlog "virt-image-missing" "VM image $vmpath not found!"
- writelog "Virtual machine image ${vmpath} not found!"
- cleanexit 1
-fi
-
-writelog "Used diskfile: $vm_diskfile"
-
-# Get all virtual machine specific stuff from the respective include file
-if [ ! -e "$VMCHOOSER_DIR/$xmlvirt/run-virt.include" ] ; then
- # TODO: Tell user
- slxlog "virt-plugin-missing" "Could not find run-virt.include for $xmlvirt ($VMCHOOSER_DIR/$xmlvirt/run-virt.include)"
- writelog "Failed because of missing ${xmlvirt} plugin."
- cleanexit 1
-fi
-
-self="${xmlvirt}"
-if ! . "$VMCHOOSER_DIR/$xmlvirt/run-virt.include"; then
- slxlog "virt-plugin-error" "run-virt.include for $xmlvirt could not be sourced (contains syntax errors?)" "$xmlvirt"
- writelog "Erroneous run-virt.include for $xmlvirt"
-fi
-
-# start a windowmanager for easier handling
-# (expect problems w/ windows opening in background w/ vmware without wm)
-for dm in openbox kwin xfwm4 metacity blackbox twm fvwm2 ; do
- if which $dm >/dev/null 2>&1 ; then
- if [ "$dm" = "fvwm2" ] ; then
- echo "EdgeScroll 0 0" > ${redodir}/fvwm
- fvwm2 -f ${redodir}/fvwm >/dev/null 2>&1 &
- else
- $dm >/dev/null 2>&1 &
- fi
- break
- fi
-done
-
-# Start poolvideoswitch if we find the autostarter file
-#if [ -e /etc/xdg/autostart/pvsgui.desktop ]; then
-# /usr/local/bin/pvsgui -p 2 -b >/dev/null 2>&1 &
-#fi
-
-if [[ "$DO_PROFILE" -ge "1" ]]; then
- wget "http://132.230.8.113/profile/do.php?action=start" &
-fi
-
-# Check if tcpsvd is running. Do this down here so we do not check immediately after trying to spawn it,
-# as this could result in success even if it's not really working
-if ! kill -0 "$PID_LPD"; then
- slxlog "virt-lpd" "Could not start tcpsvd/lpd for virtual machine session"
-fi
-
-# Configure and start samba service to provide user's home directory
-#if [ -f /usr/sbin/smbd ] ; then
-# sudo /opt/openslx/bin/sed -i /opt/openslx/vmchooser/smb.conf -e "s,USER,$USER,"
-# sudo /usr/sbin/nmbd -s /opt/openslx/vmchooser/config/smb.conf
-# sudo /usr/sbin/smbd -s /opt/openslx/vmchooser/config/smb.conf
-#fi
-
-# This will start the VM
-writelog "VM command: eval ${VIRTCMD} ${VIRTCMDOPTS}"
-eval ${VIRTCMD} ${VIRTCMDOPTS}
-#
-writelog "Bye."
-
-# Postrun for commands after virtualization finishes
-if [ -n "${POSTRUN}" ]; then
- eval ${POSTRUN} >/dev/null 2>&1
-fi
-
-
-cleanexit 0
-
-
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/config/vmchooser.conf b/remote/modules/vmchooser/data/opt/openslx/vmchooser/config/vmchooser.conf
deleted file mode 100644
index 203f125b..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/config/vmchooser.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-pool=default
-theme=bwlehrpool
-pvs=0
-path=/mnt/vmstore
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/data/openslx.exe b/remote/modules/vmchooser/data/opt/openslx/vmchooser/data/openslx.exe
deleted file mode 100755
index 8b320003..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/data/openslx.exe
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/sessionstart b/remote/modules/vmchooser/data/opt/openslx/vmchooser/sessionstart
index aa7e54c6..be3235c1 100755
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/sessionstart
+++ b/remote/modules/vmchooser/data/opt/openslx/vmchooser/sessionstart
@@ -4,7 +4,9 @@ SOURCEPATH="/opt/openslx/vmchooser/sessionstart.d"
if [ -d "$SOURCEPATH" ]; then
for file in $SOURCEPATH/*; do
- . "$file" || slxlog "vmchooser-sessionstart" "Could not source $file at session start!" "$file"
+ "$file" || slxlog "vmchooser-sessionstart" "Could not source $file at session start!" "$file"
done
fi
+exit 0
+
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-left.png b/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-left.png
deleted file mode 100644
index c9d8ab0d..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-left.png
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-right.png b/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-right.png
deleted file mode 100644
index 8ca9347b..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-right.png
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool.ini b/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool.ini
deleted file mode 100644
index 90d00617..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-background-color=#ffffff
-image-right=bwlehrpool-right.png
-image-left=bwlehrpool-left.png
-
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-left.png b/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-left.png
deleted file mode 100644
index c8736b72..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-left.png
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-right.png b/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-right.png
deleted file mode 100644
index e21f0d8b..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-right.png
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets.ini b/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets.ini
deleted file mode 100644
index d9aa17f6..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-background-color=#ffffff
-image-right=planets-right.png
-image-left=planets-left.png
-
diff --git a/remote/modules/vmchooser2/data/etc/systemd/system/graphical.target.wants/vmchooser.service b/remote/modules/vmchooser2/data/etc/systemd/system/graphical.target.wants/vmchooser.service
deleted file mode 120000
index ad1590e8..00000000
--- a/remote/modules/vmchooser2/data/etc/systemd/system/graphical.target.wants/vmchooser.service
+++ /dev/null
@@ -1 +0,0 @@
-../vmchooser.service \ No newline at end of file
diff --git a/remote/modules/vmchooser2/data/etc/systemd/system/mount-vm-store.service b/remote/modules/vmchooser2/data/etc/systemd/system/mount-vm-store.service
deleted file mode 100644
index ff801963..00000000
--- a/remote/modules/vmchooser2/data/etc/systemd/system/mount-vm-store.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Mount VM store per NFS
-After=network.target
-Requires=network.target
-DefaultDependencies=no
-
-[Service]
-Type=oneshot
-ExecStart=/opt/openslx/scripts/systemd-mount_vm_store
-RemainAfterExit=yes
diff --git a/remote/modules/vmchooser2/data/etc/systemd/system/network.target.wants/mount-vm-store.service b/remote/modules/vmchooser2/data/etc/systemd/system/network.target.wants/mount-vm-store.service
deleted file mode 120000
index d6a88c27..00000000
--- a/remote/modules/vmchooser2/data/etc/systemd/system/network.target.wants/mount-vm-store.service
+++ /dev/null
@@ -1 +0,0 @@
-../mount-vm-store.service \ No newline at end of file
diff --git a/remote/modules/vmchooser2/data/etc/systemd/system/vmchooser.service b/remote/modules/vmchooser2/data/etc/systemd/system/vmchooser.service
deleted file mode 100644
index 1a5a980a..00000000
--- a/remote/modules/vmchooser2/data/etc/systemd/system/vmchooser.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Sets up the vmchooser environment
-Wants=graphical.target
-Before=graphical.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/opt/openslx/scripts/systemd-vmchooser_env
diff --git a/remote/modules/vmchooser2/data/opt/openslx/bin/clc.bash b/remote/modules/vmchooser2/data/opt/openslx/bin/clc.bash
deleted file mode 100755
index ee198c51..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/bin/clc.bash
+++ /dev/null
@@ -1,307 +0,0 @@
-#!/bin/bash
-# Needs full bash
-
-# region header
-
-# Copyright Torben Sickert 16.12.2012
-
-# License
-# This library written by Torben Sickert stand under a creative commons
-# naming 3.0 unported license.
-# see http://creativecommons.org/licenses/by/3.0/deed.de
-
-# vim: set tabstop=4 shiftwidth=4 expandtab:
-# vim: foldmethod=marker foldmarker=region,endregion:
-
-# Dependencies:
-
-# vmware or virtualbox
-
-# Notes:
-
-# USE "sudo bin/vmware-vmx --new-sn JJ237-G52E2-08X0C-C3306-0WCQ1"
-# To activate wmware workstation!
-
-# Abbreviation for "createLinkedClone".
-__NAME__='clc'
-
-# endregion
-
-# Provides the main module scope.
-function clc() {
-
-# region configuration
-
- # region private properties
-
- # region command line arguments
-
- local _VERBOSE='no'
- local _SUPPORTED_HYPERVISOR=('VMware' 'virtualBox')
- # NOTE: This value will be determined automatically. If no hypervisor
- # could be detected this value will be used as default.
- # The first value from supported Machines is taken as default.
- local _HYPERVISOR="$_SUPPORTED_HYPERVISOR"
- local _PERSISTENT_SHORT_DESCRIPTION_SUFFIX=' --persistent--'
-
- # endregion
-
- local _STANDARD_OUTPUT=/dev/null
- local _ERROR_OUTPUT=/dev/null
- local _BASIC_IMAGE_CONFIGURATION_FILE_PATH=''
- local _TARGET_PATH=''
- local _CREATE_PERSISTENT_CONFIG='no'
-
- # endregion
-
-# endregion
-
-# region functions
-
- # region command line interface
-
- # Prints a description about how to use this program.
- function clcPrintUsageMessage() {
- cat << EOF
- $__NAME__ Generates a linked clone from given machine description file in
- given target location.
-EOF
- return $?
- }
-
- # Prints a description about how to use this program by providing examples.
- function clcPrintUsageExamples() {
- cat << EOF
- # Getting a help message.
- >>> $0 --help
-
- # Creating a linked clone.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/
-
- # Creating a linked clone in verbose mode.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/ --verbose
-
- # Creating a linked clone in verbose mode with debugging output.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/ --verbose --debug
-
- # Creating a linked clone in verbose mode with debugging output.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/ -v -d
-EOF
- return $?
- }
-
- # Prints descriptions about each available command line option.
- function clcPrintCommandLineOptionDescriptions() {
- # NOTE; All letters are used for short options.
- cat << EOF
- -h --help Shows this help message.
-
- -v --verbose Tells you what is going on (default: "$_VERBOSE").
-
- -d --debug Gives you any output from all tools which are used
- (default: "$_DEBUG").
-
- -c --create-persistent-config If set an xml file for persistent openslx
- boot will be created (default: "$_CREATE_PERSISTENT_CONFIG").
-EOF
- return $?
- }
-
- # Provides a help message for this module.
- function clcPrintHelpMessage() {
- echo -e \
- "\nUsage: $0 BASIC_IMAGE_CONFIGURATION_FILE_PATH TARGET_PATH [options]\n" && \
- clcPrintUsageMessage "$@" && \
- echo -e '\nExamples:\n' && \
- clcPrintUsageExamples "$@" && \
- echo -e '\nOption descriptions:\n' && \
- clcPrintCommandLineOptionDescriptions "$@" && \
- echo && \
- return $?
- }
-
- # Provides the command line interface and interactive questions.
- function clcCommandLineInterface() {
- while true; do
- case "$1" in
- -h|--help)
- shift
- clcPrintHelpMessage "$0"
- exit 0
- ;;
- -v|--verbose)
- shift
- _VERBOSE='yes'
- ;;
- -d|--debug)
- shift
- _DEBUG='yes'
- _STANDARD_OUTPUT=/dev/stdout
- _ERROR_OUTPUT=/dev/stderr
- ;;
- -c|--create-persistent-config)
- shift
- _CREATE_PERSISTENT_CONFIG='yes'
- ;;
-
- '')
- shift
- break 2
- ;;
- *)
- if [[ ! "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" ]]; then
- _BASIC_IMAGE_CONFIGURATION_FILE_PATH="$1"
- elif [[ ! "$_TARGET_PATH" ]]; then
- _TARGET_PATH="$1"
- else
- clcLog 'critical' \
- "Given argument: \"$1\" is not available." '\n'
- clcPrintHelpMessage "$0"
- return 1
- fi
- shift
- ;;
- esac
- done
- if [[ ! "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" ]] || \
- [[ ! "$_TARGET_PATH" ]]; then
- clcLog 'critical' \
- "You have to provide a basic image configuration file and a destination path."
- clcPrintHelpMessage "$0"
- return 1
- fi
- local supportedVirtualMachine
- for supportedVirtualMachine in ${_SUPPORTED_HYPERVISOR[*]}; do
- if [[ "$(clcGetXMLValue 'virtualMachine' | \
- grep --ignore-case "$supportedVirtualMachine")" ]]; then
- _HYPERVISOR="$supportedVirtualMachine"
- clcLog 'debug' "Detected \"$_HYPERVISOR\" as hypervisor."
- break
- fi
- done
- clcLog 'info' "Using \"$_HYPERVISOR\" as hypervisor." && \
- return $?
- }
-
- # Grabs a value from currently loaded xml file.
- function clcGetXMLValue() {
- grep --ignore-case --only-matching "<$1 param=.*" \
- "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" | awk -F '"' '{ print $2 }'
- return $?
- }
-
- # Handles logging messages. Returns non zero and exit on log level error to
- # support chaining the message into toolchain.
- function clcLog() {
- local loggingType='info'
- local message="$1"
- if [ "$2" ]; then
- loggingType="$1"
- message="$2"
- fi
- if [ "$_VERBOSE" == 'yes' ] || [ "$loggingType" == 'error' ] || \
- [ "$loggingType" == 'critical' ]; then
- if [ "$3" ]; then
- echo -e -n "$3"
- fi
- echo -e "${loggingType}: $message"
- fi
- if [ "$loggingType" == 'error' ]; then
- exit 1
- fi
- }
-
- # endregion
-
- # region tools
-
- # Returns the minimal vmx vmware configuration file content to create a
- # snapshot.
- function clcGetTemporaryVMXContent() {
- cat << EOF
-.encoding = "UTF-8"
-config.version = "8"
-virtualHW.version = "7"
-ide0:0.present = "TRUE"
-ide0:0.fileName = "$1"
-displayName = ""
-EOF
- return $?
- }
-
- # Creates a snapshot from VMware generated virtual machine.
- function clcCreateVMwareSnapshot() {
- local temporaryConfigurationPath="$(mktemp --directory)/" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- local temporaryConfigurationFilePath="$(mktemp --suffix '.vmx')" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcGetTemporaryVMXContent "/var/lib/virt/vmware/$(clcGetXMLValue 'image_name')" \
- 1>"$temporaryConfigurationFilePath" 2>"$_ERROR_OUTPUT" && \
- mv "$temporaryConfigurationFilePath" "$temporaryConfigurationPath" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog "Needed files generated in \"$temporaryConfigurationPath\" generated." && \
- vmrun snapshot "$temporaryConfigurationPath"*.vmx \
- persistentUserSnapshot 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
- mv "$temporaryConfigurationPath"*.vmdk "$_TARGET_PATH" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT"
- local result=$?
- if [[ "$_DEBUG" == 'no' ]]; then
- rm --recursive "$temporaryConfigurationPath" 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT"
- fi
- return $result
- }
-
- # Creates a snapshot from virtualBox generated virtual machine.
- function clcCreateVirtualBoxSnapshot() {
- local temporaryConfigurationPath="$(mktemp --directory)" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- VBoxManage clonevm TODO ->(VMNAME) --snapshot base --options link \\
- --basefolder "$temporaryConfigurationPath" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- mv "${temporaryConfigurationPath}/Snapshots/"*.vmdk "$_TARGET_PATH" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- rm --recursive "$temporaryConfigurationPath" 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
- return $?
- }
-
- # Creates a persistent version of given config file.
- function clcCreatePersistentConfig() {
- cp "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" "$_TARGET_PATH" && \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- sed --in-place --regexp-extended \
- "s/(< *short_description[^>]*param=\"[^\"]*)(\")/\\1$_PERSISTENT_SHORT_DESCRIPTION_SUFFIX\\2/g" \
- "$_TARGET_PATH" 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT"
- return $?
- }
-
- # endregion
-
-# endregion
-
-# region controller
-
- clcCommandLineInterface "$@" || return $?
- if [[ "$_CREATE_PERSISTENT_CONFIG" == 'yes' ]]; then
- clcCreatePersistentConfig || \
- clcLog 'error' 'Creating persitent config failed.'
- else
- "clcCreate${_HYPERVISOR}Snapshot" || \
- clcLog 'error' 'Creating Linked Clone failed.'
- fi
- clcLog 'Program has successfully finished.' && \
- return $?
-
-# endregion
-
-}
-
-# region footer
-
-if [[ "$0" == *"${__NAME__}.bash" ]]; then
- "$__NAME__" "$@"
-fi
-
-# endregion
diff --git a/remote/modules/vmchooser2/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading b/remote/modules/vmchooser2/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading
deleted file mode 100755
index b0909760..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/iptables/rules.d/50-virt-nat1-masquerading
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/ash
-
-iptables -t nat -A POSTROUTING -o br0 -s 192.168.101.0/24 -j MASQUERADE
diff --git a/remote/modules/vmchooser2/data/opt/openslx/scripts/systemd-vmchooser_env b/remote/modules/vmchooser2/data/opt/openslx/scripts/systemd-vmchooser_env
deleted file mode 100755
index c39803cd..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/scripts/systemd-vmchooser_env
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/bin/ash
-# -----------------------------------------------------------------------------
-# Copyright (c) 2007..2013 - RZ Uni FR
-# Copyright (c) 2007..2013 - 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/
-# -----------------------------------------------------------------------------
-# systemd-vmchooser_env
-# - This is the preparation script for the configuration of the virtuali-
-# zation tools used later on.
-################################################################################
-
-################################################################################
-### Define default dirs / get configs
-################################################################################
-
-export PATH=$PATH:/opt/openslx/bin:/opt/openslx/sbin
-
-# source config file with vars (e.g. ipaddr, macaddr, hostname)
-. /opt/openslx/config
-
-# from plugins/vmchooser/XX_vmchooser.sh
-VMCHOOSER_DIR="/opt/openslx/vmchooser"
-VMCHOOSER_CONF_DIR="$VMCHOOSER_DIR/config"
-
-mkdir -p "${VMCHOOSER_DIR}/data/loopimg"
-mkdir -p "${VMCHOOSER_DIR}/fd-loop" -m 1777
-
-# mount a clean tempfs (bug in UnionFS prevents loopmount to work)
-grep -qE "unionfs |aufs " /proc/mounts && \
- mount -n -o size=1500k -t tmpfs vm-loopimg "${VMCHOOSER_DIR}/data/loopimg"
-
-# create an empty floppy image of 1.44 MByte size
-dd "if=/dev/zero" "of=${VMCHOOSER_DIR}/data/loopimg/fd.img" count=2880 bs=512 2>/dev/null
-chmod 0777 "${VMCHOOSER_DIR}/data/loopimg/fd.img"
-
-# use dos formatter copied into stage3
-mkdosfs "${VMCHOOSER_DIR}/data/loopimg/fd.img"
-mount -n -t msdos -o loop,umask=000 "${VMCHOOSER_DIR}/data/loopimg/fd.img" "${VMCHOOSER_DIR}/fd-loop"
-
-#pvs integration
-#if [ $vmchooser_pvs -ne 0 ]; then
-# sed -i /usr/share/xsessions/default.desktop \
-# -e "s,vmchooser$,vmchooser --pvs,"
-#fi
-
-# setup more scratch space for virtual machines, if configured
-mkdir -p /tmp/virt /var/log/samba /run/samba
-
-# enable normal users to setup the extended virtual machine redo file space
-# and image source via network block device (NBD only at the moment)
-# allow to start/stop samba on virtual devices (latter one ignores multiple
-# independent daemons)
-
-#cat >> /mnt/etc/sudoers << EOF
-# allow to start and stop the special /tmp redo file space (RAM + NBD/NFS server RAID)
-#ALL ALL=NOPASSWD: /sbin/losetup /dev/loop*
-#ALL ALL=NOPASSWD: /sbin/mdadm -C /dev/md0 -l linear --raid-devices=2 /dev/loop* /dev/*
-#ALL ALL=NOPASSWD: /opt/openslx/rootfs/usr/sbin/nbd-client * * /dev/nbd*
-# allow to configure and start/stop samba services
-#ALL ALL=NOPASSWD: /opt/openslx/rootfs/bin/sed -i /etc/*/smb.conf -e *
-#ALL ALL=NOPASSWD: /usr/sbin/nmbd -s /etc/*/smb.conf
-#ALL ALL=NOPASSWD: /usr/sbin/smbd -s /etc/*/smb.conf
-#ALL ALL=NOPASSWD: /opt/openslx/rootfs/usr/bin/killall nmbd smbd
-#EOF
-
-################################################################################
-### Determine hardware configuration
-################################################################################
-
-# estimate free mem
-mem_free=$(grep -i "^memfree:" /proc/meminfo | awk '{print $2}')
-mem_cached=$(grep -i "^cached:" /proc/meminfo | awk '{print $2}')
-mem_swapcached=$(grep -i "^swapcached:" /proc/meminfo | awk '{print $2}')
-[ -z "$mem_free" ] && mem_free="2048000"
-[ -z "$mem_cached" ] && mem_cached="0"
-[ -z "$mem_swapcached" ] && mem_swapcached="0"
-totalmem="$(expr $(expr $mem_free + $mem_cached + $mem_swapcached) / 1024)"
-echo "totalmem=${totalmem}" > "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-
-# determine number of cpu cores
-CPU_CORES=$(grep '^processor.*:' /proc/cpuinfo | wc -l)
-if [ "${CPU_CORES}" -gt "1" 2>/dev/null ]; then
- echo "cpu_cores=${CPU_CORES}" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-else
- echo 'cpu_cores=1' >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-fi
-
-# general machine architecture (32/64bit)
-echo "host_arch=$(uname -m)" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-
-# check for VT enabled CPU
-if grep -q '^flags.*\<vmx\>' "/proc/cpuinfo"; then
- echo "vtflag=1" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
- echo 'kvm_module="kvm_intel"' >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
- elif grep -q '^flags.*\<svm\>' "/proc/cpuinfo"; then
- echo "vtflag=1" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
- echo 'kvm_module="kvm_amd"' >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
- else
- echo "vtflag=0" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-fi
-
-# write mac
-if [ -n "$SLX_PXE_MAC" ]; then
- echo "hostmacaddr=${SLX_PXE_MAC}" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-else ## Fallback:
- echo "hostmacaddr=$(ip a | grep ether | grep -o -E -i '([0-9a-f]{2}:){5}[0-9a-f]{2}' | head -n 1)" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-fi
-# read in ip address
-echo "hostip=${SLX_PXE_CLIENT_IP}" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-# hostname
-echo "hostname=\"$(hostname -s)\"" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
-
-# get further hw information and check for traces of available optical and floppy drives
-j=0
-for cdrom in $(dmesg|grep -i "Attached scsi CD-ROM sr" | sed "s,.*Attached scsi CD-ROM ,,"); do
- echo "cdrom_$j=/dev/${cdrom}" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
- j=$(expr $j + 1)
-done
-
-j=0
-for floppy in $(dmesg|grep -i "Floppy drive"|sed "s,.*(s): ,,;s, is .*,,"); do
- echo "floppy_$j=/dev/${floppy}" >> "${VMCHOOSER_CONF_DIR}/virtualization.conf"
- j=$(expr $j + 1)
-done
-
-################################################################################
-### Setup VM networking
-################################################################################
-
-# there will be three types of network interfaces for virtual machines available
-# all will be configured for every type of virtualization tool
-# a) br0 is the direct host bridge into the local LAN (br0 already exists)
-# vmnet0 for VMware
-# vboxnet0 for VirtualBox
-# kvmnet0* for Qemu/KVM
-# b) nat1 is an internal bridge which "NATes" into the local LAN (with DHCP)
-# vmnet1 for VMware
-# vboxnet1 for VirtualBox
-# kvmnet1* for Qemu/KVM
-# c) vsw2 is an internal host bridge to connect software defined LANs to
-# vmnet2 for VMware
-# vboxnet2 for VirtualBox
-# kvmnet2* for Qemu/KVM
-
-# creating and configuring nat0
-# 192.168.101.0/24 is vm nat. If you ever change this there are a couple of other files
-# where you'd need to make changes, so think twice before doing so. ;)
-brctl addbr nat1
-ip link set dev nat1 up
-ip addr add 192.168.101.1/24 dev nat1
-echo "1" >/proc/sys/net/ipv4/conf/nat1/forwarding
-echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null
-# iptables masquerade rule is now inserted by /opt/openslx/iptables/rules.d/50-virt-nat1-masquerading
-### iptables -t nat -A POSTROUTING -o br0 -s 192.168.0.0/16 -j MASQUERADE
-
-for wait in 1 1 2 2 3 end; do
- grep '^SLX_DNS' "/opt/openslx/config" > /dev/null && break
- [ "$wait" == "end" ] && echo "No DNS config found, using google dns" && break
- echo "Waiting for DNS config.."
- sleep "$wait"
-done
-
-# read the DNS configuration and configure the udhcpd
-[ -z "${SLX_DNS}" ] && SLX_DNS="8.8.8.8"
-sed -i "s,DNSSERVER,${SLX_DNS},;s,DOMAIN,${SLX_NET_DOMAIN}," \
- /opt/openslx/vmchooser/config/udhcpd-nat1.conf
-
-mkdir -p /var/lib/udhcpd
-udhcpd -S /opt/openslx/vmchooser/config/udhcpd-nat1.conf
-
-# creating and configuring vsw2
-brctl addbr vsw2
-ip link set dev vsw2 up
-echo "1" >/proc/sys/net/ipv4/conf/vsw2/forwarding
-
diff --git a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-clc b/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-clc
deleted file mode 100755
index 337dee44..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-clc
+++ /dev/null
@@ -1,475 +0,0 @@
-#!/bin/bash
-
-# region header
-
-# vim: set tabstop=4 shiftwidth=4 expandtab:
-# vim: foldmethod=marker foldmarker=region,endregion:
-
- # region dependencies:
-
-# VMware Player - Runs a virtual machine.
-# VMware Workstation - Runs, edits, creates virtual machines for business
-# usage.
-# VirtualBox ver. 4+ - Plays, creates, edits virtual machines.
-# bash ver. 4+ - A sh-compatible command line interpreter.
-# cat - Concatenate and prints file contents.
-# echo - Prints chars.
-# grep - Prints lines which matches a given regular expression
-# pattern.
-# sed - Stream-editor for filtering and transformation text.
-# mktemp - Creates temporary files and folders.
-# dirname - Extracts the last element from a given file path.
-# mv - moves and renames file objects.
-# rm - Removes files and folders.
-# cp - Copies files and folders.
-# sleep - Delays program calls.
-# readlink - Print resolved symbolic links or canonical file names.
-
- # endregion
-
-# Abbreviation for "createLinkedClone".
-__NAME__='vmchooser-clc'
-
-# endregion
-
-# Provides the main module scope.
-function vmchooser-clc() {
-
-# region configuration
-
- # region private properties
-
- # region command line arguments
-
- local _VERBOSE='no'
- # NOTE: You should write upper case first letters to support valid
- # camel case method names to handle given hypervisor.
- local _SUPPORTED_HYPERVISOR=('VMware' 'VirtualBox')
- # NOTE: This value will be determined automatically. If no hypervisor
- # could be detected this value will be used as default.
- # The first value from supported Machines is taken as default.
- local _HYPERVISOR="$_SUPPORTED_HYPERVISOR"
- local _PERSISTENT_SHORT_DESCRIPTION_SUFFIX=' --persistent--'
- local _PERSISTENT_CONFIG_TARGET=''
- local _BASIC_IMAGE_CONFIGURATION_FILE_PATH=''
- local _TARGET_PATH=''
- local _VIRTUAL_BOX_SNAPSHOT_NAME='persistentUserSnapshot'
-
- # endregion
-
- local _STANDARD_OUTPUT=/dev/null
- local _ERROR_OUTPUT=/dev/null
- local _VIRTUAL_BOX_SNAPSHOT_UUID_FILE_PATH='/tmp/clcVirtualBoxSnapshotUUID'
-
- # endregion
-
-# endregion
-
-# region functions
-
- # region command line interface
-
- # Prints a description about how to use this program.
- function clcPrintUsageMessage() {
- cat << EOF
- $__NAME__ Generates a linked clone from given machine description file in
- given target location.
-EOF
- return $?
- }
-
- # Prints a description about how to use this program by providing examples.
- function clcPrintUsageExamples() {
- cat << EOF
- # Getting a help message.
- >>> $0 --help
-
- # Creating a linked clone.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/
-
- # Creating a linked clone configuration file.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/ -c
-
- # Creating a linked clone in verbose mode.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/ --verbose
-
- # Creating a linked clone in verbose mode with debugging output.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/ --verbose --debug
-
- # Creating a linked clone in verbose mode with debugging output.
- >>> $0 /path/to/config.xml ~/.persistentLinkedClones/ -v -d
-EOF
- return $?
- }
-
- # Prints descriptions about each available command line option.
- function clcPrintCommandLineOptionDescriptions() {
- # NOTE; All letters are used for short options.
- cat << EOF
- -h --help Shows this help message.
-
- -v --verbose Tells you what is going on (default: "$_VERBOSE").
-
- -d --debug Gives you any output from all tools which are used
- (default: "$_DEBUG").
-
- -c --create-persistent-config PERSISTENT_IMAGE_FILE_PATH If set an xml file
- for persistent openslx boot will be created referencing to given
- persistent image path (default: "$_PERSISTENT_CONFIG_TARGET").
-
- -v --virtualbox-snapshot-name NAME Provide a name for newly created
- snapshots. (default: "$_VIRTUAL_BOX_SNAPSHOT_NAME").
-
- -u --virtualbox-snapshot-uuid-file-path PATH Provide a file path where to
- save the newly generated snapshot uuid (default: \
- "$_VIRTUAL_BOX_SNAPSHOT_UUID_FILE_PATH").
-EOF
- return $?
- }
-
- # Provides a help message for this module.
- function clcPrintHelpMessage() {
- echo -e \
- "\nUsage: $0 BASIC_IMAGE_CONFIGURATION_FILE_PATH TARGET_PATH [options]\n" && \
- clcPrintUsageMessage "$@" && \
- echo -e '\nExamples:\n' && \
- clcPrintUsageExamples "$@" && \
- echo -e '\nOption descriptions:\n' && \
- clcPrintCommandLineOptionDescriptions "$@" && \
- echo && \
- return $?
- }
-
- # Provides the command line interface and interactive questions.
- function clcCommandLineInterface() {
- while true; do
- case "$1" in
- -h|--help)
- shift
- clcPrintHelpMessage "$0"
- exit 0
- ;;
- -v|--verbose)
- shift
- _VERBOSE='yes'
- ;;
- -d|--debug)
- shift
- _DEBUG='yes'
- _STANDARD_OUTPUT=/dev/stdout
- _ERROR_OUTPUT=/dev/stderr
- ;;
- -c|--create-persistent-config)
- shift
- _PERSISTENT_CONFIG_TARGET="$1"
- shift
- ;;
- -v|--virtualbox-snapshot-name)
- shift
- _VIRTUAL_BOX_SNAPSHOT_NAME="$1"
- shift
- ;;
- -u|--virtualbox-snapshot-uuid-file-path)
- shift
- _VIRTUAL_BOX_SNAPSHOT_UUID_FILE_PATH="$1"
- shift
- ;;
-
- '')
- shift
- break 2
- ;;
- *)
- if [[ ! "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" ]]; then
- _BASIC_IMAGE_CONFIGURATION_FILE_PATH="$1"
- elif [[ ! "$_TARGET_PATH" ]]; then
- _TARGET_PATH="$1"
- else
- clcLog 'critical' \
- "Given argument: \"$1\" is not available." '\n'
- clcPrintHelpMessage "$0"
- return 1
- fi
- shift
- ;;
- esac
- done
- if [[ ! "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" ]] || \
- [[ ! "$_TARGET_PATH" ]]; then
- clcLog 'critical' \
- "You have to provide a basic image configuration file and a destination path."
- clcPrintHelpMessage "$0"
- return 1
- fi
- local supportedVirtualMachine
- for supportedVirtualMachine in ${_SUPPORTED_HYPERVISOR[*]}; do
- if [[ "$(clcGetXMLValue 'virtualMachine' | \
- grep --ignore-case "$supportedVirtualMachine")" ]]; then
- _HYPERVISOR="$supportedVirtualMachine"
- clcLog 'debug' "Detected \"$_HYPERVISOR\" as hypervisor."
- break
- fi
- done
- clcLog 'info' "Using \"$_HYPERVISOR\" as hypervisor." && \
- return $?
- }
-
- # Grabs a value from currently loaded xml file.
- function clcGetXMLValue() {
- grep --ignore-case --only-matching "<$1 param=.*" \
- "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" | awk -F '"' '{ print $2 }'
- return $?
- }
-
- # Handles logging messages. Returns non zero and exit on log level error to
- # support chaining the message into toolchain.
- function clcLog() {
- local loggingType='info'
- local message="$1"
- if [ "$2" ]; then
- loggingType="$1"
- message="$2"
- fi
- if [ "$_VERBOSE" == 'yes' ] || [ "$loggingType" == 'error' ] || \
- [ "$loggingType" == 'critical' ]; then
- if [ "$3" ]; then
- echo -e -n "$3"
- fi
- echo -e "${loggingType}: $message"
- fi
- if [ "$loggingType" == 'error' ]; then
- exit 1
- fi
- }
-
- # endregion
-
- # region tools
-
- # Returns the minimal vmx vmware configuration file content to create a
- # snapshot.
- function clcGetTemporaryVMXContent() {
- cat << EOF
-.encoding = "UTF-8"
-config.version = "8"
-virtualHW.version = "7"
-ide0:0.present = "TRUE"
-ide0:0.fileName = "$1"
-displayName = ""
-EOF
- return $?
- }
-
- # This functions escapes every special meaning character for a sed
- # replacement.
- #
- # Examples:
- #
- # >>> sed "s/myInputString/$(clcValidateSEDReplacement '\hans/peter&klaus')/g"
- function clcValidateSEDReplacement() {
-## bash
-## sed --expression 's/\\/\\\\/g' --expression 's/\//\\\//g' \
-## --expression 's/&/\\\&/g' <<< "$1"
- sed -e 's/\\/\\\\/g' -e 's/\//\\\//g' -e 's/&/\\\&/g' <<< "$1"
-##
- return $?
- }
-
- # endregion
-
- # region main tasks
-
- # Creates a snapshot from VMware generated virtual machine.
- function clcCreateVMwareSnapshot() {
- local temporaryConfigurationPath="$(mktemp --directory)/" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- local temporaryConfigurationFilePath="$(mktemp --suffix '.vmx')" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog "Generate a temporary virtual machine configuration file \"$temporaryConfigurationFilePath\"." && \
- clcGetTemporaryVMXContent "$(dirname \
- "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH")/$(clcGetXMLValue \
- 'image_name')" 1>"$temporaryConfigurationFilePath" \
- 2>"$_ERROR_OUTPUT" && \
- mv "$temporaryConfigurationFilePath" "$temporaryConfigurationPath" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog "Needed temporary files generated in \"$temporaryConfigurationPath\" generated." && \
- vmrun snapshot "$temporaryConfigurationPath"*.vmx \
- persistentUserSnapshot 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
- mv "$temporaryConfigurationPath"*.vmdk "$_TARGET_PATH" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT"
- local result=$?
- if [[ "$_DEBUG" == 'no' ]]; then
-## bash rm --recursive "$temporaryConfigurationPath" \
- rm -r "$temporaryConfigurationPath" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT"
- fi
- return $result
- }
-
- # Creates a snapshot from virtualBox generated virtual machine.
- function clcCreateVirtualBoxSnapshot() {
- local temporaryConfigurationPath="$(mktemp --directory)/" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
-## bash
-## (cp --recursive ~/.VirtualBox/ \
-## "${temporaryConfigurationPath}virtualBoxBackup" \
-## 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" || \
-## mkdir --parents \
-## "${temporaryConfigurationPath}virtualBoxBackup" \
-## 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT") && \
- (cp -r ~/.VirtualBox/ \
- "${temporaryConfigurationPath}virtualBoxBackup" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" || \
- mkdir -p "${temporaryConfigurationPath}virtualBoxBackup" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT") && \
-##
- # VBoxManage version to create snapshots.
- clcLog 'Create a temporary virtual machine.' && \
- # NOTE: Virtualbox needs 5 at leas 5 seconds to register that it has
- # a new configuration directory.
- sleep 5 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- VBoxManage createvm --name tmp --basefolder \
- "$temporaryConfigurationPath" --register 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
- clcLog 'Create a temporary virtual ide controller.' && \
- VBoxManage storagectl tmp --name tmp --add ide 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
- clcLog 'Attach given virtual disk image to temporary virtual machine.' && \
- VBoxManage storageattach tmp --storagectl tmp --port 0 --device 0 \
- --type hdd --medium "$(dirname \
- "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH")/$(clcGetXMLValue \
- 'image_name')" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog "Needed temporary files generated in \"$temporaryConfigurationPath\" generated." && \
- clcLog "Take a snapshot with name or uuid \"$_VIRTUAL_BOX_SNAPSHOT_NAME\"." && \
- VBoxManage snapshot tmp take "$_VIRTUAL_BOX_SNAPSHOT_NAME" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
-## bash
-## local virtualBoxSnapshotUUID="$(basename \
-## "${temporaryConfigurationPath}tmp/Snapshots/"*.vdi | sed \
-## --regexp-extended 's/\{(.+)\}\..+/\1/g')" \
-## 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- local virtualBoxSnapshotUUID="$(basename \
- "${temporaryConfigurationPath}tmp/Snapshots/"*.vdi | sed \
- -r 's/\{(.+)\}\..+/\1/g')" 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
-##
- echo "$virtualBoxSnapshotUUID" \
- 1>"$_VIRTUAL_BOX_SNAPSHOT_UUID_FILE_PATH" 2>"$_ERROR_OUTPUT" && \
- clcLog "Created snapshot uuid is \"$virtualBoxSnapshotUUID\" (uuid saved to \"$_VIRTUAL_BOX_SNAPSHOT_UUID_FILE_PATH\")." && \
- clcLog "Copy result to given target path \"$_TARGET_PATH\"." && \
- cp "${temporaryConfigurationPath}tmp/Snapshots/"*.vdi "$_TARGET_PATH" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- # NOTE: Isn't possible because virtualbox tries to consolidate with
- # readonly basic image.
- #VBoxManage snapshot tmp delete "$_VIRTUAL_BOX_SNAPSHOT_NAME" \
- # 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- # NOTE: Isn't possible because virtual box has child images registered.
- #VBoxManage closemedium disk "$(dirname \
- # "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH")/$(clcGetXMLValue \
- # 'image_name')" 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog 'Detach given virtual disk image from temporary created virtual machine.' && \
- VBoxManage storageattach tmp --storagectl tmp --port 0 --device 0 \
- --medium none 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog 'Remove virtual dummy harddisk.' && \
- VBoxManage storagectl tmp --name tmp --remove \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog 'Unregister temporary created virtual machine.' && \
- VBoxManage unregistervm tmp 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
- clcLog 'Restore virtualbox home directory.' && \
-## bash
-## rm --recursive --force ~/.VirtualBox/ 1>"$_STANDARD_OUTPUT" \
-## 2>"$_ERROR_OUTPUT" && \
-## cp --recursive "${temporaryConfigurationPath}virtualBoxBackup/" \
-## ~/.VirtualBox/ 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
-## rm --recursive --force "$temporaryConfigurationPath" && \
-## 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- rm -rf ~/.VirtualBox/ 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
- cp -r "${temporaryConfigurationPath}virtualBoxBackup/" \
- ~/.VirtualBox/ 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- rm -rf "$temporaryConfigurationPath" && \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
-##
- # NOTE: Virtualbox needs at least 5 seconds to register that it has
- # a new configuration directory.
- sleep 5 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT"
- local result=$?
- if [[ "$_DEBUG" == 'no' ]]; then
-## bash rm --recursive "$temporaryConfigurationPath" \
- rm -r "$temporaryConfigurationPath" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" || \
- return $?
- fi
- return $result
- }
-
- # Creates a persistent version of given configuration file.
- function clcCreatePersistentConfig() {
- clcLog "Create a persistent configuration file version from \"$_BASIC_IMAGE_CONFIGURATION_FILE_PATH\" in \"$_TARGET_PATH\"." && \
- cp "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH" "$_TARGET_PATH" && \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog 'Edit short description.' && \
-## bash sed --in-place --regexp-extended \
- sed -i -r \
- "s/(< *short_description[^>]*param=\"[^\"]*)(\")/\\1$_PERSISTENT_SHORT_DESCRIPTION_SUFFIX\\2/g" \
- "$_TARGET_PATH" 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog 'Append "original_xml_file_path" tag.' && \
-## bash
-## sed --in-place --regexp-extended \
-## "s/^([ \\t]*)(< *persistent[^>]+param=\"[^\"]+\"[^>]*>)/\\1\\2\\n\\1<original_xml_file_path param=\"$(clcValidateSEDReplacement \
-## "$(readlink --canonicalize \
-## "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH")")\"\/>/g" \
-## "$_TARGET_PATH" 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- sed -i -r \
- "s/^([ \\t]*)(< *persistent[^>]+param=\"[^\"]+\"[^>]*>)/\\1\\2\\n\\1<original_xml_file_path param=\"$(clcValidateSEDReplacement \
- "$(readlink -f \
- "$_BASIC_IMAGE_CONFIGURATION_FILE_PATH")")\"\/>/g" \
- "$_TARGET_PATH" 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
-##
- clcLog 'Edit image file path.' && \
-## bash sed --in-place --regexp-extended \
- sed -i -r \
- "s/(< *image_name[^>]*param=\")[^\"]*(\")/\\1$(clcValidateSEDReplacement \
- "$_PERSISTENT_CONFIG_TARGET")\\2/g" "$_TARGET_PATH" \
- 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- clcLog 'Convert configuration file from windows style line endings to unix line endings.' && \
-## bash
-## sed --in-place --regexp-extended 's/\r//g' "$_TARGET_PATH" \
-## 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
- sed -i -r 's/\r//g' "$_TARGET_PATH" 1>"$_STANDARD_OUTPUT" \
- 2>"$_ERROR_OUTPUT" && \
-##
- return $?
- }
-
- # endregion
-
-# endregion
-
-# region controller
-
- clcCommandLineInterface "$@" || return $?
- if [[ "$_PERSISTENT_CONFIG_TARGET" ]]; then
- clcCreatePersistentConfig || \
- clcLog 'error' 'Creating persistent configuration file failed.'
- else
- "clcCreate${_HYPERVISOR}Snapshot" || \
- clcLog 'error' 'Creating Linked Clone failed.'
- fi
- clcLog 'Program has successfully finished.' && \
- return $?
-
-# endregion
-
-}
-
-# region footer
-
-if [[ "$0" == *"${__NAME__}" ]]; then
- "$__NAME__" "$@"
-fi
-
-# endregion
diff --git a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-xml_filter b/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-xml_filter
deleted file mode 100755
index 5fd8acc5..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/scripts/vmchooser-xml_filter
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/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/vmchooser2/data/opt/openslx/vmchooser/config/smb.conf b/remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/smb.conf
deleted file mode 100644
index d8966f71..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/smb.conf
+++ /dev/null
@@ -1,38 +0,0 @@
-# -----------------------------------------------------------------------------
-# Copyright (c) 2009..2013 - OpenSLX GmbH
-#
-# This program/file 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 feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-# -----------------------------------------------------------------------------
-# smb.conf
-# - basic samba configuration file for OpenSLX host-internal networking
-################################################################################
-[global]
- workgroup = OPENSLX
- netbios name = HOMESERVER
- security = SHARE
- server string = Home and Print Provider
- bind interfaces only = Yes
- interfaces = nat1
- pid directory = /run/samba
-
-[userhome]
- comment = Home Directory of USER
- path = /home/USER/PERSISTENT
- create mask = 0700
- guest ok = No
- read only = No
-
-[scratch]
- comment = Host System Temp Folder
- path = /tmp
- create mask = 0700
- guest ok = Yes
- read only = No
- browseable = Yes
-
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf b/remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf
deleted file mode 100644
index bca1397c..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/config/udhcpd-nat1.conf
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright (c) 2013 - 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/
-# -----------------------------------------------------------------------------
-# udhcpd.conf
-# - This is the udhcpd configuration file servicing the nat1 interface for
-# the various virtualization services. DNSSERVER and DOMAIN are replaced
-# before deamon start in systemd script.
-################################################################################
-
-# start and end of the IP lease block
-start 192.168.101.20
-end 192.168.101.100
-max_leases 80
-
-# interface that udhcpd will use
-interface nat1
-
-# how long an offered address is reserved (leased) in seconds
-offer_time 6000
-
-# location of the leases file
-lease_file /var/lib/udhcpd/udhcpd-nat1.leases
-
-# location of the pid file
-pidfile /var/run/udhcpd-nat1.pid
-
-option dns DNSSERVER
-option subnet 255.255.255.0
-option router 192.168.101.1
-option wins 192.168.101.10
-option domain DOMAIN virtual.site
-option lprsrv 192.168.101.1
-#option ntpsrv NTPSERVER
-
-# additional options known to udhcpd not used in OpenSLX at the moment
-#subnet #timezone
-#router #timesvr
-#namesvr #dns
-#logsvr #cookiesvr
-#lprsvr #bootsize
-#domain #swapsvr
-#rootpath #ipttl
-#mtu #broadcast
-#wins #lease
-#ntpsrv #tftp
-#bootfile #wpad
-
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/bootpgm.exe b/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/bootpgm.exe
deleted file mode 100644
index 88f89418..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/bootpgm.exe
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-left.png b/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-left.png
deleted file mode 100644
index 900dd867..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-left.png
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-right.png b/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-right.png
deleted file mode 100644
index 8ca9347b..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-right.png
+++ /dev/null
Binary files differ
diff --git a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx.ini b/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx.ini
deleted file mode 100644
index 57a22821..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-background-color=#ffffff
-image-right=openslx-right.png
-image-left=openslx-left.png
-
diff --git a/remote/modules/vmchooser2/data/opt/openslx/xsessions/default.desktop b/remote/modules/vmchooser2/data/opt/openslx/xsessions/default.desktop
deleted file mode 100755
index 9d3a472d..00000000
--- a/remote/modules/vmchooser2/data/opt/openslx/xsessions/default.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Name=virtual machine chooser (default)
-Name[de]=Virtuelle Maschine auswählen
-Comment=This session starts the vm session chooser
-Comment[de]=Diese Sitzung startet das Auswahlmenü für die vorhandenen Sitzungen
-Exec=/opt/openslx/bin/vmchooser -c /opt/openslx/vmchooser/config/vmchooser.conf
-TryExec=/opt/openslx/bin/vmchooser
-Icon=
-Type=Application