- # create link if everything is correct
- if (node1 is not None and isinstance(node1, OVSKernelSwitch)
- and node2 is not None and isinstance(node2, OVSKernelSwitch)):
- self.mnet.addLink(node1, node2) # TODO we need TCLinks with user defined performance here
- else:
- raise Exception(
- "one of the given nodes is not a Mininet switch or None")
+ # try to give containers a default IP
+ if isinstance( node1, Docker ):
+ if not "params1" in params:
+ params["params1"] = {}
+ if not "ip" in params["params1"]:
+ params["params1"]["ip"] = self.getNextIp()
+ if isinstance( node2, Docker ):
+ if not "params2" in params:
+ params["params2"] = {}
+ if not "ip" in params["params2"]:
+ params["params2"]["ip"] = self.getNextIp()
+
+ return Dockernet.addLink(self, node1, node2, **params) # TODO we need TCLinks with user defined performance here
+
+ def addDocker( self, label, **params ):
+ """
+ Wrapper for addDocker method to use custom container class.
+ """
+ return Dockernet.addDocker(self, label, cls=EmulatorCompute, **params)
+
+ def getAllContainers(self):
+ """
+ Returns a list with all containers within all data centers.
+ """
+ all_containers = []
+ for dc in self.dcs.itervalues():
+ all_containers += dc.listCompute()
+ return all_containers