c649d77cdd379822d9c48918b498b2633fb2d4f0
1 # We need a properly installed Dockernet
2 from mininet
.net
import Mininet
3 from mininet
.node
import Controller
, Docker
, OVSSwitch
4 from mininet
.link
import *
5 from mininet
.cli
import CLI
12 class RemoteMininetNetwork(object):
15 mininet
.log
.setLogLevel( 'debug' )
16 self
.net
= Mininet( controller
=Controller
)
17 self
.net
.addController( 'c0' )
28 except Exception as e
:
32 def addHost(self
, name
, cls
=None, **params
):
33 return str(self
.net
.addHost(name
, cls
=cls
, **params
))
35 def addDocker(self
, name
, **params
):
36 return str(self
.net
.addDocker(name
, **params
))
38 def addSwitch(self
, name
, **params
):
39 # we have to use OVSSwitch to be able to do link attachments
40 # at runtime (switch.attach) method
41 return str(self
.net
.addSwitch(name
, cls
=OVSSwitch
, **params
))
43 def addLink(self
, node1
, node2
, port1
=None, port2
=None,
45 return str(self
.net
.addLink(node1
, node2
,
46 port1
, port2
, cls
=cls
, **params
))
48 def removeHost(self
, name
, **params
):
49 return self
.net
.removeHost(name
, **params
)
51 def removeLink(self
, link
=None, node1
=None, node2
=None):
52 n1
, n2
= self
.net
.get(node1
), self
.net
.get(node2
)
53 return self
.net
.removeLink(node1
=n1
, node2
=n2
)
57 daemon
= Pyro4
.Daemon()
59 # we need a PyroNS instance to be running: pyro4-ns (in new terminal)
61 uri
= daemon
.register(RemoteMininetNetwork())
62 # map object URI to a nice name
63 ns
.register("remote.mininet", uri
)
65 logging
.info("Server URI is: %s", uri
)