]> git.puffer.fish Git - matthieu/frr.git/commitdiff
topogen: treat some corner cases on vtysh failure
authorRafael Zalamena <rzalamena@gmail.com>
Tue, 22 Aug 2017 22:25:15 +0000 (19:25 -0300)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:12 +0000 (20:22 -0500)
Don't throw unneeded tracebacks when 'show version' doesn't show us what
we expect, instead gracefully fail.

tests/topotests/lib/topogen.py

index 1b8fcd7cfc1dfd94779d79c6acc7879d046f13ca..f827702fc55772f1acae5c1792ff007e8d4908f4 100644 (file)
@@ -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