diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-10-06 20:47:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-06 20:47:11 +0200 |
commit | 975eaa55f85a2855f5551447c9f120cca8815351 (patch) | |
tree | 14b27a3393002820ef0da4a2c81462c0f929bdf1 /src/validators/bgp-regular-community | |
parent | 50f26c54d095420907a1d31168c162ad3c27ee36 (diff) | |
parent | 507f6ac423403b57f375309b483c6ccc1c83ad06 (diff) | |
download | vyos-1x-975eaa55f85a2855f5551447c9f120cca8815351.tar.gz vyos-1x-975eaa55f85a2855f5551447c9f120cca8815351.zip |
Merge pull request #1567 from aapostoliuk/T4660-sagitta
policy: T4660: Changed CLI syntax in route-map set community
Diffstat (limited to 'src/validators/bgp-regular-community')
-rwxr-xr-x | src/validators/bgp-regular-community | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/validators/bgp-regular-community b/src/validators/bgp-regular-community new file mode 100755 index 000000000..d43a71eae --- /dev/null +++ b/src/validators/bgp-regular-community @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +# Copyright 2019-2022 VyOS maintainers and contributors <maintainers@vyos.io> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library. If not, see <http://www.gnu.org/licenses/>. + +from argparse import ArgumentParser +from sys import exit + +from vyos.template import is_ipv4 + +COMM_MAX_2_OCTET: int = 65535 + +if __name__ == '__main__': + # add an argument with community + parser: ArgumentParser = ArgumentParser() + parser.add_argument('community', type=str) + args = parser.parse_args() + community: str = args.community + if community.count(':') != 1: + print("Invalid community format") + exit(1) + try: + # try to extract community parts from an argument + comm_left: int = int(community.split(':')[0]) + comm_right: int = int(community.split(':')[1]) + + # check compatibilities of left and right parts + if 0 <= comm_left <= COMM_MAX_2_OCTET \ + and 0 <= comm_right <= COMM_MAX_2_OCTET: + exit(0) + except Exception: + # fail if something was wrong + print("Invalid community format") + exit(1) + + # fail if none of validators catched the value + print("Invalid community format") + exit(1)
\ No newline at end of file |