diff --git a/examples/baresshd.py b/examples/baresshd.py index 9d349f3..39b683a 100755 --- a/examples/baresshd.py +++ b/examples/baresshd.py @@ -6,31 +6,32 @@ import sys from mininet.node import Host from mininet.util import ensureRoot, waitListening +from mininet.log import info, warn, output ensureRoot() timeout = 5 -print( "*** Creating nodes" ) +info( "*** Creating nodes\n" ) h1 = Host( 'h1' ) root = Host( 'root', inNamespace=False ) -print( "*** Creating links" ) +info( "*** Creating link\n" ) h1.linkTo( root ) -print( h1 ) +info( h1 ) -print( "*** Configuring nodes" ) +info( "*** Configuring nodes\n" ) h1.setIP( '10.0.0.1', 8 ) root.setIP( '10.0.0.2', 8 ) -print( "*** Creating banner file" ) +info( "*** Creating banner file\n" ) f = open( '/tmp/%s.banner' % h1.name, 'w' ) f.write( 'Welcome to %s at %s\n' % ( h1.name, h1.IP() ) ) f.close() -print( "*** Running sshd" ) +info( "*** Running sshd\n" ) cmd = '/usr/sbin/sshd -o UseDNS=no -u0 -o "Banner /tmp/%s.banner"' % h1.name # add arguments from the command line if len( sys.argv ) > 1: @@ -39,7 +40,7 @@ h1.cmd( cmd ) listening = waitListening( server=h1, port=22, timeout=timeout ) if listening: - print( "*** You may now ssh into", h1.name, "at", h1.IP() ) + output( "*** You may now ssh into", h1.name, "at", h1.IP(), '\n' ) else: - print( "*** Warning: after %s seconds, %s is not listening on port 22" - % ( timeout, h1.name ) ) + warn( "*** Warning: after %s seconds, %s is not listening on port 22" + % ( timeout, h1.name ), '\n' ) diff --git a/examples/controllers2.py b/examples/controllers2.py index eaa54c2..fc06269 100755 --- a/examples/controllers2.py +++ b/examples/controllers2.py @@ -15,46 +15,46 @@ the Mininet() constructor. from mininet.net import Mininet from mininet.node import Controller, OVSSwitch from mininet.cli import CLI -from mininet.log import setLogLevel +from mininet.log import setLogLevel, info def multiControllerNet(): "Create a network from semi-scratch with multiple controllers." net = Mininet( controller=Controller, switch=OVSSwitch ) - print( "*** Creating (reference) controllers" ) + info( "*** Creating (reference) controllers\n" ) c1 = net.addController( 'c1', port=6633 ) c2 = net.addController( 'c2', port=6634 ) - print( "*** Creating switches" ) + info( "*** Creating switches\n" ) s1 = net.addSwitch( 's1' ) s2 = net.addSwitch( 's2' ) - print( "*** Creating hosts" ) + info( "*** Creating hosts\n" ) hosts1 = [ net.addHost( 'h%d' % n ) for n in ( 3, 4 ) ] hosts2 = [ net.addHost( 'h%d' % n ) for n in ( 5, 6 ) ] - print( "*** Creating links" ) + info( "*** Creating links\n" ) for h in hosts1: net.addLink( s1, h ) for h in hosts2: net.addLink( s2, h ) net.addLink( s1, s2 ) - print( "*** Starting network" ) + info( "*** Starting network\n" ) net.build() c1.start() c2.start() s1.start( [ c1 ] ) s2.start( [ c2 ] ) - print( "*** Testing network" ) + info( "*** Testing network\n" ) net.pingAll() - print( "*** Running CLI" ) + info( "*** Running CLI\n" ) CLI( net ) - print( "*** Stopping network" ) + info( "*** Stopping network\n" ) net.stop() if __name__ == '__main__': diff --git a/examples/cpu.py b/examples/cpu.py index 7d03199..2af7d67 100755 --- a/examples/cpu.py +++ b/examples/cpu.py @@ -21,7 +21,7 @@ def bwtest( cpuLimits, period_us=100000, seconds=5 ): results = {} for sched in 'rt', 'cfs': - print( '*** Testing with', sched, 'bandwidth limiting' ) + info( '*** Testing with', sched, 'bandwidth limiting\n' ) for cpu in cpuLimits: host = custom( CPULimitedHost, sched=sched, period_us=period_us, @@ -53,18 +53,16 @@ def bwtest( cpuLimits, period_us=100000, seconds=5 ): def dump( results ): "Dump results" - fmt = '%s\t%s\t%s' + fmt = '%s\t%s\t%s\n' - print() - print( fmt % ( 'sched', 'cpu', 'client MB/s' ) ) - print() + info( '\n', fmt % ( 'sched', 'cpu', 'client MB/s' ) ) for sched in sorted( results.keys() ): entries = results[ sched ] for cpu, bps in entries: pct = '%.2f%%' % ( cpu * 100 ) mbps = bps / 1e6 - print( fmt % ( sched, pct, mbps ) ) + info( fmt % ( sched, pct, mbps ) ) if __name__ == '__main__': diff --git a/examples/linearbandwidth.py b/examples/linearbandwidth.py index 394fa75..802f6d1 100755 --- a/examples/linearbandwidth.py +++ b/examples/linearbandwidth.py @@ -27,7 +27,7 @@ of switches, this example demonstrates: from mininet.net import Mininet from mininet.node import UserSwitch, OVSKernelSwitch, Controller from mininet.topo import Topo -from mininet.log import lg +from mininet.log import lg, info from mininet.util import irange, quietRun from mininet.link import TCLink from functools import partial @@ -84,7 +84,7 @@ def linearBandwidthTest( lengths ): assert 'reno' in output for datapath in switches.keys(): - print( "*** testing", datapath, "datapath" ) + info( "*** testing", datapath, "datapath\n" ) Switch = switches[ datapath ] results[ datapath ] = [] link = partial( TCLink, delay='1ms' ) @@ -92,36 +92,34 @@ def linearBandwidthTest( lengths ): controller=Controller, waitConnected=True, link=link ) net.start() - print( "*** testing basic connectivity" ) + info( "*** testing basic connectivity\n" ) for n in lengths: net.ping( [ net.hosts[ 0 ], net.hosts[ n ] ] ) - print( "*** testing bandwidth" ) + info( "*** testing bandwidth\n" ) for n in lengths: src, dst = net.hosts[ 0 ], net.hosts[ n ] # Try to prime the pump to reduce PACKET_INs during test # since the reference controller is reactive src.cmd( 'telnet', dst.IP(), '5001' ) - print( "testing", src.name, "<->", dst.name ) + info( "testing", src.name, "<->", dst.name, '\n' ) bandwidth = net.iperf( [ src, dst ], seconds=10 ) - print( bandwidth ) + info( bandwidth, '\n' ) flush() results[ datapath ] += [ ( n, bandwidth ) ] net.stop() for datapath in switches.keys(): - print() - print( "*** Linear network results for", datapath, "datapath:" ) - print() + info( "\n*** Linear network results for", datapath, "datapath:\n" ) result = results[ datapath ] - print( "SwitchCount\tiperf Results" ) + info( "SwitchCount\tiperf Results\n" ) for switchCount, bandwidth in result: - print( switchCount, '\t\t' ) - print( bandwidth[ 0 ], 'server, ', bandwidth[ 1 ], 'client' ) - print() - print() + info( switchCount, '\t\t' ) + info( bandwidth[ 0 ], 'server, ', bandwidth[ 1 ], 'client\n' ) + info( '\n') + info( '\n' ) if __name__ == '__main__': lg.setLogLevel( 'info' ) sizes = [ 1, 10, 20, 40, 60, 80 ] - print( "*** Running linearBandwidthTest", sizes ) + info( "*** Running linearBandwidthTest", sizes, '\n' ) linearBandwidthTest( sizes ) diff --git a/examples/linuxrouter.py b/examples/linuxrouter.py index 2e7ea7d..a7e312b 100755 --- a/examples/linuxrouter.py +++ b/examples/linuxrouter.py @@ -82,7 +82,7 @@ def run(): net = Mininet( topo=topo ) # controller is used by s1-s3 net.start() info( '*** Routing Table on Router:\n' ) - print( net[ 'r0' ].cmd( 'route' ) ) + info( net[ 'r0' ].cmd( 'route' ) ) CLI( net ) net.stop() diff --git a/examples/miniedit.py b/examples/miniedit.py index 7d52f60..2c5e70a 100755 --- a/examples/miniedit.py +++ b/examples/miniedit.py @@ -45,7 +45,7 @@ if 'PYTHONPATH' in os.environ: # someday: from ttk import * -from mininet.log import info, setLogLevel +from mininet.log import info, debug, setLogLevel from mininet.net import Mininet, VERSION from mininet.util import netParse, ipAdd, quietRun from mininet.util import buildTopo @@ -60,7 +60,7 @@ from mininet.moduledeps import moduleDeps from mininet.topo import SingleSwitchTopo, LinearTopo, SingleSwitchReversedTopo from mininet.topolib import TreeTopo -print( 'MiniEdit running against Mininet '+VERSION ) +info( 'MiniEdit running against Mininet '+VERSION, '\n' ) MININET_VERSION = re.sub(r'[^\d\.]', '', VERSION) if StrictVersion(MININET_VERSION) > StrictVersion('2.0'): from mininet.node import IVSSwitch @@ -383,10 +383,10 @@ class PrefsDialog(tkSimpleDialog.Dialog): r = r'ovs_version: "(.*)"' m = re.search(r, outp) if m is None: - print( 'Version check failed' ) + warn( 'Version check failed' ) return None else: - print( 'Open vSwitch version is '+m.group(1) ) + info( 'Open vSwitch version is '+m.group(1), '\n' ) return m.group(1) @@ -755,7 +755,7 @@ class SwitchDialog(CustomDialog): def apply(self): externalInterfaces = [] for row in range(self.tableFrame.rows): - # print( 'Interface is ' + self.tableFrame.get(row, 0) ) + # debug( 'Interface is ' + self.tableFrame.get(row, 0), '\n' ) if len(self.tableFrame.get(row, 0)) > 0: externalInterfaces.append(self.tableFrame.get(row, 0)) @@ -866,7 +866,7 @@ class TableFrame(Frame): return widget.get() def addRow( self, value=None, readonly=False ): - # print( "Adding row " + str(self.rows +1) ) + # debug( "Adding row " + str(self.rows +1), '\n' ) current_row = [] for column in range(self.columns): label = Entry(self, borderwidth=0) @@ -1669,7 +1669,7 @@ class MiniEdit( Frame ): f.write(json.dumps(savingDictionary, sort_keys=True, indent=4, separators=(',', ': '))) # pylint: disable=broad-except except Exception as er: - print( er ) + warn( er, '\n' ) # pylint: enable=broad-except finally: f.close() @@ -1683,7 +1683,7 @@ class MiniEdit( Frame ): fileName = tkFileDialog.asksaveasfilename(filetypes=myFormats ,title="Export the topology as...") if len(fileName ) > 0: - # print( "Now saving under %s" % fileName ) + # debug( "Now saving under %s\n" % fileName ) f = open(fileName, 'wb') f.write("#!/usr/bin/python\n") @@ -2489,7 +2489,7 @@ class MiniEdit( Frame ): if len(hostBox.result['privateDirectory']) > 0: newHostOpts['privateDirectory'] = hostBox.result['privateDirectory'] self.hostOpts[name] = newHostOpts - print( 'New host details for ' + name + ' = ' + str(newHostOpts) ) + info( 'New host details for ' + name + ' = ' + str(newHostOpts), '\n' ) def switchDetails( self, _ignore=None ): if ( self.selection is None or @@ -2527,7 +2527,7 @@ class MiniEdit( Frame ): newSwitchOpts['sflow'] = switchBox.result['sflow'] newSwitchOpts['netflow'] = switchBox.result['netflow'] self.switchOpts[name] = newSwitchOpts - print( 'New switch details for ' + name + ' = ' + str(newSwitchOpts) ) + info( 'New switch details for ' + name + ' = ' + str(newSwitchOpts), '\n' ) def linkUp( self ): if ( self.selection is None or @@ -2566,12 +2566,12 @@ class MiniEdit( Frame ): linkBox = LinkDialog(self, title='Link Details', linkDefaults=linkopts) if linkBox.result is not None: linkDetail['linkOpts'] = linkBox.result - print( 'New link details = ' + str(linkBox.result) ) + info( 'New link details = ' + str(linkBox.result), '\n' ) def prefDetails( self ): prefDefaults = self.appPrefs prefBox = PrefsDialog(self, title='Preferences', prefDefaults=prefDefaults) - print( 'New Prefs = ' + str(prefBox.result) ) + info( 'New Prefs = ' + str(prefBox.result), '\n' ) if prefBox.result: self.appPrefs = prefBox.result @@ -2590,14 +2590,14 @@ class MiniEdit( Frame ): ctrlrBox = ControllerDialog(self, title='Controller Details', ctrlrDefaults=self.controllers[name]) if ctrlrBox.result: - # print( 'Controller is ' + ctrlrBox.result[0] ) + # debug( 'Controller is ' + ctrlrBox.result[0], '\n' ) if len(ctrlrBox.result['hostname']) > 0: name = ctrlrBox.result['hostname'] widget[ 'text' ] = name else: ctrlrBox.result['hostname'] = name self.controllers[name] = ctrlrBox.result - print( 'New controller details for ' + name + ' = ' + str(self.controllers[name]) ) + info( 'New controller details for ' + name + ' = ' + str(self.controllers[name]), '\n' ) # Find references to controller and change name if oldName != name: for widget in self.widgetToItem: @@ -2698,15 +2698,15 @@ class MiniEdit( Frame ): def buildNodes( self, net): # Make nodes - print( "Getting Hosts and Switches." ) + info( "Getting Hosts and Switches.\n" ) for widget in self.widgetToItem: name = widget[ 'text' ] tags = self.canvas.gettags( self.widgetToItem[ widget ] ) - # print( name+' has '+str(tags) ) + # debug( name+' has '+str(tags), '\n' ) if 'Switch' in tags: opts = self.switchOpts[name] - # print( str(opts) ) + # debug( str(opts), '\n' ) # Create the correct switch class switchClass = customOvs @@ -2772,7 +2772,7 @@ class MiniEdit( Frame ): newSwitch = net.addHost( name , cls=LegacyRouter) elif 'Host' in tags: opts = self.hostOpts[name] - # print( str(opts) ) + # debug( str(opts), '\n' ) ip = None defaultRoute = None if 'defaultRoute' in opts and len(opts['defaultRoute']) > 0: @@ -2797,7 +2797,7 @@ class MiniEdit( Frame ): privateDirs=opts['privateDirectory'] ) else: hostCls=Host - print( hostCls ) + debug( hostCls, '\n' ) newHost = net.addHost( name, cls=hostCls, ip=ip, @@ -2817,7 +2817,7 @@ class MiniEdit( Frame ): Intf( extInterface, node=newHost ) if 'vlanInterfaces' in opts: if len(opts['vlanInterfaces']) > 0: - print( 'Checking that OS is VLAN prepared' ) + info( 'Checking that OS is VLAN prepared\n' ) self.pathCheck('vconfig', moduleName='vlan package') moduleDeps( add='8021q' ) elif 'Controller' in tags: @@ -2834,7 +2834,7 @@ class MiniEdit( Frame ): controllerPort = opts['remotePort'] # Make controller - print( 'Getting controller selection:'+controllerType ) + info( 'Getting controller selection:'+controllerType, '\n' ) if controllerType == 'remote': net.addController(name=name, controller=RemoteController, @@ -2874,7 +2874,7 @@ class MiniEdit( Frame ): def buildLinks( self, net): # Make links - print( "Getting Links." ) + info( "Getting Links.\n" ) for key,link in self.links.iteritems(): tags = self.canvas.gettags(key) if 'data' in tags: @@ -2886,14 +2886,14 @@ class MiniEdit( Frame ): if linkopts: net.addLink(srcNode, dstNode, cls=TCLink, **linkopts) else: - # print( str(srcNode) ) - # print( str(dstNode) ) + # debug( str(srcNode) ) + # debug( str(dstNode), '\n' ) net.addLink(srcNode, dstNode) self.canvas.itemconfig(key, dash=()) def build( self ): - print( "Build network based on our topology." ) + "Build network based on our topology." dpctl = None if len(self.appPrefs['dpctl']) > 0: @@ -2924,7 +2924,7 @@ class MiniEdit( Frame ): # Attach vlan interfaces if 'vlanInterfaces' in opts: for vlanInterface in opts['vlanInterfaces']: - print( 'adding vlan interface '+vlanInterface[1] ) + info( 'adding vlan interface '+vlanInterface[1], '\n' ) newHost.cmdPrint('ifconfig '+name+'-eth0.'+vlanInterface[1]+' '+vlanInterface[0]) # Run User Defined Start Command if 'startCommand' in opts: @@ -2950,7 +2950,7 @@ class MiniEdit( Frame ): opts = self.switchOpts[name] if 'netflow' in opts: if opts['netflow'] == '1': - print( name+' has Netflow enabled' ) + info( name+' has Netflow enabled\n' ) nflowSwitches = nflowSwitches+' -- set Bridge '+name+' netflow=@MiniEditNF' nflowEnabled=True if nflowEnabled: @@ -2959,13 +2959,13 @@ class MiniEdit( Frame ): nflowCmd = nflowCmd + ' add_id_to_interface=true' else: nflowCmd = nflowCmd + ' add_id_to_interface=false' - print( 'cmd = '+nflowCmd+nflowSwitches ) + info( 'cmd = '+nflowCmd+nflowSwitches, '\n' ) call(nflowCmd+nflowSwitches, shell=True) else: - print( 'No switches with Netflow' ) + info( 'No switches with Netflow\n' ) else: - print( 'No NetFlow targets specified.' ) + info( 'No NetFlow targets specified.\n' ) # Configure sFlow sflowValues = self.appPrefs['sflow'] @@ -2980,18 +2980,18 @@ class MiniEdit( Frame ): opts = self.switchOpts[name] if 'sflow' in opts: if opts['sflow'] == '1': - print( name+' has sflow enabled' ) + info( name+' has sflow enabled\n' ) sflowSwitches = sflowSwitches+' -- set Bridge '+name+' sflow=@MiniEditSF' sflowEnabled=True if sflowEnabled: sflowCmd = 'ovs-vsctl -- --id=@MiniEditSF create sFlow '+ 'target=\\\"'+sflowValues['sflowTarget']+'\\\" '+ 'header='+sflowValues['sflowHeader']+' '+ 'sampling='+sflowValues['sflowSampling']+' '+ 'polling='+sflowValues['sflowPolling'] - print( 'cmd = '+sflowCmd+sflowSwitches ) + info( 'cmd = '+sflowCmd+sflowSwitches, '\n' ) call(sflowCmd+sflowSwitches, shell=True) else: - print( 'No switches with sflow' ) + info( 'No switches with sflow\n' ) else: - print( 'No sFlow targets specified.' ) + info( 'No sFlow targets specified.\n' ) ## NOTE: MAKE SURE THIS IS LAST THING CALLED # Start the CLI if enabled @@ -3217,7 +3217,7 @@ class MiniEdit( Frame ): raise Exception( 'could not find custom file: %s' % fileName ) def importTopo( self ): - print( 'topo='+self.options.topo ) + info( 'topo='+self.options.topo, '\n' ) if self.options.topo == 'none': return self.newTopology() @@ -3231,7 +3231,7 @@ class MiniEdit( Frame ): currentY = 100 # Add Controllers - print( 'controllers:'+str(len(importNet.controllers)) ) + info( 'controllers:'+str(len(importNet.controllers)), '\n' ) for controller in importNet.controllers: name = controller.name x = self.controllerCount*100+100 @@ -3251,7 +3251,7 @@ class MiniEdit( Frame ): currentY = currentY + rowIncrement # Add switches - print( 'switches:'+str(len(importNet.switches)) ) + info( 'switches:'+str(len(importNet.switches)), '\n' ) columnCount = 0 for switch in importNet.switches: name = switch.name @@ -3292,7 +3292,7 @@ class MiniEdit( Frame ): currentY = currentY + rowIncrement # Add hosts - print( 'hosts:'+str(len(importNet.hosts)) ) + info( 'hosts:'+str(len(importNet.hosts)), '\n' ) columnCount = 0 for host in importNet.hosts: name = host.name @@ -3312,10 +3312,10 @@ class MiniEdit( Frame ): else: columnCount =columnCount+1 - print( 'links:'+str(len(topo.links())) ) + info( 'links:'+str(len(topo.links())), '\n' ) #[('h1', 's3'), ('h2', 's4'), ('s3', 's4')] for link in topo.links(): - print( str(link) ) + info( str(link), '\n' ) srcNode = link[0] src = self.findWidgetByName(srcNode) sx, sy = self.canvas.coords( self.widgetToItem[ src ] ) @@ -3325,7 +3325,7 @@ class MiniEdit( Frame ): dx, dy = self.canvas.coords( self.widgetToItem[ dest] ) params = topo.linkInfo( srcNode, destNode ) - print( 'Link Parameters='+str(params) ) + info( 'Link Parameters='+str(params), '\n' ) self.link = self.canvas.create_line( sx, sy, dx, dy, width=4, fill='blue', tag='link' ) diff --git a/examples/mobility.py b/examples/mobility.py index 2643735..ba09089 100755 --- a/examples/mobility.py +++ b/examples/mobility.py @@ -23,7 +23,7 @@ to-do: from mininet.net import Mininet from mininet.node import OVSSwitch from mininet.topo import LinearTopo -from mininet.log import output, warn +from mininet.log import info, output, warn, setLogLevel from random import randint @@ -106,30 +106,31 @@ def moveHost( host, oldSwitch, newSwitch, newPort=None ): def mobilityTest(): "A simple test of mobility" - print( '* Simple mobility test' ) + info( '* Simple mobility test\n' ) net = Mininet( topo=LinearTopo( 3 ), switch=MobilitySwitch ) - print( '* Starting network:' ) + info( '* Starting network:\n' ) net.start() printConnections( net.switches ) - print( '* Testing network' ) + info( '* Testing network\n' ) net.pingAll() - print( '* Identifying switch interface for h1' ) + info( '* Identifying switch interface for h1\n' ) h1, old = net.get( 'h1', 's1' ) for s in 2, 3, 1: new = net[ 's%d' % s ] port = randint( 10, 20 ) - print( '* Moving', h1, 'from', old, 'to', new, 'port', port ) + info( '* Moving', h1, 'from', old, 'to', new, 'port', port, '\n' ) hintf, sintf = moveHost( h1, old, new, newPort=port ) - print( '*', hintf, 'is now connected to', sintf ) - print( '* Clearing out old flows' ) + info( '*', hintf, 'is now connected to', sintf, '\n' ) + info( '* Clearing out old flows\n' ) for sw in net.switches: sw.dpctl( 'del-flows' ) - print( '* New network:' ) + info( '* New network:\n' ) printConnections( net.switches ) - print( '* Testing connectivity:' ) + info( '* Testing connectivity:\n' ) net.pingAll() old = new net.stop() if __name__ == '__main__': + setLogLevel( 'info' ) mobilityTest() diff --git a/examples/multiping.py b/examples/multiping.py index 73ec614..3dd730d 100755 --- a/examples/multiping.py +++ b/examples/multiping.py @@ -12,7 +12,7 @@ of time. from mininet.net import Mininet from mininet.node import Node from mininet.topo import SingleSwitchTopo -from mininet.log import setLogLevel +from mininet.log import info, setLogLevel from select import poll, POLLIN from time import time @@ -35,8 +35,8 @@ def startpings( host, targetips ): ' done; ' 'done &' ) - print( '*** Host %s (%s) will be pinging ips: %s' % - ( host.name, host.IP(), targetips ) ) + info( '*** Host %s (%s) will be pinging ips: %s\n' % + ( host.name, host.IP(), targetips ) ) host.cmd( cmd ) @@ -70,7 +70,7 @@ def multiping( netsize, chunksize, seconds): readable = poller.poll(1000) for fd, _mask in readable: node = Node.outToNode[ fd ] - print( '%s:' % node.name, node.monitor().strip() ) + info( '%s:' % node.name, node.monitor().strip(), '\n' ) # Stop pings for host in hosts: diff --git a/examples/multipoll.py b/examples/multipoll.py index 6bff394..0b735ba 100755 --- a/examples/multipoll.py +++ b/examples/multipoll.py @@ -8,7 +8,7 @@ monitoring them from mininet.topo import SingleSwitchTopo from mininet.net import Mininet -from mininet.log import setLogLevel +from mininet.log import info, setLogLevel from time import time from select import poll, POLLIN @@ -55,7 +55,7 @@ def monitorTest( N=3, seconds=3 ): net = Mininet( topo ) net.start() hosts = net.hosts - print( "Starting test..." ) + info( "Starting test...\n" ) server = hosts[ 0 ] outfiles, errfiles = {}, {} for h in hosts: @@ -69,10 +69,10 @@ def monitorTest( N=3, seconds=3 ): '>', outfiles[ h ], '2>', errfiles[ h ], '&' ) - print( "Monitoring output for", seconds, "seconds" ) + info( "Monitoring output for", seconds, "seconds\n" ) for h, line in monitorFiles( outfiles, seconds, timeoutms=500 ): if h: - print( '%s: %s' % ( h.name, line ) ) + info( '%s: %s\n' % ( h.name, line ) ) for h in hosts: h.cmd('kill %ping') net.stop() diff --git a/examples/nat.py b/examples/nat.py index fbbe03e..e6d55f7 100755 --- a/examples/nat.py +++ b/examples/nat.py @@ -6,7 +6,7 @@ Example to create a Mininet topology and connect it to the internet via NAT from mininet.cli import CLI -from mininet.log import lg +from mininet.log import lg, info from mininet.topolib import TreeNet @@ -16,8 +16,8 @@ if __name__ == '__main__': # Add NAT connectivity net.addNAT().configDefault() net.start() - print( "*** Hosts are running and should have internet connectivity" ) - print( "*** Type 'exit' or control-D to shut down network" ) + info( "*** Hosts are running and should have internet connectivity\n" ) + info( "*** Type 'exit' or control-D to shut down network\n" ) CLI( net ) # Shut down NAT net.stop() diff --git a/examples/numberedports.py b/examples/numberedports.py index 4a26cbc..3bd18d6 100755 --- a/examples/numberedports.py +++ b/examples/numberedports.py @@ -66,13 +66,13 @@ def testPortNumbering(): 'is actually on port', s1.ports[intfs], '... ' ) if validatePort( s1, intfs ): info( 'Validated.\n' ) - print( '\n' ) + info( '\n' ) # test the network with pingall net.pingAll() - print( '\n' ) + info( '\n' ) - info( '*** Stopping network' ) + info( '*** Stopping network\n' ) net.stop() if __name__ == '__main__': diff --git a/examples/popen.py b/examples/popen.py index 42674e4..b43fb1c 100755 --- a/examples/popen.py +++ b/examples/popen.py @@ -9,7 +9,7 @@ pmonitor() from mininet.net import Mininet from mininet.node import CPULimitedHost from mininet.topo import SingleSwitchTopo -from mininet.log import setLogLevel +from mininet.log import setLogLevel, info from mininet.util import custom, pmonitor def monitorhosts( hosts=5, sched='cfs' ): @@ -28,7 +28,7 @@ def monitorhosts( hosts=5, sched='cfs' ): # Monitor them and print output for host, line in pmonitor( popens ): if host: - print( "<%s>: %s" % ( host.name, line.strip() ) ) + info( "<%s>: %s" % ( host.name, line ) ) # Done net.stop() diff --git a/examples/popenpoll.py b/examples/popenpoll.py index ddfcc18..c153dcb 100755 --- a/examples/popenpoll.py +++ b/examples/popenpoll.py @@ -2,34 +2,35 @@ "Monitor multiple hosts using popen()/pmonitor()" - from mininet.net import Mininet from mininet.topo import SingleSwitchTopo from mininet.util import pmonitor +from mininet.log import setLogLevel, info + from time import time from signal import SIGINT - def pmonitorTest( N=3, seconds=10 ): "Run pings and monitor multiple hosts using pmonitor" topo = SingleSwitchTopo( N ) net = Mininet( topo ) net.start() hosts = net.hosts - print( "Starting test..." ) + info( "Starting test...\n" ) server = hosts[ 0 ] popens = {} for h in hosts: popens[ h ] = h.popen('ping', server.IP() ) - print( "Monitoring output for", seconds, "seconds" ) + info( "Monitoring output for", seconds, "seconds\n" ) endTime = time() + seconds for h, line in pmonitor( popens, timeoutms=500 ): if h: - print( '<%s>: %s' % ( h.name, line ) ) + info( '<%s>: %s' % ( h.name, line ) ) if time() >= endTime: for p in popens.values(): p.send_signal( SIGINT ) net.stop() if __name__ == '__main__': + setLogLevel( 'info' ) pmonitorTest() diff --git a/examples/scratchnet.py b/examples/scratchnet.py index 46efa5a..cc1d19c 100755 --- a/examples/scratchnet.py +++ b/examples/scratchnet.py @@ -41,7 +41,7 @@ def scratchNet( cname='controller', cargs='-v ptcp:' ): switch.cmd( 'ovs-vsctl del-br dp0' ) switch.cmd( 'ovs-vsctl add-br dp0' ) for intf in switch.intfs.values(): - print( switch.cmd( 'ovs-vsctl add-port dp0 %s' % intf ) ) + switch.cmd( 'ovs-vsctl add-port dp0 %s\n' % intf ) # Note: controller and switch are in root namespace, and we # can connect via loopback interface diff --git a/examples/simpleperf.py b/examples/simpleperf.py index 9d00cbc..d348d54 100755 --- a/examples/simpleperf.py +++ b/examples/simpleperf.py @@ -15,7 +15,7 @@ from mininet.net import Mininet from mininet.node import CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections -from mininet.log import setLogLevel +from mininet.log import setLogLevel, info from sys import argv @@ -45,9 +45,9 @@ def perfTest( lossy=True ): host=CPULimitedHost, link=TCLink, autoStaticArp=True ) net.start() - print( "Dumping host connections" ) + info( "Dumping host connections\n" ) dumpNodeConnections(net.hosts) - print( "Testing bandwidth between h1 and h4" ) + info( "Testing bandwidth between h1 and h4\n" ) h1, h4 = net.getNodeByName('h1', 'h4') net.iperf( ( h1, h4 ), l4Type='UDP' ) net.stop() diff --git a/examples/sshd.py b/examples/sshd.py index 41d0e1a..7e0f517 100755 --- a/examples/sshd.py +++ b/examples/sshd.py @@ -20,7 +20,7 @@ import sys from mininet.net import Mininet from mininet.cli import CLI -from mininet.log import lg +from mininet.log import lg, info from mininet.node import Node from mininet.topolib import TreeTopo from mininet.util import waitListening @@ -60,17 +60,14 @@ def sshd( network, cmd='/usr/sbin/sshd', opts='-D', connectToRootNS( network, switch, ip, routes ) for host in network.hosts: host.cmd( cmd + ' ' + opts + '&' ) - print( "*** Waiting for ssh daemons to start" ) + info( "*** Waiting for ssh daemons to start\n" ) for server in network.hosts: waitListening( server=server, port=22, timeout=5 ) - print() - print( "*** Hosts are running sshd at the following addresses:" ) - print() + info( "\n*** Hosts are running sshd at the following addresses:\n" ) for host in network.hosts: - print( host.name, host.IP() ) - print() - print( "*** Type 'exit' or control-D to shut down network" ) + info( host.name, host.IP(), '\n' ) + info( "\n*** Type 'exit' or control-D to shut down network\n" ) CLI( network ) for host in network.hosts: host.cmd( 'kill %' + cmd ) diff --git a/examples/test/test_multipoll.py b/examples/test/test_multipoll.py index 12321ea..61e5cec 100755 --- a/examples/test/test_multipoll.py +++ b/examples/test/test_multipoll.py @@ -16,7 +16,7 @@ class testMultiPoll( unittest.TestCase ): "(h\d+): \d+ bytes from", "Monitoring output for (\d+) seconds", pexpect.EOF ] - pings = {} + pings, seconds = {}, -1 while True: index = p.expect( opts ) if index == 0: @@ -32,7 +32,8 @@ class testMultiPoll( unittest.TestCase ): self.assertTrue( len( pings ) > 0 ) # make sure we have received at least one ping per second for count in pings.values(): - self.assertTrue( count >= seconds ) + self.assertTrue( count >= seconds, + '%d pings < %d seconds' % ( count, seconds ) ) if __name__ == '__main__': unittest.main() diff --git a/examples/treeping64.py b/examples/treeping64.py index c97e3c3..bd54650 100755 --- a/examples/treeping64.py +++ b/examples/treeping64.py @@ -3,7 +3,7 @@ "Create a 64-node tree network, and test connectivity using ping." -from mininet.log import setLogLevel +from mininet.log import setLogLevel, info from mininet.node import UserSwitch, OVSKernelSwitch # , KernelSwitch from mininet.topolib import TreeNet @@ -16,17 +16,16 @@ def treePing64(): 'Open vSwitch kernel': OVSKernelSwitch } for name in switches: - print( "*** Testing", name, "datapath" ) + info( "*** Testing", name, "datapath\n" ) switch = switches[ name ] network = TreeNet( depth=2, fanout=8, switch=switch ) result = network.run( network.pingAll ) results[ name ] = result - print() - print( "*** Tree network ping results:" ) + info( "\n*** Tree network ping results:\n" ) for name in switches: - print( "%s: %d%% packet loss" % ( name, results[ name ] ) ) - print() + info( "%s: %d%% packet loss\n" % ( name, results[ name ] ) ) + info( '\n' ) if __name__ == '__main__': setLogLevel( 'info' )