]> git.puffer.fish Git - matthieu/frr.git/commitdiff
topogen: implement __str__ for TopoGear objects
authorRafael Zalamena <rzalamena@gmail.com>
Thu, 22 Jun 2017 20:51:32 +0000 (17:51 -0300)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:11 +0000 (20:22 -0500)
Print TopoGear name, links and type (currently TopoRouter and Switch
don't have any other useful attributes).

tests/topotests/lib/topogen.py

index e87b6bd0a7c93521bd4644495921b9fe92845683..19c36ed0d754d091f610fefe05b496d09c9e4f76 100644 (file)
@@ -224,6 +224,16 @@ class TopoGear(object):
         self.links = {}
         self.linkn = 0
 
+    def __str__(self):
+        links = ''
+        for myif, dest in self.links.iteritems():
+            _, destif = dest
+            if links != '':
+                links += ','
+            links += '"{}"<->"{}"'.format(myif, destif)
+
+        return 'TopoGear<name="{}",links=[{}]>'.format(self.name, links)
+
     def run(self, command):
         """
         Runs the provided command string in the router and returns a string
@@ -307,7 +317,7 @@ class TopoRouter(TopoGear):
     ]
 
     # Router Daemon enumeration definition.
-    RD_ZEBRA = 1,
+    RD_ZEBRA = 1
     RD_RIP = 2
     RD_RIPNG = 3
     RD_OSPF = 4
@@ -346,6 +356,11 @@ class TopoRouter(TopoGear):
             params['privateDirs'] = self.PRIVATE_DIRS
         self.tgen.topo.addNode(self.name, cls=self.cls, **params)
 
+    def __str__(self):
+        gear = super(TopoRouter, self).__str__()
+        gear += ' TopoRouter<>'
+        return gear
+
     def load_config(self, daemon, source=None):
         """
         Loads daemon configuration from the specified source
@@ -442,3 +457,8 @@ class TopoSwitch(TopoGear):
         self.name = name
         self.cls = cls
         self.tgen.topo.addSwitch(name, cls=self.cls)
+
+    def __str__(self):
+        gear = super(TopoSwitch, self).__str__()
+        gear += ' TopoSwitch<>'
+        return gear