From 416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Thu, 2 Sep 2010 17:50:49 +0200 Subject: change dir structure --- os-plugins/plugins/vmchooser/files/run-virt.sh | 402 ------------------------- 1 file changed, 402 deletions(-) delete mode 100644 os-plugins/plugins/vmchooser/files/run-virt.sh (limited to 'os-plugins/plugins/vmchooser/files/run-virt.sh') diff --git a/os-plugins/plugins/vmchooser/files/run-virt.sh b/os-plugins/plugins/vmchooser/files/run-virt.sh deleted file mode 100644 index 23f026c7..00000000 --- a/os-plugins/plugins/vmchooser/files/run-virt.sh +++ /dev/null @@ -1,402 +0,0 @@ -#!/bin/bash -# ----------------------------------------------------------------------------- -# Copyright (c) 2007..2010 - RZ Uni FR -# Copyright (c) 2007..2010 - 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. -################################################################################ - -. /etc/opt/openslx/openslx.conf - -################################################################################ -### Define default dirs / get configs -################################################################################ - -PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins -PLUGINCONFDIR=${PLUGINCONFROOT}/vmchooser -# include general configuration from vmchooser -[ -f ${PLUGINCONFROOT}/vmchooser/vmchooser.conf ] && \ - . ${PLUGINCONFROOT}/vmchooser/vmchooser.conf -# load general virtualization information -[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \ - . ${PLUGINCONFROOT}/virtualization/virtualization.conf - -################################################################################ -### Functions used throughout the script -################################################################################ - -# function to write to stdout and logfile -LOGFILE=${OPENSLX_DEFAULT_LOGDIR}/run-virt.${USER}.$$.log -writelog () { - # write to stdout - echo -e "$1" - # log into file - echo -e "$1" >> ${LOGFILE} -} - -# remove config dirs when exit -cleanexit () { - if echo "${RMDIRS}" 2>/dev/null | grep -q ${xmlvirt}; then - writelog "${xmlvirt} exited. Cleanning up... \c" - rm -rf ${RMDIRS} >/dev/null 2>&1 - writelog "done" - fi - - exit "$1" -} - -# 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 -################################################################################ - -# 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" - -################################################################################ -### Sanity checks -################################################################################ - -# test if the xml file is valid -if ! [ -r "${xmlfile}" ]; then - writelog "${xmlfile} not a readable XML file!" - exit 1 -fi - -# test if XML file -if ! grep '/dev/null 2>&1; then - writelog \ - "Submitted configuration file ${xmlfile} seems to have wrong XML format" - exit 1 -fi - -# Theck for running in graphical environment otherwise no much use here -[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a graphical desktop!\n" \ - && exit 1 - -################################################################################ -### Logo for console -################################################################################ - -cat </dev/null | grep -q '^/' >/dev/null 2>&1; 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} 2>/dev/null | grep -q '^/tmp/' >/dev/null 2>&1; then - vmpath=$imgname - imgname=$(basename ${imgname}) -# else use same path as xml -else - imgpath=${xmlpath} - vmpath=${imgpath}/${imgname} -fi - -# check if virtual machine container file exists -if ! [ -e "${vmpath}" ]; then - writelog "Virtual machine image ${vmpath} not found!" - exit 1 -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}') - -# 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) - xmlvirt="virtualbox" - ;; - img|qcow*) - xmlvirt="qemukvm" - ;; - *) - xmlvirt="none" - ;; - esac - writelog "result:\t${xmlvirt}" -fi - -# definition of the client system -vmostype=$(grep -io '/dev/null| grep -ve "^$") -xres=$(echo "${hostres}" | awk '{print $3}') -yres=$(echo "${hostres}" | awk '{print $7}') - -# enable 3D -enable3d=$(grep -i "/dev/null | \ - awk -F '=' {'print $2'}) - -# add rw share -sharepath="${HOME}" -sharename="home" - -# 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 -################################################################################ - -# Adjust sound volume -writelog "Unmuting sound...\c " -amixer -q sset Master 80% unmute 2>/dev/null -amixer -q sset PCM 80% unmute 2>/dev/null -amixer -q sset CD 80% unmute 2>/dev/null -amixer -q sset Headphone 80% unmute 2>/dev/null -amixer -q sset Front 80% umute 2>/dev/null # in SUSE 11.0 it's headphone -amixer -q sset Speaker 0 mute 2>/dev/null # annoying built-in speaker -writelog "finished\n" - -# Copy guest configuration (with added information) config.xml to be accessed -# via virtual floppy -# fixme -> to be changed (vmchooser adapts the file content!?) -#TODO: wozu echo? -#echo "Please fix the config.xml generation" -cp ${xmlfile} ${PLUGINCONFDIR}/fd-loop/config.xml - -# Check if virtual machine container file exists -#filecheck - -# Get all virtual machine specific stuff from the respective include file -if [ -e ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include ] ; then - self=${xmlvirt} - . ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include - # start a windowmanager for easier handling - # (expect problems /w windows opening in background /w vmware without wm) - for dm in xfwm4 metacity openbox blackbox kwin 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 - ${VIRTCMD} ${VIRTCMDOPTS} - writelog "Bye." - cleanexit 0 -else - writelog "Failed because of missing ${xmlvirt} plugin." - cleanexit 1 -fi - -# postrun for scripts after virtualization finishes -if [ -n "${POSTRUN}" ]; then - eval ${POSTRUN} >/dev/null 2>&1 -fi - -cleanexit 0 -exit 0 -- cgit v1.2.3-55-g7522