Bug #79

Bug linkSentPackets processi lanciati sull'host

Added by Mattia Milani over 1 year ago.

Status:NewStart date:02/14/2018
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-Spent time:-
Target version:-

Description

File: network_builder.py
Classe: PowerNet
Funzione: linkSentPackets ma probabilmente ne saranno affette anche altre

Bug: tentando di eseguire la funzione (con la l'espressione regolare corretta, vedere l'issue bug 78) si incontra il seguente errore:

Traceback (most recent call last):
File "nepa_test.py", line 184, in <module>
nepa_test()
File "nepa_test.py", line 178, in nepa_test
test.runTest() #Eseguo il test
File "./test_code/testErrorLinkCommand.py", line 100, in runTest
pacchetti = self.net.linkSentPackets(link_zero)
File "./network_builder.py", line 65, in linkSentPackets
pstr1 = link.intf1.node.cmdPrint("ifconfig " + link.intf1.name, " | grep -Eo 'TX packets [0-9]+' | cut -d' ' -f 3")
File "build/bdist.linux-x86_64/egg/mininet/node.py", line 363, in cmdPrint
File "build/bdist.linux-x86_64/egg/mininet/node.py", line 355, in cmd
File "build/bdist.linux-x86_64/egg/mininet/node.py", line 272, in sendCmd
AssertionError

l'errore probabilmente deriva da una gestione errata dei processi in esecuzione in quanto come si vedrà nella soluzione temporanea trovata lanciando gli stessi comandi attraverso la funzione execute presente nella classe MininetTest nel file test_generic in sequenza non si ottengono errori.

Soluzione temporanea inserita nel codice del test:

def getTxPackets(self, host, interface):
idps = randint(0,100)
logfile = self.prefix + host.name.split('_')[0] + \
"-" + str(idps) + "_txPacket.log"
cmd = "ifconfig " + interface + " | grep -Eo 'TX packets [0-9]+' | cut -d' ' -f 3"
info("Host: "+ host.defaultIntf().ip +" Comando: " + cmd + "\n")
params = {}
params['>'] = logfile
self.execute(host, True, cmd,
*reduce(lambda x, y: x + y, params.items()) )
self.wait(0.5)
infile = open(logfile, 'r')
firstLine = infile.readline()
return firstLine

   def linkSentPackets(self, link):
first = self.getTxPackets(link.intf1.node,link.intf1.name)
second = self.getTxPackets(link.intf1.node,link.intf1.name)
packets1 = int(first.split("\n")[0])
packets2 = int(second.split("\n")[0])
return packets1 + packets2

Tra i file allegati vi è uno screen del codice

Screenshot_20180214_164818.png (83.8 KB) Mattia Milani, 02/14/2018 03:49 PM

Also available in: Atom PDF