diff options
author | Simon Rettberg | 2015-05-15 18:20:05 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-05-15 18:20:05 +0200 |
commit | f778ad0cfa03bd7358efc4b54dff352cfbc0ec19 (patch) | |
tree | 1bd27a0980993c579080f086499d724a7cbe594a /remote/modules | |
parent | Merge branch 'master' of dnbd3:openslx-ng/tm-scripts (diff) | |
download | tm-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')
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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differdeleted file mode 100755 index 8b320003..00000000 --- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/data/openslx.exe +++ /dev/null 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 Binary files differdeleted file mode 100644 index c9d8ab0d..00000000 --- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-left.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8ca9347b..00000000 --- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/bwlehrpool/bwlehrpool-right.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index c8736b72..00000000 --- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-left.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index e21f0d8b..00000000 --- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/themes/planets/planets-right.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 88f89418..00000000 --- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/data/bootpgm.exe +++ /dev/null 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 Binary files differdeleted file mode 100644 index 900dd867..00000000 --- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-left.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8ca9347b..00000000 --- a/remote/modules/vmchooser2/data/opt/openslx/vmchooser/themes/openslx/openslx-right.png +++ /dev/null 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 |