def main(): global of_client (op, options, args, kwargs_to_pass) = parseArgs() if options.mode == 'i': options.mode = 'interpreted' elif options.mode == 'r0': options.mode = 'reactive0' try: module_name = args[0] except IndexError: print 'Module must be specified' print '' op.print_usage() sys.exit(1) try: module = import_module(module_name) except ImportError: print 'Must be a valid python module' print 'e.g, full module name,' print ' no .py suffix,' print ' located on the system PYTHONPATH' print '' op.print_usage() sys.exit(1) main = module.main kwargs = { k: v for [k, v] in [i.lstrip('--').split('=') for i in kwargs_to_pass] } sys.setrecursionlimit( 1500) #INCREASE THIS IF "maximum recursion depth exceeded" runtime = Runtime(Backend(), main, kwargs, options.mode, options.verbosity, False, False) if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH', shell=True).strip() except: print 'Error: Unable to obtain PYTHONPATH' sys.exit(1) poxpath = None for p in output.split(':'): if re.match('.*pox/?$', p): poxpath = os.path.abspath(p) break if poxpath is None: print 'Error: pox not found in PYTHONPATH' sys.exit(1) pox_exec = os.path.join(poxpath, 'pox.py') python = sys.executable of_client = subprocess.Popen( [python, pox_exec, 'of_client.pox_client'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) signal.signal(signal.SIGINT, signal_handler) signal.pause()
netkat_cmd = "bash start-frenetic.sh" try: output = subprocess.Popen(netkat_cmd, shell=True, stderr=subprocess.STDOUT) except Exception as e: print "Could not start frenetic server successfully." print e sys.exit(1) """ Start the runtime. """ opt_flags_arg = (options.disjoint_enabled, options.default_enabled, options.integrate_enabled, options.multitable_enabled, options.ragel_enabled, options.partition_enabled, options.switch_cnt, options.cache_enabled, options.edge_contraction_enabled) runtime = Runtime(Backend(), main, path_main, kwargs, mode=options.mode, verbosity=options.verbosity, opt_flags=opt_flags_arg, use_nx=options.nx, pipeline=options.pipeline, use_pyretic=options.use_pyretic) """ Start pox backend. """ if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH', shell=True).strip() except:
print "\nkilling log" import sys sys.exit(0) logger.handle(to_log) log_level = verbosity_map.get(options.verbosity, logging.DEBUG) log_process = Process(target=log_writer,args=(logging_queue, log_level,)) log_process.daemon = True log_process.start() # Set default handler. logger = logging.getLogger() handler = util.QueueStreamHandler(logging_queue) logger.addHandler(handler) logger.setLevel(log_level) runtime = Runtime(Backend(),main,path_main,kwargs,options.mode,options.verbosity) if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH',shell=True).strip() except: print 'Error: Unable to obtain PYTHONPATH' sys.exit(1) poxpath = None for p in output.split(':'): if re.match('.*pox/?$',p): poxpath = os.path.abspath(p) break if poxpath is None: print 'Error: pox not found in PYTHONPATH' sys.exit(1) pox_exec = os.path.join(poxpath,'pox.py')
except ImportError, e: print 'Must be a valid python module' print 'e.g, full module name,' print ' no .py suffix,' print ' located on the system PYTHONPATH' print '' print 'Exception message for ImportError was:' print e sys.exit(1) main = module.main kwargs = { k : v for [k,v] in [ i.lstrip('--').split('=') for i in kwargs_to_pass ]} sys.setrecursionlimit(1500) #INCREASE THIS IF "maximum recursion depth exceeded" runtime = Runtime(Backend(),main,kwargs,options.mode,options.verbosity,False,False) if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH',shell=True).strip() except: print 'Error: Unable to obtain PYTHONPATH' sys.exit(1) poxpath = None for p in output.split(':'): if re.match('.*pox/?$',p): poxpath = os.path.abspath(p) break if poxpath is None: print 'Error: pox not found in PYTHONPATH' sys.exit(1) pox_exec = os.path.join(poxpath,'pox.py')