2014-06-09 9 views
6

मिला है मुझे निम्नलिखित पायथन प्रोग्राम में टाइपरर मिल रहा है जहां कन्स्ट्रक्टर कहा जा रहा है। अगर मैं देरी तर्क को हटा देता हूं, तो मुझे "bw" के साथ एक ही त्रुटि मिलती है। मैं गलती का पता नहीं लगा सकता। कृपया मदद करे।टाइपरर: __ init __() को एक अप्रत्याशित कीवर्ड तर्क 'देरी'

मैं अजगर का उपयोग कर नेटवर्क टोपोलॉजी बनाने की कोशिश कर रहा हूं।

#!/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()) } 

मैं हो रही है त्रुटि ट्रेस है:

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' 
+0

कृपया वास्तविक पायथन ट्रेस पोस्ट करें। –

+0

त्रुटि ट्रेस जोड़ा गया है। – user3033194

+1

त्रुटि 'addLink' विधि में कहीं भी है, लेकिन यह आपके द्वारा चिपकाए गए कोड में नहीं है – yedpodtrzitko

उत्तर

0

mininet में या तो या मैं OpenVswitch संदेह एक वस्तु BW के साथ अपने linkopts में से एक भेजी जा रही है और कीवर्ड के रूप में बहस में देरी। हालांकि, वह ऑब्जेक्ट आपके द्वारा उपयोग किए जा रहे कीवर्ड पैरामीटर की अपेक्षा नहीं कर रहा है। शायद आपके पास मिनीनेट और ओपनव्सविच के बीच एक संस्करण मेल नहीं है? मैं वर्तमान उदाहरण में सूचीबद्ध बीडब्ल्यू और देरी देखता हूं लेकिन मेरे पास डोमेन अनुभव नहीं है कि वे पुराने संदर्भ हैं या आपके पास पुराने पुस्तकालय हैं।

दुर्भाग्य से आपके स्निपेट को आजमाने के लिए मेरे पास समय की तुलना में अधिक कॉन्फ़िगरेशन की आवश्यकता है। मैंने बस कोशिश की "ओपनव्सविच-कंट्रोलर पायथन-ओपनव्सविच" प्राप्त करें लेकिन मैं इसे नहीं चला सका।

15

लिंक प्रकार को टीसी के रूप में सेट करना याद रखें।

अपनी स्क्रिप्ट में यह निर्दिष्ट करें जिन्हें आप नीचे देख:

net = Mininet(topo=topo, link=TCLink) 

अपने अजगर स्क्रिप्ट में TCLink आयात करने के लिए याद रखें:

from mininet.link import TCLink 

, तो इसके बजाय, आप कमांड प्रॉम्प्ट से mininet कॉल करना चाहते हैं, फिर निम्नानुसार - लिंक पैरामीटर सेट करें:

sudo mn --custom custom.py --topo customtopo --link tc 
+0

आप दा आदमी! ;) @ जेफरसन – RageAgainstTheMachine

संबंधित मुद्दे

 संबंधित मुद्दे