import docker
from emuvim.dcemulator.net import DCNetwork
from mininet.clean import cleanup
+from mininet.node import Controller
class SimpleTestTopology(unittest.TestCase):
"""
def createNet(
self,
nswitches=0, ndatacenter=0, nhosts=0, ndockers=0,
- autolinkswitches=False):
+ autolinkswitches=False, controller=Controller, **kwargs):
"""
Creates a Mininet instance and automatically adds some
nodes to it.
+
+ Attention, we should always use Mininet's default controller
+ for our tests. Only use other controllers if you want to test
+ specific controller functionality.
"""
- self.net = net = DCNetwork()
+ self.net = DCNetwork(controller=controller, **kwargs)
# add some switches
- for i in range(0, nswitches):
+ # start from s1 because ovs does not like to have dpid = 0
+ # and switch name-number is being used by mininet to set the dpid
+ for i in range(1, nswitches+1):
self.s.append(self.net.addSwitch('s%d' % i))
# if specified, chain all switches
if autolinkswitches:
self.h.append(self.net.addHost('h%d' % i))
# add some dockers
for i in range(0, ndockers):
- self.d.append(self.net.addDocker('d%d' % i, dimage="ubuntu"))
+ self.d.append(self.net.addDocker('d%d' % i, dimage="ubuntu:trusty"))
def startNet(self):
self.net.start()
base_url='unix://var/run/docker.sock')
return self.docker_cli
- def getDockernetContainers(self):
+ def getContainernetContainers(self):
"""
- List the containers managed by dockernet
+ List the containers managed by containernet
"""
- return self.getDockerCli().containers(filters={"label": "com.dockernet"})
+ return self.getDockerCli().containers(filters={"label": "com.containernet"})
@staticmethod
def setUp():
# make sure that all pending docker containers are killed
with open(os.devnull, 'w') as devnull:
subprocess.call(
- "sudo docker rm -f $(sudo docker ps --filter 'label=com.dockernet' -a -q)",
+ "sudo docker rm -f $(sudo docker ps --filter 'label=com.containernet' -a -q)",
stdout=devnull,
stderr=devnull,
shell=True)
\ No newline at end of file