From 8f20b95d56776c1bfff5b78ec6e3f0feba81354b Mon Sep 17 00:00:00 2001 From: Brandon Heller <brandonh@stanford.edu> Date: Sat, 2 Jan 2010 02:43:51 -0800 Subject: [PATCH] Auto-install run and clean scripts Also remove usused imports and outdated doc text. --- mininet/cleanup => bin/mn_clean.py | 6 ++- mininet/net.py | 61 +++--------------------------- setup.py | 24 ++++++++---- 3 files changed, 26 insertions(+), 65 deletions(-) rename mininet/cleanup => bin/mn_clean.py (95%) diff --git a/mininet/cleanup b/bin/mn_clean.py similarity index 95% rename from mininet/cleanup rename to bin/mn_clean.py index 8897a566..5bbe7e73 100755 --- a/mininet/cleanup +++ b/bin/mn_clean.py @@ -1,6 +1,8 @@ -#!/usr/bin/python +#!/usr/bin/env python +"""Mininet Cleanup + +@author Bob Lantz (rlantz@cs.stanford.edu) -""" Unfortunately, Mininet and OpenFlow don't always clean up properly after themselves. Until they do (or until cleanup functionality is integrated into the python code), this diff --git a/mininet/net.py b/mininet/net.py index 0b25e88a..9b2abaa7 100755 --- a/mininet/net.py +++ b/mininet/net.py @@ -1,7 +1,8 @@ #!/usr/bin/python +"""Mininet: A simple networking testbed for OpenFlow! -""" -Mininet: A simple networking testbed for OpenFlow! +@author Bob Lantz (rlantz@cs.stanford.edu) +@author Brandon Heller (brandonh@stanford.edu) Mininet creates scalable OpenFlow test networks by using process-based virtualization and network namespaces. @@ -16,7 +17,7 @@ A parent shell (and possibly some child processes) in a namespace Hosts have a network interface which is configured via ifconfig/ip -link/etc. with data network IP addresses (e.g. 192.168.123.2 ) +link/etc. This version supports both the kernel and user space datapaths from the OpenFlow reference implementation. @@ -43,40 +44,14 @@ Switch nodes are named s0-sN Interfaces are named {nodename}-eth0 .. {nodename}-ethN, -Thoughts/TBD: - - It should be straightforward to add a function to read - OpenFlowVMS spec files, but I haven't done so yet. - For the moment, specifying configurations and tests in Python - is straightforward and relatively concise. - Soon, we may want to split the various subsystems (core, - topology/network, cli, tests, etc.) into multiple modules. - Currently nox support is in nox.py. - We'd like to support OpenVSwitch as well as the reference - implementation. - -Bob Lantz -rlantz@cs.stanford.edu - -History: -11/19/09 Initial revision (user datapath only) -11/19/09 Mininet demo at OpenFlow SWAI meeting -12/08/09 Kernel datapath support complete -12/09/09 Moved controller and switch routines into classes -12/12/09 Added subdivided network driver workflow -12/13/09 Added support for custom controller and switch classes """ import os import re from subprocess import call import sys from time import sleep -#flush = sys.stdout.flush -#import os, re, signal, sys, select -from mininet.logging_mod import lg, set_loglevel -from mininet.node import Host, Controller, Switch, ControllerParams -from mininet.topo import TreeTopo +from mininet.logging_mod import lg from mininet.util import quietRun, fixLimits from mininet.util import make_veth_pair, move_intf, retry, MOVEINTF_DELAY @@ -517,28 +492,4 @@ def run(self): else: lg.error('CLI: unknown node or command: < %s >\n' % first) #lg.info('*** CLI: command complete\n') - return 'exited by user command' - - -if __name__ == '__main__': - if len(sys.argv) > 1: - set_loglevel(sys.argv[1]) - else: - set_loglevel('info') - - init() - results = {} - lg.info("*** Welcome to Mininet!\n") - lg.info("*** Look in examples/ for more examples\n\n") - lg.info("*** Testing Mininet with kernel and user datapath\n") - for datapath in DATAPATHS: - k = datapath == 'kernel' - controller_params = ControllerParams(0x0a000000, 8) # 10.0.0.0/8 - mn = Mininet(TreeTopo(), Switch, Host, Controller, - controller_params) - mn.start() - dropped = mn.ping_test() - results[datapath] = "%i%% dropped" % dropped - mn.stop() - - lg.info("*** Test results: %s\n", results) \ No newline at end of file + return 'exited by user command' \ No newline at end of file diff --git a/setup.py b/setup.py index f8f0e63a..da1d14e0 100644 --- a/setup.py +++ b/setup.py @@ -2,26 +2,34 @@ '''Setuptools params''' from setuptools import setup, find_packages +from os.path import join + +scripts = [join('bin', filename) for filename in + ['mn_run.py', 'mn_clean.py']] + +modname = distname = 'mininet' setup( - name='mininet', + name=distname, version='0.0.0', - description='The OpenFlow-based data center network', + description='Process-based OpenFlow emulator', author='Bob Lantz', author_email='rlantz@cs.stanford.edu', packages=find_packages(exclude='test'), long_description="""\ Insert longer description here. """, - classifiers=[ + classifiers=[ "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Topic :: Internet", - ], - keywords='networking protocol Internet OpenFlow', - license='GPL', - install_requires=[ + ], + keywords='networking protocol Internet OpenFlow', + license='GPL', + install_requires=[ 'setuptools' - ]) + ], + scripts=scripts, + package_dir={modname:''}) -- GitLab