Ejemplo n.º 1
0
# 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)
Ejemplo n.º 2
0
# 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)
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
  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)