Bob Lantz

Use netstat for waitListening; client -h h1 "apps -a"

And fix do_log()

Change-Id: I04402fda9c409fa4cb41ae20cf1c551369b7669d
...@@ -149,34 +149,22 @@ def unpackONOS( destDir='/tmp', run=quietRun ): ...@@ -149,34 +149,22 @@ def unpackONOS( destDir='/tmp', run=quietRun ):
149 return onosDir 149 return onosDir
150 150
151 151
152 -def waitListening( client=None, server='127.0.0.1', port=80, timeout=None, 152 +def waitListening( server, port=80, callback=None, sleepSecs=.5,
153 - callback=None, sleepSecs=.5 ): 153 + proc='java' ):
154 - "Modified mininet.util.waitListening with callback, sleepSecs" 154 + "Simplified netstat version of waitListening"
155 - runCmd = ( client.cmd if client else 155 + while True:
156 - partial( quietRun, shell=True ) ) 156 + lines = server.cmd( 'netstat -natp' ).strip().split( '\n' )
157 - if not runCmd( 'which telnet' ): 157 + entries = [ line.split() for line in lines ]
158 - raise Exception('Could not find telnet' ) 158 + portstr = ':%s' % port
159 - # pylint: disable=maybe-no-member 159 + listening = [ entry for entry in entries
160 - serverIP = server if isinstance( server, basestring ) else server.IP() 160 + if len( entry ) > 6 and portstr in entry[ 3 ]
161 - cmd = ( 'echo A | telnet -e A %s %s' % ( serverIP, port ) ) 161 + and proc in entry[ 6 ] ]
162 - elapsed = 0 162 + if listening:
163 - result = runCmd( cmd ) 163 + break
164 - while 'Connected' not in result:
165 - if 'No route' in result:
166 - rtable = runCmd( 'route' )
167 - error( 'no route to %s:\n%s' % ( server, rtable ) )
168 - return False
169 - if timeout and elapsed >= timeout:
170 - error( 'could not connect to %s on port %d\n' % ( server, port ) )
171 - return False
172 - debug( 'waiting for', server, 'to listen on port', port, '\n' )
173 info( '.' ) 164 info( '.' )
174 if callback: 165 if callback:
175 callback() 166 callback()
176 time.sleep( sleepSecs ) 167 time.sleep( sleepSecs )
177 - elapsed += sleepSecs
178 - result = runCmd( cmd )
179 - return True
180 168
181 169
182 ### Mininet classes 170 ### Mininet classes
...@@ -338,7 +326,7 @@ class ONOSNode( Controller ): ...@@ -338,7 +326,7 @@ class ONOSNode( Controller ):
338 callback=self.sanityCheck ) 326 callback=self.sanityCheck )
339 info( ' client' ) 327 info( ' client' )
340 while True: 328 while True:
341 - result = quietRun( 'echo apps -a | %s -h %s' % 329 + result = quietRun( '%s -h %s "apps -a"' %
342 ( self.client, self.IP() ), shell=True ) 330 ( self.client, self.IP() ), shell=True )
343 if 'openflow' in result: 331 if 'openflow' in result:
344 break 332 break
...@@ -528,7 +516,8 @@ class ONOSCLI( OldCLI ): ...@@ -528,7 +516,8 @@ class ONOSCLI( OldCLI ):
528 516
529 def do_log( self, line ): 517 def do_log( self, line ):
530 "Run tail -f /tmp/onos1/log; press control-C to stop" 518 "Run tail -f /tmp/onos1/log; press control-C to stop"
531 - self.default( self.onos1().name, 'tail -f /tmp/%s/log' % self.onos1() ) 519 + self.default( '%s tail -f /tmp/%s/log' %
520 + ( self.onos1(), self.onos1() ) )
532 521
533 def do_status( self, line ): 522 def do_status( self, line ):
534 "Return status of ONOS cluster(s)" 523 "Return status of ONOS cluster(s)"
......