diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-06-15 11:34:44 -0700 |
---|---|---|
committer | Stephen Hemminger <shemminger@lenny.localdomain> | 2009-10-01 13:51:20 -0700 |
commit | 83aef96b5eefe8c851f3cac7492b71eed3afe51b (patch) | |
tree | 2c56d098f36f4f2c711d2c9a7065a35cdc7f360b /scripts | |
parent | 78396db2d9b7b7a9f05fb2a27616cf37660b14d7 (diff) | |
download | vyatta-cfg-qos-83aef96b5eefe8c851f3cac7492b71eed3afe51b.tar.gz vyatta-cfg-qos-83aef96b5eefe8c851f3cac7492b71eed3afe51b.zip |
Fix update (apply-policy) at end
The $VAR(.) is not set on end node, so have to go hunting
for policy type.
Related to Bug 4545
(cherry picked from commit 39712bfaf390a4435218a14308cc6efa1a2d39b8)
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/vyatta-qos.pl | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/scripts/vyatta-qos.pl b/scripts/vyatta-qos.pl index e0a1b0f..2576af1 100755 --- a/scripts/vyatta-qos.pl +++ b/scripts/vyatta-qos.pl @@ -228,17 +228,20 @@ sub create_policy { # Configuration changed, reapply to all interfaces. sub apply_policy { - my ( $policy, $name ) = @_; - my @usedby = interfaces_using($name); - - if (@usedby) { - foreach my $args (@usedby) { - update_interface( @$args ); + while (my $name = shift) { + my @usedby = interfaces_using($name); + if (@usedby) { + foreach my $args (@usedby) { + update_interface( @$args ); + } + } else { + # Recheck the policy, might have new errors. + my $policy = find_policy($name); + die "Unknown policy name $name\n" unless $policy; + + my $shaper = make_policy( $policy, $name ); + exit 1 unless $shaper; } - } else { - # Recheck the policy, might have new errors. - my $shaper = make_policy( $policy, $name ); - exit 1 unless $shaper; } } @@ -272,7 +275,7 @@ GetOptions( "list-policy=s" => \@listPolicy, "delete-policy=s" => \@deletePolicy, "create-policy=s{2}" => \@createPolicy, - "apply-policy=s{2}" => \@applyPolicy, + "apply-policy=s" => \@applyPolicy, ) or usage(); delete_interface(@deleteInterface) if ( $#deleteInterface == 1 ); |