diff options
author | Michael Janczyk | 2008-06-11 15:13:58 +0200 |
---|---|---|
committer | Michael Janczyk | 2008-06-11 15:13:58 +0200 |
commit | 0b0f0ae38ed5fe07a8182ddbc54856af315a0b4e (patch) | |
tree | 0f9cb109efa9a7e8187ccee981fd719612772aff /os-plugins/plugins | |
parent | fixed damaged patch (diff) | |
download | core-0b0f0ae38ed5fe07a8182ddbc54856af315a0b4e.tar.gz core-0b0f0ae38ed5fe07a8182ddbc54856af315a0b4e.tar.xz core-0b0f0ae38ed5fe07a8182ddbc54856af315a0b4e.zip |
First release of a xen plugin. Only a few diskless corrections inside. Works only with clone and an already installed xen. Karnel has to be chosen manually yet... a solution for runlevellinks in plugins has to be found.
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1873 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins/plugins')
-rw-r--r-- | os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm | 82 | ||||
-rw-r--r-- | os-plugins/plugins/xen/XX_xen.sh | 13 | ||||
-rw-r--r-- | os-plugins/plugins/xen/init-hooks/10-have-nw-modules/xen.sh | 28 |
3 files changed, 123 insertions, 0 deletions
diff --git a/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm b/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm new file mode 100644 index 00000000..4a8288c8 --- /dev/null +++ b/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm @@ -0,0 +1,82 @@ +# Copyright (c) 2007 - 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/ +# ----------------------------------------------------------------------------- +# xen.pm +# - implementation of the 'xen' plugin +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::xen; + +use strict; +use warnings; + +use base qw(OpenSLX::OSPlugin::Base); + +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub new +{ + my $class = shift; + + my $self = { + name => 'bootsplash', + }; + + return bless $self, $class; +} + +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + Configures Xen diskless boot, no installation yet. + End-of-Here + precedence => 10, + }; +} + +sub getAttrInfo +{ + my $self = shift; + + return { + 'xen::active' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'xen'-plugin be executed during boot? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + default => '1', + }, + }; +} + +sub suggestAdditionalKernelModules +{ + my $self = shift; + my $makeInitRamFSEngine = shift; + + my @suggestedModules; + + # Ubuntu needs vesafb and fbcon (which drags along some others) + if ($makeInitRamFSEngine->{'distro-name'} =~ m{^suse}i) { + push @suggestedModules, qw( bridge netloop ) + } + + return @suggestedModules; +} + +1; diff --git a/os-plugins/plugins/xen/XX_xen.sh b/os-plugins/plugins/xen/XX_xen.sh new file mode 100644 index 00000000..4f545bbd --- /dev/null +++ b/os-plugins/plugins/xen/XX_xen.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# +# stage3 part of 'xen' plugin - the runlevel script +# +mkdir -p /mnt/var/log/xen & +mkdir -p /mnt/var/run/xend & +mkdir -p /mnt/var/run/xenstored & +cd /mnt/etc/init.d/rc5.d +ln -s ../xendomains K08xendomains +ln -s ../xend K09xend +ln -s ../xend S13xend +ln -s ../xendomains S14xendomains +modprobe loop max_loop=64 diff --git a/os-plugins/plugins/xen/init-hooks/10-have-nw-modules/xen.sh b/os-plugins/plugins/xen/init-hooks/10-have-nw-modules/xen.sh new file mode 100644 index 00000000..3886c00d --- /dev/null +++ b/os-plugins/plugins/xen/init-hooks/10-have-nw-modules/xen.sh @@ -0,0 +1,28 @@ +# configure Xen bridge xenbr0 +xenbr_config () { + echo -e "Configuring Xen...\c" + modprobe ${MODPRV} netloop + local ipls + local vifnum="0" + local bridge="xenbr${vifnum}" + local netdev="eth${vifnum}" + local pdev="p${netdev}" + local vdev="veth${vifnum}" + local vif0="vif0.${vifnum}" + # fixme: that is the mac address of main ethernet device + local mac=`ip link show ${netdev} | grep 'link\/ether' | sed -e 's/.*ether \(..:..:..:..:..:..\).*/\1/'` + + brctl addbr ${bridge} + brctl stp ${bridge} off + brctl setfd ${bridge} 0 + brctl addif ${bridge} ${vif0} + for ipls in "${netdev} name ${pdev}" "${vdev} name ${netdev}" \ + "${pdev} down arp off" "${pdev} addr fe:ff:ff:ff:ff:ff" \ + "${netdev} addr ${mac} arp on" "${bridge} up" "${vif0} up" \ + "${pdev} up" "${netdev} up"; do + ip link set ${ipls} + done + brctl addif ${bridge} ${pdev} + echo " OK" + exit 0 +} |