mininet-sample/src/mpMininetBuilder.py

45 lines
1.0 KiB
Python
Raw Normal View History

from mininet.topo import Topo
from mininet.net import Mininet
from mininet.link import TCLink
from mininet.cli import CLI
from subprocess import Popen, PIPE
class MpMininetBuilder(Topo):
def __init__(self):
Topo.__init__( self )
self.net = None
def commandTo(self, who, cmd):
return who.cmd(cmd)
def notNSCommand(self, cmd):
p = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
if stderr:
return "Error"
return stdout
def startNetwork(self):
self.net = Mininet(topo=self,link=TCLink,autoStaticArp=True,autoSetMacs=True)
self.net.staticArp()
self.net.start()
def getCLI(self):
if self.net is None:
print("Can not get the CLI")
else:
CLI(self.net)
def getHost(self, who):
if self.net is None:
print("Network not available....")
raise Exception("Network not ready");
else:
return self.net.getNodeByName(who)
def stopNetwork(self):
if self.net is None:
print("Could not stop network... Nothing to stop)")
else:
self.net.stop()