[Lxm-commits-diff] SF.net SVN: lxm:[8] kvm-based/trunk
Status: Beta
Brought to you by:
outchy
|
From: <ou...@us...> - 2008-11-06 15:16:06
|
Revision: 8
http://lxm.svn.sourceforge.net/lxm/?rev=8&view=rev
Author: outchy
Date: 2008-11-06 15:15:46 +0000 (Thu, 06 Nov 2008)
Log Message:
-----------
added KVM-based scripts.
Added Paths:
-----------
kvm-based/trunk/bash_scripts/
kvm-based/trunk/bash_scripts/bash-inifile.sh
kvm-based/trunk/bash_scripts/kvm-clone
kvm-based/trunk/bash_scripts/kvm-display
kvm-based/trunk/bash_scripts/kvm-exec
kvm-based/trunk/bash_scripts/kvm-quit
kvm-based/trunk/bash_scripts/kvm-reset
kvm-based/trunk/bash_scripts/kvm-server
kvm-based/trunk/bash_scripts/kvm-start
kvm-based/trunk/bash_scripts/kvm-stop
kvm-based/trunk/gdm/
kvm-based/trunk/gdm/Sessions/
kvm-based/trunk/gdm/Sessions/sample.desktop
kvm-based/trunk/gdm/themes/
kvm-based/trunk/gdm/themes/kvmgnome/
kvm-based/trunk/gdm/themes/kvmgnome/GdmGreeterTheme.desktop
kvm-based/trunk/gdm/themes/kvmgnome/background.svg
kvm-based/trunk/gdm/themes/kvmgnome/gnome-logo.svg
kvm-based/trunk/gdm/themes/kvmgnome/kvmgnome.xml
kvm-based/trunk/settings/
Added: kvm-based/trunk/bash_scripts/bash-inifile.sh
===================================================================
--- kvm-based/trunk/bash_scripts/bash-inifile.sh (rev 0)
+++ kvm-based/trunk/bash_scripts/bash-inifile.sh 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,141 @@
+#!/bin/bash
+#
+# bash-inifile.sh - parse ini files using bash/awk
+# Version 1.0
+#
+# Copyright (c) 2007 Juergen Hoetzel <ju...@ho...>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+
+# Example usage:
+#
+# source bash-inifile.sh || exit 1
+#
+# ini_load "/etc/php.ini"
+# echo -e "Sections:\n"
+# for section in `ini_get_sections`;do
+# echo -e "\t" $section
+# done
+#
+#
+# for section in "PHP" "Verisign Payflow Pro" "mail function"; do
+# echo -e "\nContent of [${section}] Section:\n"
+# for key in `ini_get_keys "${section}"`;do
+# echo -e "\t$key="`ini_get_value "${section}" $key`
+# done
+# done
+
+# Notes
+#
+# Section names are mapped to global arrays using prefix
+# INI_PREFIX as start of the variable name ->
+#
+# It is not possible to parse multiple .ini concurrently files if
+# they use the same section names.
+#
+# all sections names have to be mapped to valid bash variables,
+# so internally these sections are the same:
+# [Section 1]
+# [Section.2]
+
+
+# prefix for all global variables
+INI_PREFIX=bash_inifile_
+
+function ini_load {
+ # param1 inifile
+ local tmpfile=`(mktemp "${TMPDIR-/tmp}/bash_inifileXXXXXXXX") 2>/dev/null || echo ${TMPDIR-/tmp}/bash_inifile$$`
+ awk -v INI_PREFIX=${INI_PREFIX} -f - "$1" >$tmpfile <<EOF
+
+# default global section
+BEGIN {
+ FS="[[:space:]]*=[[:space:]]*"
+ section="globals";
+}
+
+{
+ # kill comments
+ sub(/;.*/, "");
+}
+
+/^\[[^\]]+\]$/ {
+ section=substr(\$0, 2, length(\$0) -2);
+ # map section to valid shell variables
+ gsub(/[^[[:alnum:]]/, "_", section)
+ printf "%s%s_keys=()\n", INI_PREFIX, section, INI_PREFIX, section
+ printf "%s%s_values=()\n", INI_PREFIX, section, INI_PREFIX, section
+}
+
+\$1 ~ /^[[:alnum:]\._]+\$/ {
+ # remove trail/head single/double quotes
+ gsub(/(^[\"\']|[\'\"]\$)/, "", \$2);
+ # escape inside single quotes
+ gsub(/\47/, "'\"'\"'", \$2);
+ printf "%s%s_keys=(\"\${%s%s_keys[@]}\" '%s')\n", INI_PREFIX, section, INI_PREFIX, section, \$1
+ printf "%s%s_values=(\"\${%s%s_values[@]}\" '%s')\n", INI_PREFIX, section, INI_PREFIX, section, \$2
+}
+EOF
+
+while read line ; do
+ eval $line
+done <${tmpfile}
+
+rm ${tmpfile}
+
+}
+
+function ini_get_value {
+ # param1 section
+ # param2 key
+
+ # map section to valid bash variable like in awk parsing
+ local section=${1//[![:alnum:]]/_}
+ local keyarray=${INI_PREFIX}${section}_keys[@]
+ local valuearray=${INI_PREFIX}${section}_values[@]
+ local keys=("${!keyarray}")
+ local values=("${!valuearray}")
+ for (( i=0; i<${#keys[@]}; i++ )); do
+ if [[ "${keys[$i]}" = "$2" ]]; then
+ echo "${values[$i]}"
+ return 0
+ fi
+ done
+ return 1
+}
+
+function ini_get_sections {
+ eval local prefix_arrays=\${!$INI_PREFIX\*}
+ for varname in $prefix_arrays; do
+ # grep for key arrays
+ local arrayname=${varname#${INI_PREFIX}}
+ # strip trailing keys suffix
+ if [[ ${arrayname%*_keys} != ${arrayname} ]]; then
+ echo ${arrayname%*_keys}
+ fi
+ done
+}
+
+function ini_get_keys {
+ #param1 section
+ # map section to valid bash variable like in awk parsing
+ local section=${1//[![:alnum:]]/_}
+ local keyarray=${INI_PREFIX}${section}_keys[@]
+ local keys=("${!keyarray}")
+ echo ${keys[@]}
+}
+
+
Property changes on: kvm-based/trunk/bash_scripts/bash-inifile.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-clone
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-clone (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-clone 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+if [ -z "$GDMSESSION" ]; then
+ if [ -z "$1" ]; then
+ echo "missing virtual machine name"
+ exit 1
+ else
+ SESSION_NAME=$1
+ fi
+else
+ SESSION_NAME=$GDMSESSION
+fi
+
+SESSION_FILE=/etc/kvm/Sessions/$SESSION_NAME.desktop
+VNC_FILE=/tmp/$SESSION_NAME.vnc
+MON_FILE=/tmp/$SESSION_NAME.mon
+PID_FILE=/tmp/$SESSION_NAME.pid
+
+source /usr/bin/bash-inifile.sh || exit 1
+
+if [ -f "$SESSION_FILE" ]; then
+ ini_load $SESSION_FILE
+else
+ echo "missing configuration file"
+ exit 1
+fi
+
+echo "" > $PID_FILE
+echo "" > $VNC_FILE
+echo "" > $MON_FILE
+
+# extract ini values
+KVM_NAME=`ini_get_value "Desktop_Entry" Name`
+KVM_HDA=`ini_get_value "KVM" kvmhda`
+KVM_HDB=`ini_get_value "KVM" kvmhdb`
+KVM_HDC=`ini_get_value "KVM" kvmhdc`
+KVM_HDD=`ini_get_value "KVM" kvmhdd`
+
Property changes on: kvm-based/trunk/bash_scripts/kvm-clone
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-display
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-display (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-display 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+if [ -z "$GDMSESSION" ]; then
+ if [ -z "$1" ]; then
+ echo "missing virtual machine name"
+ exit 1
+ else
+ SESSION_NAME=$1
+ fi
+else
+ SESSION_NAME=$GDMSESSION
+fi
+
+SESSION_FILE=/etc/kvm/Sessions/$SESSION_NAME.desktop
+VNC_FILE=/tmp/$SESSION_NAME.vnc
+MON_FILE=/tmp/$SESSION_NAME.mon
+PID_FILE=/tmp/$SESSION_NAME.pid
+
+if [ -f "$PID_FILE" ]; then
+ # find VNC port
+ PORT=`cat $VNC_FILE`
+
+ echo $PORT
+ vncviewer -MenuKey=F1 -Shared=1 -FullScreen=1 -SendClipboard=0 -AcceptClipboard=0 -FullColor=1 -DotWhenNoCursor=0 -UseLocalCursor=0 127.0.0.1:$PORT
+fi
+
Property changes on: kvm-based/trunk/bash_scripts/kvm-display
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-exec
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-exec (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-exec 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+DISPLAY_FILE=/var/lib/gdm/$DISPLAY.GreeterInfo
+
+source /usr/bin/bash-inifile.sh || exit 1
+
+ini_load $DISPLAY_FILE
+
+KVM_ACTION=`ini_get_value "GreeterInfo" kvmaction`
+
+case $KVM_ACTION in
+
+start)
+ X_KVM_SNAPSHOT=0
+ kvm-start &
+ sleep 10s
+ ;;
+
+start-snapshot)
+ X_KVM_SNAPSHOT=1
+ kvm-start &
+ sleep 10s
+ ;;
+
+start-display)
+ X_KVM_SNAPSHOT=0
+ kvm-start &
+ sleep 1s
+ kvm-display
+ ;;
+
+reset)
+ kvm-reset
+ ;;
+
+stop)
+ kvm-stop
+ ;;
+
+quit)
+ kvm-quit
+ ;;
+
+display)
+ kvm-display
+ ;;
+
+clone)
+ kvm-clone
+ ;;
+
+snapshot)
+ kvm-snapshot
+ ;;
+
+#delete)
+# kvm-delete
+# ;;
+
+*)
+ zenity --error --text "unknown command $KVM_ACTION"
+ ;;
+
+esac
+
+#sleep 5s
+
Property changes on: kvm-based/trunk/bash_scripts/kvm-exec
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-quit
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-quit (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-quit 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+if [ -z "$GDMSESSION" ]; then
+ if [ -z "$1" ]; then
+ echo "missing virtual machine name"
+ exit 1
+ else
+ SESSION_NAME=$1
+ fi
+else
+ SESSION_NAME=$GDMSESSION
+fi
+
+SESSION_FILE=/etc/kvm/Sessions/$SESSION_NAME.desktop
+VNC_FILE=/tmp/$SESSION_NAME.vnc
+MON_FILE=/tmp/$SESSION_NAME.mon
+PID_FILE=/tmp/$SESSION_NAME.pid
+
+if [ -f "$PID_FILE" ]; then
+ #PID=`cat $PID_FILE`
+ #kill $PID
+ PORT=`cat $MON_FILE`
+ echo "quit" | telnet 127.0.0.1 $PORT
+fi
+
Property changes on: kvm-based/trunk/bash_scripts/kvm-quit
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-reset
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-reset (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-reset 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+if [ -z "$GDMSESSION" ]; then
+ if [ -z "$1" ]; then
+ echo "missing virtual machine name"
+ exit 1
+ else
+ SESSION_NAME=$1
+ fi
+else
+ SESSION_NAME=$GDMSESSION
+fi
+
+SESSION_FILE=/etc/kvm/Sessions/$SESSION_NAME.desktop
+VNC_FILE=/tmp/$SESSION_NAME.vnc
+MON_FILE=/tmp/$SESSION_NAME.mon
+PID_FILE=/tmp/$SESSION_NAME.pid
+
+if [ -f "$PID_FILE" ]; then
+ PORT=`cat $MON_FILE`
+ echo "system_reset" | telnet 127.0.0.1 $PORT
+fi
+
Property changes on: kvm-based/trunk/bash_scripts/kvm-reset
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-server
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-server (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-server 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+/usr/bin/gdmflexiserver --authenticate --command=FLEXI_XSERVER > /tmp/stdout 2> /tmp/stderr
+
Property changes on: kvm-based/trunk/bash_scripts/kvm-server
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-start
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-start (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-start 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,256 @@
+#!/bin/bash
+
+if [ -z "$GDMSESSION" ]; then
+ if [ -z "$1" ]; then
+ echo "missing virtual machine name"
+ exit 1
+ else
+ SESSION_NAME=$1
+ fi
+else
+ SESSION_NAME=$GDMSESSION
+fi
+
+SESSION_FILE=/etc/kvm/Sessions/$SESSION_NAME.desktop
+VNC_FILE=/tmp/$SESSION_NAME.vnc
+MON_FILE=/tmp/$SESSION_NAME.mon
+PID_FILE=/tmp/$SESSION_NAME.pid
+MAC_FILE=/tmp/$SESSION_NAME.mac
+
+source /usr/bin/bash-inifile.sh || exit 1
+
+if [ -f "$SESSION_FILE" ]; then
+ ini_load "$SESSION_FILE"
+else
+ echo "no configuration file"
+ exit 1
+fi
+
+KVM="/usr/bin/kvm"
+
+KVM_NAME=`ini_get_value "Desktop_Entry" "Name"`
+KVM="$KVM -name $KVM_NAME"
+
+KVM_MACHINE=`ini_get_value "KVM" "kvmmachine"`
+if [ -n "$KVM_MACHINE" ]; then
+ KVM="$KVM -M $KVM_MACHINE"
+fi
+
+KVM_CPU=`ini_get_value "KVM" "kvmcpu"`
+if [ -n "$KVM_CPU" ]; then
+ KVM="$KVM -cpu $KVM_CPU"
+fi
+
+KVM_SMP=`ini_get_value "KVM" "kvmsmp"`
+if [ -n "$KVM_SMP" ]; then
+ KVM="$KVM -smp $KVM_SMP"
+fi
+
+KVM_MEM=`ini_get_value "KVM" "kvmmem"`
+if [ -n "$KVM_MEM" ]; then
+ KVM="$KVM -m $KVM_MEM"
+fi
+
+INDEX=0
+while true; do
+ KVM_DISK_FILE=`ini_get_value "KVM" "kvmdiskfile$INDEX"`
+ KVM_DISK_IF=`ini_get_value "KVM" "kvmdiskif$INDEX"`
+ KVM_DISK_BUS=`ini_get_value "KVM" "kvmdiskbus$INDEX"`
+ KVM_DISK_UNIT=`ini_get_value "KVM" "kvmdiskunit$INDEX"`
+ KVM_DISK_MEDIA=`ini_get_value "KVM" "kvmdiskmedia$INDEX"`
+ KVM_DISK_SNAPSHOT=`ini_get_value "KVM" "kvmdisksnapshot$INDEX"`
+ if [ -n "$KVM_DISK_IF" ]; then
+ KVM="$KVM -drive index=$INDEX"
+ if [ -n "$KVM_DISK_FILE" ]; then
+ KVM="$KVM,file=$KVM_DISK_FILE"
+ fi
+ if [ -n "$KVM_DISK_IF" ]; then
+ KVM="$KVM,if=$KVM_DISK_IF"
+ fi
+ if [ -n "$KVM_DISK_BUS" ]; then
+ KVM="$KVM,bus=$KVM_DISK_BUS"
+ fi
+ if [ -n "$KVM_DISK_UNIT" ]; then
+ KVM="$KVM,unit=$KVM_DISK_UNIT"
+ fi
+ if [ -n "$KVM_DISK_MEDIA" ]; then
+ KVM="$KVM,media=$KVM_DISK_MEDIA"
+ fi
+ if [ -n "$KVM_DISK_SNAPSHOT" ]; then
+ KVM="$KVM,snapshot=$KVM_DISK_SNAPSHOT"
+ fi
+ INDEX=$[1+$INDEX]
+ else
+ break
+ fi
+done
+
+KVM_BOOT=`ini_get_value "KVM" "kvmboot"`
+if [ -n "$KVM_BOOT" ]; then
+ KVM="$KVM -boot $KVM_BOOT"
+fi
+
+KVM_SNAPSHOT=`ini_get_value "KVM" "kvmsnapshot"`
+if [ "$X_KVM_SNAPSHOT" = "1" ]; then
+ KVM_SNAPSHOT="on"
+fi
+if [ "$KVM_SNAPSHOT" = "on" ]; then
+ KVM="$KVM -snapshot"
+fi
+
+KVM_KEY=`ini_get_value "KVM" "kvmkey"`
+if [ -n "$KVM_KEY" ]; then
+ KVM="$KVM -k $KVM_KEY"
+fi
+
+KVM_GRAB=`ini_get_value "KVM" "kvmgrab"`
+if [ -n "$KVM_GRAB" ]; then
+ KVM="$KVM -alt-grab"
+fi
+
+KVM_SOUND=`ini_get_value "KVM" "kvmsound"`
+if [ -n "$KVM_SOUND" ]; then
+ KVM="$KVM -soundhw $KVM_SOUND"
+fi
+
+KVM_LOCAL_TIME=`ini_get_value "KVM" "kvmlocaltime"`
+if [ "$KVM_LOCAL_TIME" = "on" ]; then
+ KVM="$KVM -localtime"
+fi
+
+KVM_USB=`ini_get_value "KVM" "kvmusb"`
+case "$KVM_USB" in
+none)
+ KVM="$KVM"
+ ;;
+usb)
+ KVM="$KVM -usb"
+ ;;
+*)
+ KVM="$KVM -usb -usbdevice $KVM_USB"
+esac
+
+KVM_GRAPHIC=`ini_get_value "KVM" "kvmgraphic"`
+case "$KVM_GRAPHIC" in
+none)
+ KVM="$KVM -nographic"
+ ;;
+vesa)
+ KVM="$KVM -std-vga"
+ ;;
+*)
+ KVM="$KVM"
+esac
+
+KVM_SHADOW=`ini_get_value "KVM" "kvmshadow"`
+if [ -n "$KVM_SHADOW" ]; then
+ KVM="$KVM -kvm-shadow-memory $KVM_SHADOW"
+fi
+
+KVM_REMOTE=`ini_get_value "KVM" "kvmremote"`
+case "$KVM_REMOTE" in
+ncurses)
+ KVM="$KVM -curses"
+ ;;
+SDL)
+ KVM="$KVM"
+ ;;
+vnc)
+ INDEX=0
+ while true; do
+ PORT=$[5900+$INDEX]
+ OPEN=`nmap 127.0.0.1 -p $PORT | grep "open"`
+ if [ -n "$OPEN" ]; then
+ INDEX=$[1+$INDEX]
+ else
+ KVM="$KVM -vnc :$INDEX"
+ echo "$PORT" > $VNC_FILE
+ break
+ fi
+ done
+ ;;
+esac
+
+KVM_VLAN=`ini_get_value "KVM" "kvmvlan"`
+if [ -z "$KVM_VLAN" ]; then
+ KVM_VLAN=$KVM_NAME
+fi
+
+INDEX=1
+while true; do
+ KVM_MAC="00:16:3E:01:23:$[$INDEX/10]$[$INDEX%10]"
+ EXISTS=`cat /tmp/*.mac | grep "$KVM_MAC" 2> /dev/null`
+ if [ -n "$EXISTS" ]; then
+ INDEX=$[1+$INDEX]
+ else
+ echo "$KVM_MAC" > $MAC_FILE
+ break
+ fi
+done
+
+KVM_NET=`ini_get_value "KVM" "kvmnet"`
+case "$KVM_NET" in
+none)
+ KVM="$KVM -net none"
+ ;;
+user)
+ KVM="$KVM -net nic,vlan=$KVM_VLAN,macaddr=$KVM_MAC -net user,vlan=$KVM_VLAN"
+ ;;
+auto)
+ KVM="$KVM -net nic,vlan=$KVM_VLAN,macaddr=$KVM_MAC -net tap,vlan=$KVM_VLAN,ifname=$KVM_NAME"
+ ;;
+esac
+
+KVM_TFTP=`ini_get_value "KVM" "kvmtftp"`
+if [ -n "$KVM_TFTP" ]; then
+ KVM="$KVM -tftp $KVM_TFTP"
+fi
+
+KVM_BOOTP=`ini_get_value "KVM" "kvmbootp"`
+if [ -n "$KVM_BOOTP" ]; then
+ KVM="$KVM -bootp $KVM_BOOTP"
+fi
+
+KVM_SMB=`ini_get_value "KVM" "kvmsmb"`
+if [ -n "$KVM_SMB" ]; then
+ KVM="$KVM -smb $KVM_SMB"
+fi
+
+KVM_KERNEL=`ini_get_value "KVM" "kvmkernel"`
+if [ -n "$KVM_KERNEL" ]; then
+ KVM="$KVM -kernel $KVM_KERNEL"
+fi
+
+KVM_APPEND=`ini_get_value "KVM" "kvmappend"`
+if [ -n "$KVM_APPEND" ]; then
+ KVM="$KVM -append $KVM_APPEND"
+fi
+
+KVM_INITRD=`ini_get_value "KVM" "kvminitrd"`
+if [ -n "$KVM_INITRD" ]; then
+ KVM="$KVM -initrd $KVM_INITRD"
+fi
+
+PORT=5950
+while true; do
+ OPEN=`nmap 127.0.0.1 -p $PORT | grep "open"`
+ if [ -n "$OPEN" ]; then
+ PORT=$[1+$PORT]
+ else
+ KVM="$KVM -monitor tcp::$PORT,server,nowait"
+ echo "$PORT" > $MON_FILE
+ break
+ fi
+done
+
+KVM="$KVM -pidfile $PID_FILE"
+
+# KVM="$KVM -no-kvm"
+
+echo "$KVM"
+$KVM
+
+rm -f $PID_FILE
+rm -f $VNC_FILE
+rm -f $MON_FILE
+rm -f $MAC_FILE
Property changes on: kvm-based/trunk/bash_scripts/kvm-start
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/bash_scripts/kvm-stop
===================================================================
--- kvm-based/trunk/bash_scripts/kvm-stop (rev 0)
+++ kvm-based/trunk/bash_scripts/kvm-stop 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+if [ -z "$GDMSESSION" ]; then
+ if [ -z "$1" ]; then
+ echo "missing virtual machine name"
+ exit 1
+ else
+ SESSION_NAME=$1
+ fi
+else
+ SESSION_NAME=$GDMSESSION
+fi
+
+SESSION_FILE=/etc/kvm/Sessions/$SESSION_NAME.desktop
+VNC_FILE=/tmp/$SESSION_NAME.vnc
+MON_FILE=/tmp/$SESSION_NAME.mon
+PID_FILE=/tmp/$SESSION_NAME.pid
+
+if [ -f "$PID_FILE" ]; then
+ PORT=`cat $MON_FILE`
+ echo "system_powerdown" | telnet 127.0.0.1 $PORT
+fi
+
Property changes on: kvm-based/trunk/bash_scripts/kvm-stop
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:eol-style
+ native
Added: kvm-based/trunk/gdm/Sessions/sample.desktop
===================================================================
--- kvm-based/trunk/gdm/Sessions/sample.desktop (rev 0)
+++ kvm-based/trunk/gdm/Sessions/sample.desktop 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,74 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=win2003original
+Exec=kvm-exec
+Terminal=true
+
+[KVM]
+# emulated machine
+kvmmachine=pc
+
+# CPU model
+kvmcpu=qemu32
+# CPU count
+kvmsmp=1
+
+# Initial memory allocation (in megabytes)
+kvmmem=512
+
+# physical drives
+kvmdiskfile0=/path/to/file
+kvmdiskif0=ide
+kvmdiskbus0=
+kvmdiskunit0=
+kvmdiskmedia0=disk
+kvmdisksnapshot0=off
+
+kvmdiskfile1=/path/to/file.iso
+kvmdiskif1=ide
+kvmdiskbus1=
+kvmdiskunit1=
+kvmdiskmedia1=cdrom
+kvmdisksnapshot1=on
+
+# select boot (a,c,d or n)
+kvmboot=c
+#snapshot
+kvmsnapshot=
+
+#keyboard
+kvmkey=fr
+kvmgrab=
+
+# sound options
+#kvmsound=sb16
+kvmsound=
+
+# time option
+kvmlocaltime=on
+
+# usb support (usb,none or devices)
+kvmusb=tablet
+
+# graphic options (none, vga or vesa)
+kvmgraphic=vesa
+#vesa
+kvmshadow=16
+# remote display (vnc,SDL, ncurses)
+# VNC port is automatically allocated
+kvmremote=vnc
+
+# network options (auto,user or none)
+kvmnet=auto
+# default to <Name>
+kvmvlan=
+kvmtftp=
+kvmbootp=
+kvmsmb=
+
+# linux guest option
+kvmkernel=
+kvmappend=
+kvminitrd=
+
Property changes on: kvm-based/trunk/gdm/Sessions/sample.desktop
___________________________________________________________________
Added: svn:eol-style
+ native
Added: kvm-based/trunk/gdm/themes/kvmgnome/GdmGreeterTheme.desktop
===================================================================
--- kvm-based/trunk/gdm/themes/kvmgnome/GdmGreeterTheme.desktop (rev 0)
+++ kvm-based/trunk/gdm/themes/kvmgnome/GdmGreeterTheme.desktop 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,11 @@
+# This is not really a .desktop file like the rest, but it's useful to treat
+# it as such
+
+[GdmGreeterTheme]
+Encoding=UTF-8
+Greeter=kvmgnome.xml
+Name=KVM GNOME
+Description=GNOME Art variation of Circles with KVM facilities
+Author=GNOME Artists and Florent Ouchet
+Copyright=(c) 2002 GNOME (c) 2008 Florent Ouchet
+# Screenshot=screenshot.png
Added: kvm-based/trunk/gdm/themes/kvmgnome/background.svg
===================================================================
--- kvm-based/trunk/gdm/themes/kvmgnome/background.svg (rev 0)
+++ kvm-based/trunk/gdm/themes/kvmgnome/background.svg 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN" "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd" [
+ <!ENTITY st0 "fill:url(#aigrd1);stroke:none;">
+ <!ENTITY st1 "fill:url(#aigrd3);stroke:none;">
+ <!ENTITY st2 "fill:url(#aigrd2);stroke:none;">
+ <!ENTITY st3 "fill-rule:nonzero;clip-rule:nonzero;fill:#2A569D;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st4 "stroke:none;">
+]>
+<svg width="508.104pt" height="383.717pt" viewBox="0 0 508.104 383.717" xml:space="preserve">
+ <g id="Layer_x0020_1" style="&st3;">
+ <g id="middle">
+ <linearGradient id="aigrd1" gradientUnits="userSpaceOnUse" x1="237.2617" y1="24.7095" x2="237.2617" y2="371.207">
+ <stop offset="0" style="stop-color:#4E77B9"/>
+ <stop offset="1" style="stop-color:#6E8CBE"/>
+ </linearGradient>
+ <path style="&st0;" d="M59.227,357.212c27.481,9.066,56.985,13.994,87.696,13.994c148.221,0,268.375-114.698,268.375-256.189c0-31.789-6.073-62.221-17.16-90.308C249.869,104.206,131.168,219.909,59.227,357.212z"/>
+ </g>
+ <linearGradient id="aigrd2" gradientUnits="userSpaceOnUse" x1="277.0767" y1="0" x2="277.0766" y2="383.7178">
+ <stop offset="0" style="stop-color:#335EA2"/>
+ <stop offset="1" style="stop-color:#6D8BBD"/>
+ </linearGradient>
+ <path id="lower_x0020_right" style="&st2;" d="M447.704,0c-16.859,7.792-33.389,16.037-49.566,24.709c11.087,28.087,17.16,58.52,17.16,90.308c0,141.491-120.154,256.189-268.375,256.189c-30.71,0-60.214-4.928-87.696-13.994
+ c-4.584,8.749-8.979,17.585-13.178,26.505h462.056V0h-60.4z"/>
+ <g id="upper_x0020_left">
+ <linearGradient id="aigrd3" gradientUnits="userSpaceOnUse" x1="199.0684" y1="0" x2="199.0683" y2="357.2129">
+ <stop offset="0" style="stop-color:#436FB6"/>
+ <stop offset="1" style="stop-color:#305CA3"/>
+ </linearGradient>
+ <path style="&st1;" d="M398.137,24.709C394.798,16.252,391.011,8.005,386.791,0H0v329.44c18.309,11.454,38.174,20.827,59.227,27.772c71.942-137.304,190.642-253.007,338.911-332.503z"/>
+ </g>
+ <g id="bottom_x0020_small">
+ <path style="&st4;" d="M0,329.44v54.277h46.048c4.2-8.92,8.594-17.756,13.178-26.505C38.174,350.267,18.309,340.894,0,329.44z"/>
+ </g>
+ <g id="top_x0020_small">
+ <path style="&st4;" d="M447.704,0h-60.913c4.221,8.005,8.008,16.252,11.347,24.709C414.315,16.037,430.844,7.792,447.704,0z"/>
+ </g>
+ </g>
+</svg>
Added: kvm-based/trunk/gdm/themes/kvmgnome/gnome-logo.svg
===================================================================
--- kvm-based/trunk/gdm/themes/kvmgnome/gnome-logo.svg (rev 0)
+++ kvm-based/trunk/gdm/themes/kvmgnome/gnome-logo.svg 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="us-ascii" ?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN" "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd" [
+ <!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+ <!ENTITY st1 "stroke:none;">
+]>
+<svg width="95.991pt" height="150.915pt" viewBox="0 0 95.991 150.915" xml:space="preserve">
+ <g id="Layer_x0020_1" style="&st0;">
+ <g style="&st1;">
+ <g>
+ <g>
+ <path d="M86.068,0C61.466,0,56.851,35.041,70.691,35.041C84.529,35.041,110.671,0,86.068,0z"/>
+ <path d="M45.217,30.699c7.369,0.45,15.454-28.122,1.604-26.325c-13.845,1.797-8.976,25.875-1.604,26.325z"/>
+ <path d="M11.445,48.453c5.241-2.307,0.675-24.872-8.237-18.718c-8.908,6.155,2.996,21.024,8.237,18.718z"/>
+ <path d="M26.212,36.642c6.239-1.272,6.581-26.864-4.545-22.273c-11.128,4.592-1.689,23.547,4.545,22.273z"/>
+ <path id="newshape" d="M58.791,93.913c1.107,8.454-6.202,12.629-13.36,7.179C22.644,83.743,83.16,75.088,79.171,51.386c-3.311-19.674-63.676-13.617-70.55,17.167C3.968,89.374,27.774,118.26,52.614,118.26c12.22,0,26.315-11.034,28.952-25.012
+ c2.014-10.659-23.699-6.388-22.775,0.665z"/>
+ </g>
+ </g>
+ <g>
+ <path d="M17.718,132.165l-1.49,2.857c-0.418-0.374-1.064-0.746-1.937-1.115c-0.873-0.369-1.623-0.555-2.25-0.555c-1.964,0-3.514,0.668-4.65,2.004c-1.137,1.337-1.705,3.127-1.705,5.37c0,2.135,0.557,3.841,1.671,5.117c1.114,1.276,2.63,1.915,4.549,1.915
+ c1.264,0,2.305-0.346,3.124-1.037v-3.932h-2.781v-3.031h6.344v8.958c-0.847,0.692-1.938,1.231-3.271,1.618s-2.661,0.58-3.981,0.58c-2.868,0-5.142-0.941-6.822-2.824s-2.52-4.369-2.52-7.459c0-3.092,0.914-5.604,2.743-7.536c1.828-1.933,4.289-2.899,7.382-2.899
+ c2.192,0,4.057,0.656,5.594,1.969z"/>
+ <path d="M34.892,150.853l-9.719-12.688v12.406h-3.406V130.54h1.719l9.438,12.094V130.54h3.406v20.313h-1.438z"/>
+ <path d="M39.487,140.392c0-2.852,0.781-5.264,2.345-7.236c1.563-1.973,3.652-2.959,6.268-2.959c2.881,0,5.082,0.893,6.604,2.679c1.522,1.786,2.283,4.292,2.283,7.517c0,3.227-0.795,5.786-2.385,7.682c-1.592,1.895-3.85,2.842-6.775,2.842
+ c-2.688,0-4.75-0.938-6.186-2.814s-2.153-4.447-2.153-7.709z M43.175,140.392c0,2.342,0.396,4.155,1.19,5.439c0.793,1.285,1.947,1.928,3.461,1.928c1.779,0,3.136-0.629,4.07-1.887c0.936-1.257,1.402-3.084,1.402-5.48c0-4.692-1.732-7.039-5.199-7.039
+ c-1.587,0-2.805,0.636-3.653,1.906c-0.849,1.271-1.272,2.982-1.272,5.133z"/>
+ <path d="M78.831,150.571h-3.438l-2.094-10.781l-4.031,11.063h-1.281L63.94,139.79l-2.141,10.781h-3.438l4.031-20.031h1.875l4.359,13.5l4.234-13.5h1.875l4.094,20.031z"/>
+ <path d="M84.569,133.696v4.688h6.438v3.031h-6.438v6h9.063v3.156H81.006V130.54h12.625v3.156h-9.063z"/>
+ </g>
+ </g>
+ </g>
+</svg>
Added: kvm-based/trunk/gdm/themes/kvmgnome/kvmgnome.xml
===================================================================
--- kvm-based/trunk/gdm/themes/kvmgnome/kvmgnome.xml (rev 0)
+++ kvm-based/trunk/gdm/themes/kvmgnome/kvmgnome.xml 2008-11-06 15:15:46 UTC (rev 8)
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE greeter SYSTEM "greeter.dtd">
+<greeter>
+ <item type="svg" background="true">
+ <normal file="background.svg"/>
+ <pos x="0" y="0" width="100%" height="-75"/>
+ </item>
+
+ <!-- item type="rect">
+ <normal color="#000000"/>
+ <pos x="0" y="-76" width="100%" height="76"/>
+ <fixed>
+ <item type="rect" background="true">
+ <normal color="#ffffff"/>
+ <pos x="0" y="5" width="100%" height="100%"/>
+ <box orientation="horizontal" spacing="10" xpadding="10" ypadding="0">
+ <item type="button" id="options_button">
+ <pos y="50%" anchor="w" width="100" height="40" />
+ <stock type="options"/>
+ </item>
+ <item type="list" id="session" combo="true">
+ <pos y="50%" anchor="w" height="40" width="200"/>
+ </item>
+ <item type="list" id="language" combo="true">
+ <pos y="50%" anchor="w" height="40" width="250"/>
+ </item>
+ </box>
+ </item>
+ </fixed>
+ </item -->
+
+ <item type="button">
+ <pos x="30" y="-55" width="100" height="30"/>
+ <stock type="custom_cmd0"/>
+ </item>
+
+ <item type="svg" background="true">
+ <normal file="gnome-logo.svg"/>
+ <pos x="-12" y="-12" width="30" height="47" anchor="se" />
+ </item>
+ <item type="label" id="clock">
+ <normal color="#000000" font="Sans 12"/>
+ <pos x="-80" y="-37" anchor="e"/>
+ <text>%c</text>
+ </item>
+
+ <item type="rect" id="caps-lock-warning" background="false">
+ <normal color="#FFFFFF" alpha="0.5"/>
+ <pos anchor="c" x="50%" y="75%" width="box" height="box"/>
+ <box orientation="vertical" min-width="400" xpadding="10" ypadding="5" spacing="0">
+ <item type="label">
+ <normal color="#000000" font="Sans 12"/>
+ <pos x="50%" anchor="n"/>
+ <!-- Stock label for: You've got capslock on! -->
+ <stock type="caps-lock-warning"/>
+ </item>
+ </box>
+ </item>
+
+ <item type="rect" background="false">
+ <show type="timed"/>
+ <normal color="#FFFFFF" alpha="0.5"/>
+ <pos anchor="c" x="50%" y="25%" width="box" height="box"/>
+ <box orientation="vertical" min-width="400" xpadding="10" ypadding="5" spacing="0">
+ <item type="label" id="timed-label">
+ <normal color="#000000" font="Sans 12"/>
+ <pos x="50%" anchor="n"/>
+ <!-- Stock label for: User %u will login in %t -->
+ <stock type="timed-label"/>
+ </item>
+ </box>
+ </item>
+
+ <item type="rect" background="false">
+ <normal color="#FFFFFF" alpha="0.5"/>
+ <pos anchor="c" x="25%" y="25%" width="box" height="box"/>
+ <box orientation="vertical" min-width="340" xpadding="30" ypadding="30" spacing="10">
+ <item type="label">
+ <pos anchor="n" x="50%"/>
+ <normal color="#000000" font="Sans 14"/>
+ <!-- Stock label for: Welcome to %h -->
+ <stock type="welcome-label"/>
+ </item>
+ <item type="label" id="pam-prompt">
+ <pos anchor="nw" x="10%"/>
+ <normal color="#000000" font="Sans 12"/>
+ <!-- Stock label for: Username: -->
+ <stock type="username-label"/>
+ </item>
+ <item type="rect">
+ <normal color="#000000"/>
+ <pos anchor="n" x="50%" height="24" width="80%"/>
+ <fixed>
+ <item type="entry" id="user-pw-entry">
+ <normal color="#000000" font="Sans 12"/>
+ <pos anchor="nw" x="1" y="1" height="-2" width="-2"/>
+ </item>
+ </fixed>
+ </item>
+ <item type="button" id="ok_button">
+ <pos anchor="n" x="50%" height="32" width="50%"/>
+ <stock type="ok"/>
+ </item>
+ <item type="button" id="cancel_button">
+ <pos anchor="n" x="50%" height="32" width="50%"/>
+ <stock type="startagain"/>
+ </item>
+ <item type="label" id="pam-message">
+ <pos anchor="n" x="50%"/>
+ <normal color="#000000" font="Sans 12"/>
+ <text></text>
+ </item>
+ </box>
+ <fixed>
+ <item type="label" id="pam-error">
+ <pos anchor="n" x="50%" y="110%"/>
+ <normal color="#000000" font="Sans 12"/>
+ <text></text>
+ </item>
+ </fixed>
+ </item>
+
+ <item type="rect" background="false">
+ <normal color="#FFFFFF" alpha="0.5"/>
+ <pos anchor="c" x="25%" y="65%" width="box" height="box"/>
+ <box orientation="vertical" min-width="340" xpadding="30" ypadding="30" spacing="10">
+ <item type="label">
+ <pos anchor="n" x="50%"/>
+ <normal color="#000000" font="Sans 14"/>
+ <text>KVM action</text>
+ </item>
+ <item type="list" id="kvmaction">
+ <pos anchor="n" x="50%" height="230" width="300"/>
+ <listitem id="start"><text>Start virtual machine</text></listitem>
+ <listitem id="start-snapshot"><text>Start virtual machine (snapshot)</text></listitem>
+ <listitem id="start-display"><text>Start and display virtual machine</text></listitem>
+ <listitem id="reset"><text>Reset virtual machine</text></listitem>
+ <listitem id="stop"><text>Stop virtual machine (soft shutdown)</text></listitem>
+ <listitem id="quit"><text>Quit virtual machine (hard shutdown)</text></listitem>
+ <listitem id="display"><text>Display VNC viewer</text></listitem>
+ <listitem id="clone"><text>Make a clone</text></listitem>
+ <listitem id="snapshot"><text>Take a snapshot</text></listitem>
+ <listitem id="delete"><text>Delete virtual machine</text></listitem>
+ </item>
+ </box>
+ </item>
+
+ <item type="rect" background="false">
+ <normal color="#FFFFFF" alpha="0.5"/>
+ <pos anchor="c" x="75%" y="45%" width="box" height="box"/>
+ <box orientation="vertical" min-width="340" xpadding="30" ypadding="30" spacing="10">
+ <item type="label">
+ <pos anchor="n" x="50%"/>
+ <normal color="#000000" font="Sans 14"/>
+ <text>Session</text>
+ </item>
+ <item type="list" id="session">
+ <pos anchor="n" x="50%" height="500" width="400"/>
+ </item>
+ </box>
+ </item>
+</greeter>
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|