Cleanup of doc files.
Fixed xterm.py (and cleanup) to clean up screen sessions. Cleaned up sshd.py (though interface is still in flux.) Added 1024-node network example (treenet1024.py). Added example showing multiple tests on a single network (multitest.py). Renamed examples to make them easier to type!
This commit is contained in:
+13
-12
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
"""
|
||||
Create a network and run an xterm (connected via screen(1) ) on each host.
|
||||
Requires xterm(1) and GNU screen(1).
|
||||
Create a network and run an xterm (connected via screen(1) ) on each
|
||||
host. Requires xterm(1) and GNU screen(1).
|
||||
"""
|
||||
|
||||
import os
|
||||
import os, re
|
||||
from subprocess import Popen
|
||||
from mininet import init, TreeNet, Cli, quietRun
|
||||
|
||||
@@ -13,18 +13,19 @@ def makeXterm( node, title ):
|
||||
"Run screen on a node, and hook up an xterm."
|
||||
node.cmdPrint( 'screen -dmS ' + node.name )
|
||||
title += ': ' + node.name
|
||||
if not node.inNamespace:
|
||||
title += ' (root namespace)'
|
||||
if not node.inNamespace: title += ' (root)'
|
||||
cmd = [ 'xterm', '-title', title ]
|
||||
cmd += [ '-e', 'screen', '-D', '-RR', '-S', node.name ]
|
||||
return Popen( cmd )
|
||||
|
||||
def cleanUpScreens():
|
||||
"Remove moldy old screen sessions."
|
||||
# XXX We need to implement this - otherwise those darned
|
||||
# screen sessions will just accumulate
|
||||
output = quietRun( 'screen -ls' )
|
||||
pass
|
||||
r = r'(\d+.[hsc]\d+)'
|
||||
output = quietRun( 'screen -ls' ).split( '\n' )
|
||||
for line in output:
|
||||
m = re.search( r, line )
|
||||
if m is not None:
|
||||
quietRun( 'screen -S ' + m.group( 1 ) + ' -X kill' )
|
||||
|
||||
def makeXterms( nodes, title ):
|
||||
terms = []
|
||||
@@ -34,18 +35,18 @@ def makeXterms( nodes, title ):
|
||||
return terms
|
||||
|
||||
def xterms( controllers, switches, hosts ):
|
||||
cleanUpScreens()
|
||||
terms = []
|
||||
terms += makeXterms( controllers, 'controller' )
|
||||
terms += makeXterms( switches, 'switch' )
|
||||
terms += makeXterms( hosts, 'host' )
|
||||
# Wait for xterms to exit
|
||||
for term in terms:
|
||||
for term in terms:
|
||||
os.waitpid( term.pid, 0 )
|
||||
cleanUpScreens()
|
||||
|
||||
if __name__ == '__main__':
|
||||
init()
|
||||
print "Running xterms on", os.environ[ 'DISPLAY' ]
|
||||
cleanUpScreens()
|
||||
network = TreeNet( depth=2, fanout=2, kernel=True )
|
||||
network.run( xterms )
|
||||
cleanUpScreens()
|
||||
Reference in New Issue
Block a user