diff options
author | Michael Larson <slioch@slioch.vyatta.com> | 2010-08-26 10:38:18 -0700 |
---|---|---|
committer | Michael Larson <slioch@slioch.vyatta.com> | 2010-08-26 10:38:18 -0700 |
commit | 55a1515e13b1eb22725ec619421aa193e7b662ce (patch) | |
tree | b9e9ea3bbb6381b4731fc6e082044ddfa3ff33b5 | |
parent | 9f2bc238029dc83aabd1df1163b3c7810d77f4be (diff) | |
download | vyatta-wanloadbalance-55a1515e13b1eb22725ec619421aa193e7b662ce.tar.gz vyatta-wanloadbalance-55a1515e13b1eb22725ec619421aa193e7b662ce.zip |
fix for bug 5998.
new warnings are generated for the following conditions
exclude rule that has an outbound interface defined
rule with no outbound interfaces defined (and is not an exclude rule)
-rw-r--r-- | scripts/vyatta-wanloadbalance.pl | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/scripts/vyatta-wanloadbalance.pl b/scripts/vyatta-wanloadbalance.pl index f6e8809..b71860d 100644 --- a/scripts/vyatta-wanloadbalance.pl +++ b/scripts/vyatta-wanloadbalance.pl @@ -68,7 +68,7 @@ sub write_health { $valid = "true"; } else { - print "nexthop must be specified\n"; + print "ERROR: nexthop must be specified\n"; exit 1; } @@ -107,7 +107,7 @@ sub write_health { print FILE_LCK "}\n\n"; if ($valid eq "false") { - print "A valid WAN load-balance configuration requires an interface with a nexthop\n"; + print "WARNING: A valid WAN load-balance configuration requires an interface with a nexthop\n"; } return $valid; } @@ -115,7 +115,7 @@ sub write_health { sub write_rules { my $config = new Vyatta::Config; - my $valid = "false"; + my $outbound_defined = "false"; $config->setLevel('load-balancing wan rule'); my @rules = $config->listNodes(); @@ -124,10 +124,12 @@ sub write_rules { foreach my $rule (@rules) { print FILE_LCK "rule " . $rule . " {\n"; + my $exclude = "false"; + $config->setLevel('load-balancing wan rule'); if ($config->exists("$rule exclude")) { - $valid = "true"; + $exclude = "true"; print FILE_LCK "\texclude\n"; } @@ -140,12 +142,12 @@ sub write_rules { } if ($config->exists("$rule failover") && $config->exists("$rule exclude")) { - print "failover cannot be configured with exclude\n"; + print "ERROR: failover cannot be configured with exclude\n"; exit 1; } if ($config->exists("$rule limit") && $config->exists("$rule exclude")) { - print "limit cannot be used with exclude\n"; + print "ERROR: limit cannot be used with exclude\n"; exit 1; } @@ -257,20 +259,29 @@ sub write_rules { print FILE_LCK "\tinbound-interface " . $inbound . "\n" } else { - print "inbound-interface must be specified\n"; + print "ERROR: inbound-interface must be specified\n"; exit 1; } #interface $config->setLevel("load-balancing wan rule $rule interface"); my @eths = $config->listNodes(); - + + if ($#eths < 0 && $exclude eq "false") { + print "WARNING: rule $rule will be inactive because no output interfaces have been defined for this rule\n"; + } + elsif ($#eths >= 0 && $exclude eq "true") { + print "WARNING: interfaces (outbound) are not used when exclude has been defined for rule $rule\n"; + } + foreach my $ethNode (@eths) { if ($inbound eq $ethNode) { print "WARNING: inbound interface is the same as the outbound interface\n"; } - $valid = "true"; + if ($exclude ne "true") { + $outbound_defined = "true"; + } print FILE_LCK "\tinterface " . $ethNode . " {\n"; @@ -283,12 +294,12 @@ sub write_rules { print FILE_LCK "}\n"; } - if ($valid eq "false") { - print "At least one rule with interface must be defined for WAN load balancing to be active\n"; + if ($outbound_defined eq "false") { + print "WARNING: At least one rule with an (outbound) interface must be defined for WAN load balancing to be active\n"; #allow this configuration, just generate the warning return "true"; } - return $valid; + return $outbound_defined; } my $nexthop; |