From b3b1b1d16cd52d636c1575db0fc2af77936f7d53 Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Tue, 22 Aug 2017 19:25:15 -0300 Subject: [PATCH] topogen: treat some corner cases on vtysh failure Don't throw unneeded tracebacks when 'show version' doesn't show us what we expect, instead gracefully fail. --- tests/topotests/lib/topogen.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/topotests/lib/topogen.py b/tests/topotests/lib/topogen.py index 1b8fcd7cfc..f827702fc5 100644 --- a/tests/topotests/lib/topogen.py +++ b/tests/topotests/lib/topogen.py @@ -714,10 +714,16 @@ class TopoRouter(TopoGear): "Get equipment information from 'show version'." output = self.vtysh_cmd('show version').split('\n')[0] columns = topotest.normalize_text(output).split(' ') - return { - 'type': columns[0], - 'version': columns[1], - } + try: + return { + 'type': columns[0], + 'version': columns[1], + } + except IndexError: + return { + 'type': None, + 'version': None, + } def has_version(self, cmpop, version): """ @@ -732,6 +738,9 @@ class TopoRouter(TopoGear): Usage example: router.has_version('>', '1.0') """ rversion = self.version_info()['version'] + if rversion is None: + return False + result = topotest.version_cmp(rversion, version) if cmpop == '>=': return result >= 0 -- 2.39.5