Files
mininet/examples/xterms.py
T
Bob Lantz 748e35d50f Working on examples.
Added new example to create xterms.
Other minor changes.
2009-12-10 23:39:06 -08:00

40 lines
1.1 KiB
Python
Executable File

#!/usr/bin/python
"Create a network and run an xterm (connected via screen) on each host."
import os
from subprocess import Popen
from mininet import init, TreeNet, Cli, quietRun
def makeXterm( node, title ):
"Run screen on a node, and hook up an xterm."
node.cmdPrint( 'screen -dmS ' + node.name )
cmd = 'xterm -title ' + title + ':' + node.name
cmd += ' -e screen -D -RR -S ' + node.name
return Popen( cmd.split( ' ' ) )
def makeXterms( nodes, title ):
terms = []
for node in nodes:
if not node.execed:
terms += [ makeXterm( node, title ) ]
return terms
def xterms( controllers, switches, hosts ):
terms = []
terms += makeXterms( controllers, 'controller' )
terms += makeXterms( switches, 'switch' )
terms += makeXterms( hosts, 'host' )
# Wait for completion
for term in terms:
os.waitpid( term.pid, 0 )
def treeXterms():
print "Running xterms on", os.environ[ 'DISPLAY' ]
network = TreeNet( depth=2, fanout=4, kernel=True )
network.run( xterms )
if __name__ == '__main__':
init()
treeXterms()