Set batch=False in OVSSwitch for low-level API
If you try to use the low-level API, you are probably not going to call batchStartup()! So, we set batch=False by default. This means that buildFromTopo() needs to set it to True, so we add a bit of irritatingly complex machinery to allow this to happen. The good fallout of this is that now customConstructor() returns a real subclass, not simply a constructor function! We also detect errors where people are incorrectly attempting to give parameters to a lambda function - since none of our lambdas accept parameters!! Note that this is a bit like functools.partial for classes - it would be nice if functools had a true subclassing function.
This commit is contained in:
+6
-1
@@ -414,7 +414,12 @@ class Mininet( object ):
|
||||
|
||||
info( '\n*** Adding switches:\n' )
|
||||
for switchName in topo.switches():
|
||||
self.addSwitch( switchName, **topo.nodeInfo( switchName) )
|
||||
# A bit ugly: add batch parameter if appropriate
|
||||
params = topo.nodeInfo( switchName)
|
||||
cls = params.get( 'cls', self.switch )
|
||||
if hasattr( cls, 'batchStartup' ):
|
||||
params.setdefault( 'batch', True )
|
||||
self.addSwitch( switchName, **params )
|
||||
info( switchName + ' ' )
|
||||
|
||||
info( '\n*** Adding links:\n' )
|
||||
|
||||
Reference in New Issue
Block a user