From f4e2d67f4b1d19dc0f62234df4f278c4170ea71a Mon Sep 17 00:00:00 2001 From: Dirk von Suchodoletz Date: Tue, 17 Feb 2009 20:22:33 +0000 Subject: Changes following the new centralized run-virt.sh concept ... (not useable at the moment) git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2591 95ad53e4-c205-0410-b2fa-d234c58c8868 --- os-plugins/plugins/qemukvm/XX_qemukvm.sh | 11 +- os-plugins/plugins/qemukvm/files/run-qemukvm | 510 ---------------------- os-plugins/plugins/qemukvm/files/run-virt.include | 45 ++ 3 files changed, 53 insertions(+), 513 deletions(-) delete mode 100644 os-plugins/plugins/qemukvm/files/run-qemukvm create mode 100644 os-plugins/plugins/qemukvm/files/run-virt.include (limited to 'os-plugins') diff --git a/os-plugins/plugins/qemukvm/XX_qemukvm.sh b/os-plugins/plugins/qemukvm/XX_qemukvm.sh index 1c0e4b87..92285aea 100644 --- a/os-plugins/plugins/qemukvm/XX_qemukvm.sh +++ b/os-plugins/plugins/qemukvm/XX_qemukvm.sh @@ -23,7 +23,7 @@ if [ -e /initramfs/plugin-conf/qemukvm.conf ]; then if [ $qemukvm_active -ne 0 ]; then [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'qemukvm' os-plugin ..."; - # Load general configuration + # load general configuration . /initramfs/machine-setup # get source of qemukvm image server (get type, server and path) @@ -40,8 +40,8 @@ if [ -e /initramfs/plugin-conf/qemukvm.conf ]; then # TODO: to be filled in ... ;; lbdev) - # we expect the stuff on toplevel directory, filesystem type should be - # autodetected here ... (vmimgserv is blockdev here) + # we expect the stuff on toplevel directory, filesystem type should + # be autodetected here ... (qkimgserv is blockdev here) qkbdev=/dev/${qkimgserv} waitfor ${qkbdev} 20000 echo -e "ext2\nreiserfs\nvfat\nxfs" >/etc/filesystems @@ -59,6 +59,11 @@ if [ -e /initramfs/plugin-conf/qemukvm.conf ]; then ;; esac fi + # copy version depending files - the vmchooser expects for every virtua- + # lization plugin a file named after it (here run-qemukvm.include) + testmkd /mnt/etc/opt/openslx + cp /mnt/opt/openslx/plugin-repo/run-qemukvm/files/run-virt.include \ + /mnt/etc/opt/openslx/run-qemukvm.include fi else diff --git a/os-plugins/plugins/qemukvm/files/run-qemukvm b/os-plugins/plugins/qemukvm/files/run-qemukvm deleted file mode 100644 index 0536ee3e..00000000 --- a/os-plugins/plugins/qemukvm/files/run-qemukvm +++ /dev/null @@ -1,510 +0,0 @@ -#!/bin/bash -# Copyright (c) 2008 - 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 -# -# Start script for running the QEMU/Linux KVM virtual machine on an OpenSLX -# client. The script is copied to /var/X11R6/bin during stage3. - -################################################################################ -## -## Read needed variables from XML file -## -################################################################################ -xml=$1 - -# file name of the image -imagename=$(grep -i " ${xml}.utf -short_description=$(grep "short_description param=\"" ${xml} | sed -e "s%&.*;%; %g" | awk -F "\"" '{print $2}') -# if ${short_description} not defined use ${image_name} -short_description=${short_description:-"${image_name}"} -displayname=${short_description} - -# Definition of the client system -vmostype=$(grep -i "/dev/null| grep -ve "^$") -xres=$(echo "${hostres}" | awk '{print $3}') -yres=$(echo "${hostres}" | awk '{print $7}') - -# Folder of VirtualMachine images -vmdir="/var/lib/qemukvmw" - -## Image depending variables. This values will be changed by the script - -# vmware image file -diskfile="${vmdir}/${imagename}" - -#TODO: check for a faster way, perhaps we should put this into XML -# oh - yeah!! Why not do it on the SERVER??? It has enough power and has -# to do it once and not during every start on a client :) -#grepping every file could take much (network) resources. And if its -#an IDE Image, but has somewhere the string ddb.adapterType stuff can -#become screwed -# NOOOOOOO - We do not check on every start on every client!!! -# check if IDE or SCSI -#hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}') -#if [ "${hddrv}" = "ide" ]; then -# ide="TRUE" -# scsi="FALSE" -#elif [ "${hddrv}" = "lsilogic" ]; then -# ide="FALSE" -# scsi="TRUE" -#elif [ "${hddrv}" = "buslogic" ]; then -# ide="FALSE" -# scsi="TRUE" -#fi - - -# command line variables -# start with this this default commmand line options + extra -# TODO: defaults laut datei --include /var/lib/vmware/tmpl/winconfig -# --include include code right before program start - -# Should we debug? Hell yes, we should always debug! -debug=0 - -#TODO: Bad done... we should do this another way later -version=$(head -n 20 $0 | grep "# Version: " | awk '{print $3}') - -############# -## TODO: End of uncleaned area -############# - - - - - - -### FUNCTION SECTION ########################################################### -## -## In this script used functions -## -################################################################################ - -### write run-vmware.conf ####################################################### -#TODO: only not yet checked function -filecheck () -{ - filecheck=$(LANG=us ls -lh ${diskfile} 2>&1) - writelog "Filecheck:\n${filecheck}\n" - #TODO: don't understand the sence in it - noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l) - rightsfile=${diskfile} - - # check if link - # TODO: mistake with 2nd rightsfile if its in another directory? - 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 "Vmware 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? - 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 -} - - -### write run-vmware.conf ####################################################### -runvmwareconfheader () -{ - echo " - ############################################################################## - ###### This configuration file was generated by run-vmware.sh, ###### - ###### dont use it for your own configurations - it will be overwritten ###### - ###### ###### - - ###### identity ############################################################## - displayName = \"${displayname}\" - guestOS = \"${vmostype}\" - config.version = \"${confver}\" - virtualHW.version = \"${hver}\" - - memsize = \"${mem}\" - numvcpus = \"1\" - - ###### ide-disks ############################################################# - ide0:0.mode = \"${np}\" - ide0:0.present = \"${ide}\" - ide0:0.fileName = \"${diskfile}\" - - ide1:0.present = \"${cdr_1}\" - ide1:0.autodetect = \"TRUE\" - ide1:0.fileName = \"auto detect\" - ide1:0.deviceType = \"cdrom-raw\" - - ide1:1.present = \"${cdr_2}\" - ide1:1.autodetect = \"TRUE\" - ide1:1.fileName = \"auto detect\" - ide1:1.deviceType = \"cdrom-raw\" - - ###### scsi-disks ############################################################ - scsi0.present = \"${scsi}\" - scsi0.virtualDev = \"lsilogic\" - scsi0:0.mode = \"${np}\" - scsi0:0.present = \"${scsi}\" - scsi0:0.fileName = \"${diskfile}\" - - ###### nics ################################################################## - ethernet0.present = \"TRUE\" - ethernet0.addressType = \"static\" - ethernet0.connectionType = \"${network_kind}\" - ethernet0.address = \"00:50:56:0D:${mac}\" - - ###### sound ################################################################# - sound.present = \"TRUE\" - sound.virtualDev = \"es1371\" - - ###### usb ################################################################### - usb.present = \"TRUE\" - usb.generic.autoconnect = \"TRUE\" - - ###### floppies ############################################################## - floppy0.present = \"${floppya}\" - floppy0.fileName = \"auto detect\" - - # we need floppy b: this for our windows client configuration - floppy1.present = \"${floppyb}\" - floppy1.fileType = \"file\" - floppy1.fileName = \"${floppybname}\" - floppy1.startConnected = \"TRUE\" - - ###### ports ################################################################# - parallel0.present = \"FALSE\" - - serial0.present = \"FALSE\" - - ###### shared folders ######################################################## - sharedFolder0.present = \"TRUE\" - sharedFolder0.enabled = \"TRUE\" - sharedFolder0.expiration = \"never\" - sharedFolder0.guestName = \"Home\" - sharedFolder0.hostPath = \"${HOME}\" - sharedFolder0.readAccess = \"TRUE\" - sharedFolder0.writeAccess = \"TRUE\" - sharedFolder.maxNum = \"1\" - - ###### misc ################################################################## - tmpDirectory = \"${redodir}\" - mainMem.useNamedFile = \"TRUE\" - snapshot.disabled = \"TRUE\" - tools.syncTime = \"TRUE\" - redoLogDir = \"${redodir}\" - hints.hideAll = \"TRUE\" - logging = \"FALSE\" - isolation.tools.hgfs.disable = \"FALSE\" - isolation.tools.dnd.disable = \"TRUE\" - isolation.tools.copy.enable = \"TRUE\" - isolation.tools.paste.enabled = \"TRUE\" - gui.restricted = \"TRUE\" - pref.hotkey.shift = \"TRUE\" - pref.hotkey.control = \"TRUE\" - pref.hotkey.alt = \"TRUE\" - svga.maxWidth = \"${xres}\" - svga.maxHeight = \"${yres}\" - svga.autodetect = \"TRUE\" - " \ - >${conffile} - - # set the appropriate permissions for the vmware config file - chmod u+rwx ${conffile} >/dev/null 2>&1 -} - - -### creates user configurationfile in ${vmhome} ################################ -preferencesheader () -{ - echo " - ############################################################################## - ###### This configuration file was generated by run-vmware.sh, ###### - ###### dont use it for your own configurations - it will be overwritten ###### - ###### ###### - ################################## Wichtig! ################################## - ###### *.vmem wird immer angelegt und frisst soviel Speicher, wie fuer ###### - ###### den Gast vorgesehen. Sollte nicht im tempfs liegen. NFS OK, da ###### - ###### IO nur einmal beim Start erheblich. Wird gesteuert ueber ###### - ###### confdir=/nfs-viel-platz ###### - - # DEBUG: some versions accept it only upper or lowercase... which one? - # The following 4 could also be uppercase - hints.hideAll = \"true\" - pref.exchangeSelections = \"true\" - pref.hotkey.shift = \"true\" - pref.tip.startup = \"false\" - pref.vmplayer.exit.vmAction = \"poweroff\" - # DEBUG: some versions accept it only upper or lowercase... which one? - # The following 2 could also be uppercase - pref.vmplayer.fullscreen.autohide = \"true\" - pref.vmplayer.webUpdateOnStartup = \"false\" - prefvmx.defaultVMPath = \"${vmhome}\" - prefvmx.mru.config = \"${conffile}:\" - tmpDirectory = \"${redodir}\" - webUpdate.checkPeriod = \"manual\" - pref.eula.size = \"2\" - pref.eula.0.appName = \"VMware Player\" - pref.eula.0.buildNumber = \"${vmbuild}\" - pref.eula.1.appName = \"VMware Workstation\" - pref.eula.1.buildNumber = \"${vmbuild}\" - " \ - >${vmhome}/preferences -} - - -### log function ############################################################### -# function to write to stdout and logfile -writelog () -{ - # write to stdout - echo -e "$1" - - # log in file - echo -e "$1" >>${redodir}/run-vmware.${USER}.log -} - - - - - - -### MAIN SECTION ############################################################### -## -## Main part of the script... -## -################################################################################ - -# Delete the LOCK file. its insecure, but ... -rm -f ${confdir}/*LOCK >/dev/null 2>&1 - -# create vmware directories -mkdir -p ${redodir} >/dev/null 2>&1 -mkdir -p ${confdir} >/dev/null 2>&1 -mkdir -p ${vmhome} >/dev/null 2>&1 - -# NO X-server, no run-vmware ;) -[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1 - -# logo for console -cat </dev/null -done - -# adjust volume -writelog "Unmuting sound...\c " -amixer -q sset Master 28 unmute 2>/dev/null -amixer -q sset PCM 28 unmute 2>/dev/null -amixer -q sset Headphone 28 unmute 2>/dev/null -amixer -q sset Front 0 mute 2>/dev/null -writelog "finished\n" - -### run vmplayer ############################################################### -# ...with the automatically written config file -if [ $(which vmplayer 2>/dev/null) ]; then writelog "Starting ..." - # run VMplayer - writelog "... vmplayer ${vmopt} ${conffile}\n" - vmplayer ${vmopt} ${conffile} >/dev/null 2>&1 -else - writelog "No VMware/VMPlayer found!\n" - exit 1 -fi - -writelog "Bye.\n" -exit 0 diff --git a/os-plugins/plugins/qemukvm/files/run-virt.include b/os-plugins/plugins/qemukvm/files/run-virt.include new file mode 100644 index 00000000..a4ce79ee --- /dev/null +++ b/os-plugins/plugins/qemukvm/files/run-virt.include @@ -0,0 +1,45 @@ +# qemukvm.include +# +# Copyright (c) 2009 - 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 QEMU/Linux KVM virtual machine on an OpenSLX +# client via the run-virt.sh. The stuff is copied to /etc/opt/openslx/run- +# qemukvm.include during stage3. + + +permem=66 +mem=expr(${totalmem} * ${permem}) +VIRTCMDOPTS="${VIRTCMDOPTS} -m ${mem}" + +# virtual fd/cd/dvd and drive devices, floppy b: for configuration +#floppya is always false, if we have a floppy device or not isn't +#important. +floppya="FALSE" +floppyb="TRUE" +floppybname="/etc/vmware/loopimg/fd.img" +cdr_1="FALSE" +cdr_2="FALSE" +# ide is expected default, test for the virtual disk image type should +# be done while creating the runscripts ... +ide="TRUE" +hddrv="ide" + + +# Folder of VirtualMachine images +vmdir="/var/lib/virt/qemukvm" + +# vmware image file +diskfile="${vmdir}/${imagename}" + +# set the variables appropriately +VIRTCMD=$(which kvm) +VIRTCMDOPTS="${VIRTCMDOPTS} ${imagename}" + -- cgit v1.2.3-55-g7522