You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.9 KiB
64 lines
1.9 KiB
From fefb96f43fd6b6b76e79fda995b31e2c10884395 Mon Sep 17 00:00:00 2001 |
|
From: Harald Hoyer <harald@redhat.com> |
|
Date: Wed, 22 Jun 2016 13:21:56 +0200 |
|
Subject: [PATCH] network/parse-bond.sh: handle multiple bond interfaces |
|
|
|
--- |
|
modules.d/40network/parse-bond.sh | 25 +++++++------------------ |
|
1 file changed, 7 insertions(+), 18 deletions(-) |
|
|
|
diff --git a/modules.d/40network/parse-bond.sh b/modules.d/40network/parse-bond.sh |
|
index 25c51b89..80b3b077 100755 |
|
--- a/modules.d/40network/parse-bond.sh |
|
+++ b/modules.d/40network/parse-bond.sh |
|
@@ -10,14 +10,6 @@ |
|
# bond without parameters assumes bond=bond0:eth0,eth1:mode=balance-rr |
|
# |
|
|
|
-# return if bond already parsed |
|
-[ -n "$bondname" ] && return |
|
- |
|
-# Check if bond parameter is valid |
|
-if getarg bond= >/dev/null ; then |
|
- : |
|
-fi |
|
- |
|
# We translate list of slaves to space-separated here to mwke it easier to loop over them in ifup |
|
# Ditto for bonding options |
|
parsebond() { |
|
@@ -28,7 +20,6 @@ parsebond() { |
|
v=${v#*:} |
|
done |
|
|
|
- unset bondname bondslaves bondoptions |
|
case $# in |
|
0) bondname=bond0; bondslaves="eth0 eth1" ;; |
|
1) bondname=$1; bondslaves="eth0 eth1" ;; |
|
@@ -38,14 +29,13 @@ parsebond() { |
|
esac |
|
} |
|
|
|
-unset bondname bondslaves bondoptions |
|
- |
|
# Parse bond for bondname, bondslaves, bondmode and bondoptions |
|
-if getarg bond >/dev/null; then |
|
- # Read bond= parameters if they exist |
|
- bond="$(getarg bond=)" |
|
- if [ ! "$bond" = "bond" ]; then |
|
- parsebond "$(getarg bond=)" |
|
+for bond in $(getargs bond=); do |
|
+ unset bondname |
|
+ unset bondslaves |
|
+ unset bondoptions |
|
+ if [ "$bond" != "bond" ]; then |
|
+ parsebond "$bond" |
|
fi |
|
# Simple default bond |
|
if [ -z "$bondname" ]; then |
|
@@ -57,5 +47,4 @@ if getarg bond >/dev/null; then |
|
echo "bondname=$bondname" > /tmp/bond.${bondname}.info |
|
echo "bondslaves=\"$bondslaves\"" >> /tmp/bond.${bondname}.info |
|
echo "bondoptions=\"$bondoptions\"" >> /tmp/bond.${bondname}.info |
|
- return |
|
-fi |
|
+done
|
|
|