summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/virtualbox/files/run-virt.include.bak
diff options
context:
space:
mode:
Diffstat (limited to 'os-plugins/plugins/virtualbox/files/run-virt.include.bak')
-rw-r--r--os-plugins/plugins/virtualbox/files/run-virt.include.bak159
1 files changed, 159 insertions, 0 deletions
diff --git a/os-plugins/plugins/virtualbox/files/run-virt.include.bak b/os-plugins/plugins/virtualbox/files/run-virt.include.bak
new file mode 100644
index 00000000..2fd81f6b
--- /dev/null
+++ b/os-plugins/plugins/virtualbox/files/run-virt.include.bak
@@ -0,0 +1,159 @@
+# run-virtualbox.include
+#
+# Copyright (c) 2009, 2010 - 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
+#
+# Include script for running the Virtual Box on an OpenSLX client via the
+# run-virt.sh. The stuff is copied to /etc/opt/openslx/virtualbox/run-
+# virtualbox.include during stage3.
+
+################################################################################
+### General settings
+################################################################################
+
+# include general configuration from vmchooser
+. /etc/opt/openslx/plugins/virtualbox/virtualbox.conf
+
+# Current ID, to make sure it won't run into conflicts if started more
+# as once at the same time, else delete would make the trick...
+ID=$$
+machname="$(basename ${diskfile})"
+machname=${machname%.*}
+# use alternate configuration directory instead of $HOME/.VirtualBox
+export VBOX_USER_HOME="/tmp/vbox-${USER}"
+rm -rf ${VBOX_USER_HOME}/* /tmp/.vbox-${USER}-ipc
+machfolder="${VBOX_USER_HOME}/Machines"
+machconfig="${machfolder}/${machname}/${machname}.xml"
+diskfolder="${VBOX_USER_HOME}/HardDisks"
+mkdir -p ${machfolder}/${machname}/Snapshots ${diskfolder}
+ln -sf ${diskfile} ${diskfolder}/${machname}.vdi
+# Get ID of VBox Image...
+diskuid="$(VBoxManage -nologo showvdiinfo ${diskfile} |grep UUID|awk '{ print $2; }')"
+# produce proper mac address format
+mac="0050560d$(echo ${mac}|sed 's/://;y/ABCDEF/abcdef/')"
+date="$(date +%Y-%m-%dT%H:%M:%SZ)"
+
+# Operating system. Possible: VBoxManage -nologo list ostypes: WindowsXP,
+# WindowsVista, Windows7, Linux26 etc.
+# keeps compatibility to vmware plugin run-virt.include
+# Todo: maybe rewrite, to reduce checks, merge it with network option,
+# so we can have a "compatibility to vmware config" section
+if [ "${vmostype}" = "winxppro" ]; then vmostype="WindowsXP"
+elif [ "${vmostype}" = "winvista" ]; then vmostype="WindowsVista"
+elif [ "${vmostype}" = "Windows7" ]; then vmostype="Windows7"
+elif [ "${vmostype}" = "linux" ]; then vmostype="Linux26"
+elif [ -n "${vmostype}" ]; then vmostype="${vmostype}"
+fi
+# translate network kinds (nat, bridged, host-only)
+if [ "${network_kind}" = "nat" ]; then network_kind="NAT"
+elif [ "${network_kind}" = "bridged" ]; then network_kind=""
+elif [ "${network_kind}" = "host-only" ]; then network_kind=""
+fi
+
+# memory part equal to vmware plugin
+# percentage of memory to use for virtualbox in standard case
+permem=30
+if [ "${totalmem}" -ge "1600" ]; then
+ permem=40
+fi
+# check if /tmp is on harddisk
+if grep -qe "/dev/.* /tmp " /proc/mounts ; then
+ permem=60
+ id44="1"
+ # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well
+ # (40% vmware | 40% confdir(vmem...) | 20% host
+ # VMplayer 2+ issue
+ if [ "${totalmem}" -ge "2500" ]; then
+ permem=40
+ #mkdir /dev/shm/vbox/${USER}
+ snapshotdir=/dev/shm/vbox/$USER
+ fi
+fi
+mem=$(expr ${totalmem} / 100 \* ${permem})
+if [ "${id44}" = "1" ]; then
+ memhost=$(expr ${totalmem} - ${mem})
+else
+ memhost=$(expr ${totalmem} - ${mem} - ${mem})
+fi
+
+#permem=40
+#mem=$(expr ${totalmem} * ${permem})
+
+if [ "${mem}" -lt "256" ] || [ "${memhost}" -lt "256" ]; then
+ writelog "\tMemory out of range: ${mem} MB (guest) / ${memhost} MB (host)!"
+ writelog "\tMin. 256 MB for host and guest!"
+ exit 1
+fi
+
+# most of the following does not make much sense yet ...
+#
+# virtual fd/cd/dvd and drive devices, floppy b: for configuration
+# if $floppy_0 from run-virt.include set then fdtest="TRUE"
+fdtest=
+fdtest=${floppy_0:+"TRUE"}
+# if $fdtest not set floppy0="FALSE", else "TRUE"
+floppy0=${fdtest:-"FALSE"}
+floppy1="TRUE"
+floppy1name="/var/lib/virt/vmchooser/loopimg/fd.img"
+# if $cdrom_0 from run-virt.include set then cdtest="TRUE"
+cdtest=
+cdtest=${cdrom_0:+"TRUE"}
+# if $cdtest not set cdrom0="FALSE", else "TRUE"
+cdrom0=${cdtest:-"FALSE"}
+# if $cdrom_1 from run-virt.include set then cdtest="TRUE"
+cdtest=
+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 ...
+ide="TRUE"
+hddrv="ide"
+
+
+################################################################################
+### Pepare and configure virtual machine and disk image
+################################################################################
+
+# produce the machine configuration XML
+sed -e "s,MACHINE,${machname},g;s,OSTYPE,${vmostype},;s,MEMSIZE,${mem}," \
+ -e "s,DISKUID,${diskuid},;s,MACADDR,${mac},;s,DATE,${date}," \
+ -e "s,NETTYPE,${network_kind},;s,OPTDEVICE,/dev/sr0," \
+ /etc/opt/openslx/plugins/virtualbox/MachineTemplate.xml \
+ >${machconfig}
+
+# shortened date YYYY-MM-DD
+date=${date%T*}
+# produce the general and containers configuration file
+sed -e "s,DISKUID,${diskuid},;s,FD1NAME,${floppy1name},;s,DATE,${date}," \
+ -e "s,DISKFILE,${diskfolder}/${machname}.vdi,;s,MACHINE,${machname},g;s,MACADDR,${mac}," \
+ -e "s,MACHFOLDER,${machfolder},;s,DISKFOLDER,${diskfolder}," \
+ /etc/opt/openslx/plugins/virtualbox/VirtualBox.xml \
+ >${VBOX_USER_HOME}/VirtualBox.xml
+
+cat /opt/openslx/plugin-repo/virtualbox/empty-diff.vdi.gz | \
+ gunzip >${machfolder}/${machname}/Snapshots/{88bc8b6d-f248-468a-95fe-318084904f8b}.vdi
+
+
+#<DHCPServers>\t<DHCPServer\
+# networkName=\"HostInterfaceNetworking-vboxnet0\" IPAddress=\"192.168.56.100\"\
+# networkMask=\"255.255.255.0\" lowerIP=\"192.168.56.101\"\
+# upperIP=\"192.168.56.254\" enabled=\"1\"/> </DHCPServers>
+
+# finally set env for run-virt.sh
+################################################################################
+
+# wait for a certain command to settle
+while [ TRUE ] ; do
+ ps aux|grep -v grep|grep -q VBoxSVC || break
+done
+# set the variables appropriately (several interfaces with different names)
+VIRTCMD=$(which VirtualBox 2>/dev/null)
+VIRTCMDOPTS="--startvm 00000000-1111-2222-3456-${mac} --start-running"