Ich erhalte einen TypeError im folgenden Python-Programm, in dem der Konstruktor aufgerufen wird. Wenn ich das Verzögerungsargument entferne, bekomme ich den gleichen Fehler mit "bw". Ich kann den Fehler nicht verstehen. Bitte helfen Sie.TypeError: __ init __() hat ein unerwartetes Schlüsselwortargument 'delay' erhalten
Ich versuche, eine Netzwerk-Topologie mit Python zu erstellen.
#!/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.util import irange,dumpNodeConnections
from mininet.log import setLogLevel
class CustomTopo(Topo):
def __init__(self, linkopts1, linkopts2, linkopts3, fanout=2, **opts):
# Initialize topology and default options
Topo.__init__(self, **opts)
# Add your logic here ...
switch=self.addSwitch('c1')
self.linkopts1=linkopts1
self.linkopts2=linkopts2
self.linkopts3=linkopts3
self.fanout=fanout
n=0
for i in irange(1,fanout):
s=self.addSwitch('a%s' % i)
self.addLink(switch,s,**linkopts1)
if i==1:
n=0
else:
n=1
for j in irange(1,fanout):
if n==0:
sw=self.addSwitch('e%s' % j) #To generate labels e1, e2, e3 and e4:
else: #if n=0, edge switches e1 and e2 are added to a1
sw=self.addSwitch('e%s' % (j+2)) #if n=1, edge switched e3 and e4 are added to a2
self.addLink(s,sw,**linkopts2)
for k in irange(1,fanout):
if ((j==1)&(n==0)):
host=self.addHost('h%s' % k) #For edge switch e1, j=1,n=0. End-hosts are h1 and h2.
elif ((j==2)&(n==0)):
host=self.addHost('h%s' % (k+2)) #For edge switch e2, j=2,n=0. End-hosts are h3 and h4.
elif ((j==1)&(n==1)):
host=self.addHost('h%s' % (k+4)) #For edge switch e3, j=1,n=1. End-hosts are h5 and h6.
elif ((j==2)&(n==1)):
host=self.addHost('h%s' % (k+6)) #For edge switch e4, j=2,n=1. End-hosts are h7 and h8.
self.addLink(sw,host,**linkopts3)
def treeTest():
linkopts1=dict(bw=10, delay='5ms')
linkopts2=dict(bw=10, delay='5ms')
linkopts3=dict(bw=10, delay='5ms')
topo=CustomTopo(linkopts1,linkopts2,linkopts3,fanout=2)
net=Mininet(topo)
net.start()
print "Dumping node connections"
dumpNodeConnections(net.hosts)
print "Testing network connectivity"
net.pingAll()
net.stop()
if __name__=='__main__':
setLogLevel('info')
treeTest()
topos = { 'custom': (lambda: CustomTopo()) }
Die Fehler Spur Ich erhalte ist:
Traceback (most recent call last):
File "CustomTopo.py", line 70, in <module>
treeTest()
File "CustomTopo.py", line 60, in treeTest
net=Mininet(topo)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 164, in __init__
self.build()
File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 357, in build
self.buildFromTopo(self.topo)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 344, in buildFromTopo
self.addLink(src, dst, srcPort, dstPort, **params)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 287, in addLink
return cls(node1, node2, **defaults)
TypeError: __init__() got an unexpected keyword argument 'delay'
Bitte posten Sie die tatsächliche Python-Ablaufverfolgung. –
Der Fehler Trace wurde hinzugefügt. – user3033194
Der Fehler ist irgendwo in der Methode 'addLink', aber es ist nicht in den Code eingefügt – yedpodtrzitko