promote waitListening to util.py
This commit is contained in:
+1
-13
@@ -7,23 +7,11 @@ cpu.py: test iperf bandwidth for varying cpu limits
|
||||
from mininet.net import Mininet
|
||||
from mininet.node import CPULimitedHost
|
||||
from mininet.topolib import TreeTopo
|
||||
from mininet.util import custom
|
||||
from mininet.util import custom, waitListening
|
||||
from mininet.log import setLogLevel, output
|
||||
|
||||
from time import sleep
|
||||
|
||||
def waitListening(client, server, port):
|
||||
"Wait until server is listening on port"
|
||||
if not client.cmd('which telnet'):
|
||||
raise Exception('Could not find telnet')
|
||||
cmd = ('sh -c "echo A | telnet -e A %s %s"' %
|
||||
(server.IP(), port))
|
||||
while 'Connected' not in client.cmd(cmd):
|
||||
output('waiting for', server,
|
||||
'to listen on port', port, '\n')
|
||||
sleep(.5)
|
||||
|
||||
|
||||
def bwtest( cpuLimits, period_us=100000, seconds=5 ):
|
||||
"""Example/test of link and CPU bandwidth limits
|
||||
cpu: cpu limit as fraction of overall CPU time"""
|
||||
|
||||
+4
-8
@@ -24,6 +24,7 @@ from mininet.log import lg
|
||||
from mininet.node import Node
|
||||
from mininet.topolib import TreeTopo
|
||||
from mininet.link import Link
|
||||
from mininet.util import waitListening
|
||||
|
||||
def TreeNet( depth=1, fanout=2, **kwargs ):
|
||||
"Convenience function for creating tree networks."
|
||||
@@ -59,15 +60,10 @@ def sshd( network, cmd='/usr/sbin/sshd', opts='-D',
|
||||
connectToRootNS( network, switch, ip, routes )
|
||||
for host in network.hosts:
|
||||
host.cmd( cmd + ' ' + opts + '&' )
|
||||
|
||||
client = network.switches[ 0 ]
|
||||
# wait until each host's sshd has started up
|
||||
remaining = list( network.hosts )
|
||||
while True:
|
||||
for host in tuple( remaining ):
|
||||
if 'sshd is running' in host.cmd( 'service ssh status' ):
|
||||
remaining.remove( host )
|
||||
if not remaining:
|
||||
break
|
||||
for server in network.hosts:
|
||||
waitListening( client, server, 22, timeout=5 )
|
||||
|
||||
print
|
||||
print "*** Hosts are running sshd at the following addresses:"
|
||||
|
||||
@@ -538,3 +538,22 @@ def ensureRoot():
|
||||
print "*** Mininet must run as root."
|
||||
exit( 1 )
|
||||
return
|
||||
|
||||
def waitListening( client, server, port, timeout=None ):
|
||||
"Wait until server is listening on port"
|
||||
if not client.cmd( 'which telnet' ):
|
||||
raise Exception('Could not find telnet' )
|
||||
cmd = ( 'sh -c "echo A | telnet -e A %s %s"' %
|
||||
( server.IP(), port ) )
|
||||
time = 0
|
||||
while 'Connected' not in client.cmd( cmd ):
|
||||
if timeout:
|
||||
if time >= timeout:
|
||||
error( 'could not connect to %s on port %d\n'
|
||||
% ( client, port ) )
|
||||
break
|
||||
output('waiting for', server,
|
||||
'to listen on port', port, '\n')
|
||||
sleep( .5 )
|
||||
time += .5
|
||||
|
||||
|
||||
Reference in New Issue
Block a user