blob: d7a878eafc84b3540bab5976678b62e14af0560b [file] [log] [blame]
kelvin-onlabd9e23de2015-08-06 10:34:44 -07001"""
2 These functions can be used for topology comparisons
3"""
4
5import time
6import os
7import json
8
YPZhang81a7d4e2016-04-18 13:10:17 -07009def sendArpPackage( main, hostList ):
10 import json
YPZhang26a139e2016-04-25 14:01:55 -070011 import time
YPZhang81a7d4e2016-04-18 13:10:17 -070012 """
13 send arping package from host
14 return the total hosts number from Onos
15 """
YPZhangacaaf422016-07-26 09:34:03 -070016 main.log.info( "Sending Arping package..." )
YPZhang81a7d4e2016-04-18 13:10:17 -070017 if isinstance(hostList, list):
YPZhang81a7d4e2016-04-18 13:10:17 -070018 for h in hostList:
YPZhang26a139e2016-04-25 14:01:55 -070019 main.Mininet1.arping( srcHost=h, dstHost="10.0.0.1", output=main.FALSE, noResult=True )
YPZhang0f874862016-04-27 11:14:10 -070020 time.sleep(0.5)
YPZhang81a7d4e2016-04-18 13:10:17 -070021 else:
YPZhangacaaf422016-07-26 09:34:03 -070022 main.Mininet1.arping( srcHost=hostList, dstHost="10.0.0.1", output=main.FALSE, noResult=True )
23 try:
24 summaryStr = ""
25 summaryStr = json.loads( main.CLIs[0].summary().encode() )
26 hostNum = summaryStr.get( 'hosts' )
27
28 except (TypeError, ValueError):
29 main.log.exception( " Object not as expected: {!r}".format( summaryStr) )
30 return -1
31 except Exception:
32 main.log.exception( self.name + ": Uncaught exception!" )
33 return -1
34
YPZhang81a7d4e2016-04-18 13:10:17 -070035 return hostNum