From 596074af62ebe33bcccfd910c7ca727ce4bbf409 Mon Sep 17 00:00:00 2001 From: Daniel Walton Date: Wed, 16 Aug 2017 20:22:59 +0000 Subject: [PATCH] vtysh: vtysh -f FOO should exit non-zero if it hits an error Signed-off-by: Daniel Walton Today if we hit an error while apply the contents of file FOO that error does not bubble up to a non-zero exit. --- tools/frr-reload.py | 18 +++++------------- vtysh/vtysh.c | 1 + 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/tools/frr-reload.py b/tools/frr-reload.py index 43496d4cbf..8556f0b46e 100755 --- a/tools/frr-reload.py +++ b/tools/frr-reload.py @@ -1162,19 +1162,11 @@ if __name__ == '__main__': for line in lines_to_configure: fh.write(line + '\n') - output = subprocess.check_output(['/usr/bin/vtysh', '-f', filename]) - - # exit non-zero if we see these errors - for x in ('BGP instance name and AS number mismatch', - 'BGP instance is already running', - '% not a local address'): - for line in output.splitlines(): - if x in line: - msg = "ERROR: %s" % x - log.error(msg) - print msg - reload_ok = False - + try: + subprocess.check_output(['/usr/bin/vtysh', '-f', filename]) + except subprocess.CalledProcessError as e: + log.warning("frr-reload.py failed due to\n%s" % e.output) + reload_ok = False os.unlink(filename) # Make these changes persistent diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index f971c171bc..f7bfd9e42e 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -752,6 +752,7 @@ int vtysh_config_from_file(struct vty *vty, FILE *fp) lineno, cmd_stat, vtysh_client[i].name, vty->buf); + retcode = cmd_stat; break; } } -- 2.39.5