summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk von Suchodoletz2009-03-06 02:20:47 +0100
committerDirk von Suchodoletz2009-03-06 02:20:47 +0100
commitd169bd55aee58222eed74d97f5b7e91dea57a4e0 (patch)
tree4f940fb358bcd487b158678b863e9a45964a4f7c
parentMore work on the qemukvm plugin ... (diff)
downloadcore-d169bd55aee58222eed74d97f5b7e91dea57a4e0.tar.gz
core-d169bd55aee58222eed74d97f5b7e91dea57a4e0.tar.xz
core-d169bd55aee58222eed74d97f5b7e91dea57a4e0.zip
More on qemukvm plugin: Fixes, network shutdown script, ...
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2687 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r--os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm2
-rw-r--r--os-plugins/plugins/qemukvm/XX_qemukvm.sh8
-rw-r--r--os-plugins/plugins/qemukvm/files/qemu-ifdown22
-rw-r--r--os-plugins/plugins/qemukvm/files/qemu-ifup10
-rw-r--r--os-plugins/plugins/qemukvm/files/run-virt.include1
5 files changed, 36 insertions, 7 deletions
diff --git a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm
index dc650293..fe276358 100644
--- a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm
+++ b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm
@@ -121,7 +121,7 @@ sub installationPhase
copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/run-virt.include",
"$self->{pluginRepositoryPath}/");
# Copy the later /etc/qemu-ifup
- copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/qemu-ifup",
+ copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/qemu-if*",
"$self->{pluginRepositoryPath}/");
return;
}
diff --git a/os-plugins/plugins/qemukvm/XX_qemukvm.sh b/os-plugins/plugins/qemukvm/XX_qemukvm.sh
index 81e2b0d3..40bd59ae 100644
--- a/os-plugins/plugins/qemukvm/XX_qemukvm.sh
+++ b/os-plugins/plugins/qemukvm/XX_qemukvm.sh
@@ -117,9 +117,13 @@ ${qemukvm_imagesrc}." nonfatal
# copy the /etc/qemu-ifup script and enable extended rights for running
# the emulator via sudo
- cp /mnt/opt/openslx/plugin-repo/qemukvm/qemu-ifup /mnt/etc/qemu-ifup
+ cp /mnt/opt/openslx/plugin-repo/qemukvm/qemu-if* /mnt/etc
chmod u+x /mnt/etc/qemu-ifup
- echo "ALL ALL=NOPASSWD: $fptoqemu" >>/mnt/etc/sudoers
+ for qemubin in qemu kvm ; do
+ qemu="$(binfinder ${qemubin})"
+ [ -n "${qemu}" ] && \
+ echo "ALL ALL=NOPASSWD: ${qemu}" >>/mnt/etc/sudoers
+ done
fi
else
[ $DEBUGLEVEL -gt 0 ] && echo " * Configuration of qemukvm plugin failed"
diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifdown b/os-plugins/plugins/qemukvm/files/qemu-ifdown
new file mode 100644
index 00000000..5c16e4b4
--- /dev/null
+++ b/os-plugins/plugins/qemukvm/files/qemu-ifdown
@@ -0,0 +1,22 @@
+#!/bin/sh
+# Copyright (c) 2009 - 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/
+# -----------------------------------------------------------------------------
+# qemu-ifup
+# - Script used for network cleanup of qemukvm in Stage4
+# -----------------------------------------------------------------------------
+
+# Clean up script
+killall udhcpd 2>/dev/null
+iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE 2>/dev/null
+
+# Produce a clean exit status
+exit 0
+
diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifup b/os-plugins/plugins/qemukvm/files/qemu-ifup
index b6b9337c..6f759135 100644
--- a/os-plugins/plugins/qemukvm/files/qemu-ifup
+++ b/os-plugins/plugins/qemukvm/files/qemu-ifup
@@ -25,21 +25,23 @@ dhcpdcmd="LD_LIBRARY_PATH=/opt/openslx/uclib-rootfs/lib\
case "$1" in
tap0)
# Adding the tap0 interface to the existing bridge configured in stage3
- eval $brctlcmd addif br0 tap0
+ eval ${brctlcmd} addif br0 tap0
;;
tap1)
# Configuring DHCP on host tap1 interface and enable IP masquerading
mkdir /var/lib/qemu
- sed "s,NWIF,tap1,;s,/misc,/qemu," /etc/opt/openslx/udhcpd.qemukvm \
+ sed "s,NWIF,tap1,;s,/misc/,/qemu/," /etc/opt/openslx/udhcpd.qemukvm \
>/var/lib/qemu/udhcpd.conf
- eval $dhcpdcmd /var/lib/qemu/udhcpd.conf
+ eval ${dhcpdcmd} /var/lib/qemu/udhcpd.conf
echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding
echo "1" >/proc/sys/net/ipv4/conf/tap1/forwarding
- iptables -t nat -A POSTROUTING -i tap1 -o br0 -j MASQUERADE
+ iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
;;
tap2)
:
;;
esac
+# Produce a clean exit status
+exit 0
diff --git a/os-plugins/plugins/qemukvm/files/run-virt.include b/os-plugins/plugins/qemukvm/files/run-virt.include
index 3e2b9490..484fcb6d 100644
--- a/os-plugins/plugins/qemukvm/files/run-virt.include
+++ b/os-plugins/plugins/qemukvm/files/run-virt.include
@@ -58,5 +58,6 @@ for i in kvm qemu-kvm qemu; do
[ -n $VIRTCMD ] && break
done
[ -n $VIRTCMD ] && { writelog "No qemu/kvm tool found."; exit 1; }
+VIRTCMD="sudo $VIRTCMD"
VIRTCMDOPTS="${VIRTCMDOPTS} -boot c -alt-grab ${diskfile}"