summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorBill Peck <bpeck@redhat.com>2013-01-22 14:29:43 -0500
committerBill Peck <bpeck@redhat.com>2013-01-22 14:29:43 -0500
commit73c90a7447b383af85bb1893976f766455894b46 (patch)
treeb3bc4d13efb45dcef6d8755e1888104a59182db2 /kernel
parente80b82d10a95ab81e1a4c39476a62fce8d10365e (diff)
downloadtests-73c90a7447b383af85bb1893976f766455894b46.tar.gz
tests-73c90a7447b383af85bb1893976f766455894b46.tar.xz
tests-73c90a7447b383af85bb1893976f766455894b46.zip
Update to support multiple bridges and fix find_next_slot
Diffstat (limited to 'kernel')
-rwxr-xr-xkernel/networking/openvswitch/libvirt/add_interface/runtest.sh40
1 files changed, 17 insertions, 23 deletions
diff --git a/kernel/networking/openvswitch/libvirt/add_interface/runtest.sh b/kernel/networking/openvswitch/libvirt/add_interface/runtest.sh
index b9a14d3..c724acf 100755
--- a/kernel/networking/openvswitch/libvirt/add_interface/runtest.sh
+++ b/kernel/networking/openvswitch/libvirt/add_interface/runtest.sh
@@ -35,42 +35,36 @@ rpm -q $PACKAGE || fail "$PACKAGE not installed"
find_free_slot()
{
- # FIXME: We should parse the guest xml and find the next available slot
- echo '0x06'
+ local guest=$1
+ slot=$(cat $guest | awk '/<address/ { print }' | sed -e "s/.*slot='0x\([^']*\)'.*/\1/" | sort | tail -n 1 | tr '[:lower:]' '[:upper:]')
+ printf "0x%02x\n" $(($(echo "ibase=16; $slot" | bc) +1 ))
}
add_interface()
{
local guest=$1
local switch=$2
- local slot=$(find_free_slot)
- sed -ie "/<\/interface>/ a \<interface type='bridge'>\n\<source bridge='$switch'\/>\n\<virtualport type='openvswitch'\/>\n\<model type='virtio'\/>\n\<address type='pci' domain='0x0000' bus='0x00' slot='$slot' function='0x0'\/>\n\<\/interface>" $guest
- virsh define --file $guest
+ local slot=$(find_free_slot $guest)
+ sed -ie "/<\/interface>/ a \<interface type='bridge'>\n\<source bridge='$switch'\/>\n\<virtualport type='openvswitch'\/>\n\<model type='virtio'\/>\n\<address type='pci' domain='0x0000' bus='0x00' slot='0x$slot' function='0x0'\/>\n\<\/interface>" $guest
return $?
}
-add_vlan()
+add_tag()
{
local guest=$1
local switch=$2
- local vlan=$(echo $3| sed -e 's/vlan//')
- sed -ie "/<source bridge='$switch'\/>/ a \<vlan>\n<tag id='$vlan'\/>\n<\/vlan>" $guest
- virsh define --file $guest
+ local tag=$3
+ sed -ie "/<source bridge='$switch'\/>/ a \<vlan>\n<tag id='$tag'\/>\n<\/vlan>" $guest
return $?
}
-set | grep -i vlan
-
-for switch in $SWITCHES; do
- if [ -n "VLANS_$switch" ]; then
- for vlan in $(eval echo \$VLANS_$switch); do
- for guest in $(eval echo \$$vlan); do
- add_interface /etc/libvirt/qemu/${guest}.xml $switch && report_result $TEST/$guest/$switch PASS 0 || report_result $TEST/$guest/$switch FAIL 1
- add_vlan /etc/libvirt/qemu/${guest}.xml $switch $vlan && report_result $TEST/$guest/$vlan PASS 0 || report_result $TEST/$guest/$vlan FAIL 1
- done
- done
- fi
- for guest in $(eval echo \$$switch); do
- add_interface /etc/libvirt/qemu/${guest}.xml $switch && report_result $TEST/$guest/$switch PASS 0 || report_result $TEST/$guest/$switch FAIL 1
- done
+for guest in $GUESTS; do
+ for config in $(eval echo \$$guest); do
+ switch=$(echo $config| sed -e 's/.*switch=\([^\;]*\).*/\1/')
+ tag=$(echo $config| sed -e 's/.*tag=\([^\;]*\).*/\1/')
+ add_interface /etc/libvirt/qemu/${guest}.xml $switch
+ if [ -n "$tag" ];then
+ add_tag /etc/libvirt/qemu/${guest}.xml $switch $tag
+ fi
+ virsh define --file /etc/libvirt/qemu/${guest}.xml && report_result $TEST/$guest/$config PASS 0 || report_result $TEST/$guest/$config FAIL 1
done