Skip to content
Snippets Groups Projects
Commit cf5bbd59 authored by cody burkard's avatar cody burkard
Browse files

promote waitListening to util.py

parent c0d8fc0d
No related branches found
No related tags found
No related merge requests found
......@@ -7,23 +7,11 @@
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"""
......
......@@ -24,6 +24,7 @@
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment