Skip to content

Commit 1324ae6

Browse files
committed
Add build() method to simplify Topo() usage
1 parent 00803bc commit 1324ae6

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

mininet/topo.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,25 @@ def __getitem__( self, node ):
4848
class Topo(object):
4949
"Data center network representation for structured multi-trees."
5050

51-
def __init__(self, hopts=None, sopts=None, lopts=None):
52-
"""Topo object:
51+
def __init__(self, *args, **params):
52+
"""Topo object.
53+
Optional named parameters:
5354
hinfo: default host options
5455
sopts: default switch options
55-
lopts: default link options"""
56+
lopts: default link options
57+
calls build()"""
5658
self.g = MultiGraph()
5759
self.node_info = {}
5860
self.link_info = {} # (src, dst) tuples hash to EdgeInfo objects
59-
self.hopts = {} if hopts is None else hopts
60-
self.sopts = {} if sopts is None else sopts
61-
self.lopts = {} if lopts is None else lopts
61+
self.hopts = params.pop( 'hopts', {} )
62+
self.sopts = params.pop( 'sopts', {} )
63+
self.lopts = params.pop( 'lopts', {} )
6264
self.ports = {} # ports[src][dst] is port on src that connects to dst
65+
self.build( *args, **params )
66+
67+
def build( self, *args, **params ):
68+
"Override this method to build your topology."
69+
pass
6370

6471
def addNode(self, name, **opts):
6572
"""Add Node to graph.

0 commit comments

Comments
 (0)