@@ -48,18 +48,25 @@ def __getitem__( self, node ):
4848class 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