# Set an interrupt handler def handle_int(signal, frame): import os from sts.util.rpc_forker import LocalForker sys.stderr.write("Caught signal %d, stopping sdndebug (pid %d)\n" % (signal, os.getpid())) if simulator.simulation_cfg.current_simulation is not None: simulator.simulation_cfg.current_simulation.clean_up() # kill fork()ed procs LocalForker.kill_all() sys.exit(13) signal.signal(signal.SIGINT, handle_int) signal.signal(signal.SIGTERM, handle_int) signal.signal(signal.SIGQUIT, handle_int) # Start the simulation try: # First tell simulator where to log simulator.init_results(config.results_dir) # Now start the simulation simulation = simulator.simulate() finally: if simulator.simulation_cfg.current_simulation is not None: simulator.simulation_cfg.current_simulation.clean_up() if args.publish: exp_lifecycle.publish_results(config.exp_name, config.results_dir) sys.exit(simulation.exit_code)
# Set an interrupt handler def handle_int(signal, frame): import os from sts.util.rpc_forker import LocalForker sys.stderr.write("Caught signal %d, stopping sdndebug (pid %d)\n" % (signal, os.getpid())) if (simulator.simulation_cfg.current_simulation is not None): simulator.simulation_cfg.current_simulation.clean_up() # kill fork()ed procs LocalForker.kill_all() sys.exit(13) signal.signal(signal.SIGINT, handle_int) signal.signal(signal.SIGTERM, handle_int) signal.signal(signal.SIGQUIT, handle_int) # Start the simulation try: # First tell simulator where to log simulator.init_results(config.results_dir) # Now start the simulation simulation = simulator.simulate() finally: if (simulator.simulation_cfg.current_simulation is not None): simulator.simulation_cfg.current_simulation.clean_up() if args.publish: exp_lifecycle.publish_results(config.exp_name, config.results_dir) sys.exit(simulation.exit_code)
try: config = __import__(args.config, globals(), locals(), ["*"]) except ImportError: # try again, but prepend config module path config = __import__("config.%s" % args.config, globals(), locals(), ["*"]) # For controlling the simulation if hasattr(config, 'control_flow'): simulator = config.control_flow else: # We default to a Fuzzer simulator = Fuzzer(SimulationConfig()) # Set an interrupt handler def handle_int(signal, frame): print >> sys.stderr, "Caught signal %d, stopping sdndebug" % signal if (simulator.simulation_cfg.current_simulation is not None): simulator.simulation_cfg.current_simulation.clean_up() sys.exit(0) signal.signal(signal.SIGINT, handle_int) signal.signal(signal.SIGTERM, handle_int) # Start the simulation try: simulator.simulate() finally: if (simulator.simulation_cfg.current_simulation is not None): simulator.simulation_cfg.current_simulation.clean_up()
simulator = config.control_flow else: # We default to a Fuzzer simulator = Fuzzer(SimulationConfig()) # Set an interrupt handler def handle_int(signal, frame): print >> sys.stderr, "Caught signal %d, stopping sdndebug" % signal if (simulator.simulation_cfg.current_simulation is not None): simulator.simulation_cfg.current_simulation.clean_up() sys.exit(13) signal.signal(signal.SIGINT, handle_int) signal.signal(signal.SIGTERM, handle_int) # Start the simulation try: simulator.init_results(config.results_dir) res = simulator.simulate() # TODO(cs); temporary hack: replayer returns self.simulation no a return # code if type(res) != int: res = 0 finally: if (simulator.simulation_cfg.current_simulation is not None): simulator.simulation_cfg.current_simulation.clean_up() if args.publish: exp_lifecycle.publish_results(config.exp_name, config.results_dir) sys.exit(res)