Update and rename MantenerFIFO to MantenerFIFO.md
[vsorcdistro/.git] / mininet / examples / popenpoll.py
1 #!/usr/bin/python
2
3 "Monitor multiple hosts using popen()/pmonitor()"
4
5 from mininet.net import Mininet
6 from mininet.topo import SingleSwitchTopo
7 from mininet.util import pmonitor
8 from mininet.log import setLogLevel, info
9
10 from time import time
11 from signal import SIGINT
12
13 def pmonitorTest( N=3, seconds=10 ):
14     "Run pings and monitor multiple hosts using pmonitor"
15     topo = SingleSwitchTopo( N )
16     net = Mininet( topo )
17     net.start()
18     hosts = net.hosts
19     info( "Starting test...\n" )
20     server = hosts[ 0 ]
21     popens = {}
22     for h in hosts:
23         popens[ h ] = h.popen('ping', server.IP() )
24     info( "Monitoring output for", seconds, "seconds\n" )
25     endTime = time() + seconds
26     for h, line in pmonitor( popens, timeoutms=500 ):
27         if h:
28             info( '<%s>: %s' % ( h.name, line ) )
29         if time() >= endTime:
30             for p in popens.values():
31                 p.send_signal( SIGINT )
32     net.stop()
33
34 if __name__ == '__main__':
35     setLogLevel( 'info' )
36     pmonitorTest()