diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-05-21 21:49:43 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2022-05-21 21:49:43 +0200 |
commit | dc678bdfa06e89b4ef46b7721b840e831f24ee59 (patch) | |
tree | a083ba6b65f6d1deade21b549ed4bacc5304e684 | |
parent | 06b72d9c2f479d77b2cf33ff71226e6b9fb9c068 (diff) | |
download | vyos-1x-dc678bdfa06e89b4ef46b7721b840e831f24ee59.tar.gz vyos-1x-dc678bdfa06e89b4ef46b7721b840e831f24ee59.zip |
flow-accounting: T4099: "source-address" must exist locally
-rwxr-xr-x | src/conf_mode/flow_accounting_conf.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/conf_mode/flow_accounting_conf.py b/src/conf_mode/flow_accounting_conf.py index 9fc7e204a..7750c1247 100755 --- a/src/conf_mode/flow_accounting_conf.py +++ b/src/conf_mode/flow_accounting_conf.py @@ -22,6 +22,7 @@ import ipaddress from ipaddress import ip_address +from vyos.base import Warning from vyos.config import Config from vyos.configdict import dict_merge from vyos.ifconfig import Section @@ -175,7 +176,7 @@ def verify(flow_config): if interface not in Section.interfaces(): # Changed from error to warning to allow adding dynamic interfaces # and interface templates - print(f'Warning: Interface "{interface}" is not presented in the system') + Warning(f'Interface "{interface}" is not presented in the system') # check sFlow configuration if 'sflow' in flow_config: @@ -203,7 +204,13 @@ def verify(flow_config): if 'agent_address' in flow_config['sflow']: tmp = flow_config['sflow']['agent_address'] if not is_addr_assigned(tmp): - print(f'Warning: Configured "sflow agent-address {tmp}" does not exist in the system!') + raise ConfigError(f'Configured "sflow agent-address {tmp}" does not exist in the system!') + + # Check if configured netflow source-address exist in the system + if 'source_address' in flow_config['sflow']: + if not is_addr_assigned(flow_config['sflow']['source_address']): + tmp = flow_config['sflow']['source_address'] + raise ConfigError(f'Configured "sflow source-address {tmp}" does not exist on the system!') # check NetFlow configuration if 'netflow' in flow_config: @@ -215,7 +222,7 @@ def verify(flow_config): if 'source_address' in flow_config['netflow']: if not is_addr_assigned(flow_config['netflow']['source_address']): tmp = flow_config['netflow']['source_address'] - print(f'Warning: Configured "netflow source-address {tmp}" does not exist on the system!') + raise ConfigError(f'Configured "netflow source-address {tmp}" does not exist on the system!') # Check if engine-id compatible with selected protocol version if 'engine_id' in flow_config['netflow']: |