diff options
author | Daniil Baturin <daniil@vyos.io> | 2020-06-25 09:22:46 +0300 |
---|---|---|
committer | Daniil Baturin <daniil@vyos.io> | 2020-06-25 09:22:46 +0300 |
commit | 9fc8158f98ba7154da9867d9a28f00e39f76d0e0 (patch) | |
tree | 0dcb75891ee511c3c5eceb4a9e0f120849d9b3f4 | |
parent | 39174c079ab5ed824c694b92954b506ffc3dab17 (diff) | |
download | vyos-1x-9fc8158f98ba7154da9867d9a28f00e39f76d0e0.tar.gz vyos-1x-9fc8158f98ba7154da9867d9a28f00e39f76d0e0.zip |
T2487: add an exception for the case when VRRP stats aren't available.
-rw-r--r-- | python/vyos/ifconfig/vrrp.py | 5 | ||||
-rwxr-xr-x | src/op_mode/vrrp.py | 22 |
2 files changed, 18 insertions, 9 deletions
diff --git a/python/vyos/ifconfig/vrrp.py b/python/vyos/ifconfig/vrrp.py index a872725b2..5e6387881 100644 --- a/python/vyos/ifconfig/vrrp.py +++ b/python/vyos/ifconfig/vrrp.py @@ -28,6 +28,9 @@ from vyos import util class VRRPError(Exception): pass +class VRRPNoData(VRRPError): + pass + class VRRP(object): _vrrp_prefix = '00:00:5E:00:01:' location = { @@ -96,6 +99,8 @@ class VRRP(object): # shoud look for file size change ? sleep(0.2) return util.read_file(fname) + except FileNotFoundError: + raise VRRPNoData("VRRP data is not available (process not running or no active groups)") except Exception: name = cls._name[what] raise VRRPError(f'VRRP {name} is not available') diff --git a/src/op_mode/vrrp.py b/src/op_mode/vrrp.py index e024d7f63..2c1db20bf 100755 --- a/src/op_mode/vrrp.py +++ b/src/op_mode/vrrp.py @@ -24,7 +24,7 @@ import tabulate import vyos.util from vyos.ifconfig.vrrp import VRRP -from vyos.ifconfig.vrrp import VRRPError +from vyos.ifconfig.vrrp import VRRPError, VRRPNoData parser = argparse.ArgumentParser() @@ -40,12 +40,16 @@ if not VRRP.is_running(): print('VRRP is not running') sys.exit(0) -if args.summary: - print(VRRP.format(VRRP.collect('json'))) -elif args.statistics: - print(VRRP.collect('stats')) -elif args.data: - print(VRRP.collect('state')) -else: - parser.print_help() +try: + if args.summary: + print(VRRP.format(VRRP.collect('json'))) + elif args.statistics: + print(VRRP.collect('stats')) + elif args.data: + print(VRRP.collect('state')) + else: + parser.print_help() + sys.exit(1) +except VRRPNoData as e: + print(e) sys.exit(1) |