def do(): logging.info("Going to drop packets from %s for %d seconds..." % (repr(daemons), seconds)) # Figure out what ports the daemons are listening on all_ports = [] for daemon in daemons: pid = procutils.find_jvm(daemon) if not pid: logging.warn("Daemon %s not running!" % daemon) continue ports = procutils.get_listening_ports(pid) logging.info("%s is listening on ports: %s" % (daemon, repr(ports))) all_ports.extend(ports) if not all_ports: logging.warn("No ports found for daemons: %s. Skipping fault." % repr(daemons)) return # Set up a chain to drop the packets chain = iptables.create_gremlin_chain(all_ports) logging.info("Created iptables chain: %s" % chain) iptables.add_user_chain_to_input_chain(chain) logging.info("Gremlin chain %s installed, sleeping %d seconds" % (chain, seconds)) time.sleep(seconds) logging.info("Removing gremlin chain %s" % chain) iptables.remove_user_chain_from_input_chain(chain) iptables.delete_user_chain(chain) logging.info("Removed gremlin chain %s" % chain)
def do(): # Stop all daemons, record their pids for jvm_name in jvm_names: pid = procutils.find_jvm(jvm_name) if not pid: logging.warn("No pid found for %s" % jvm_name) continue logging.warn("Suspending %s pid %d for %d seconds" % (jvm_name, pid, seconds)) os.kill(pid, signal.SIGSTOP) # Pause for prescribed amount of time time.sleep(seconds) # Resume them for jvm_name in jvm_names: pid = procutils.find_jvm(jvm_name) if pid: logging.warn("Resuming %s pid %d" % (jvm_name, pid)) os.kill(pid, signal.SIGCONT)
def do(): # First kill for daemon in daemons: pid = procutils.find_jvm(daemon) if pid: logging.info("Killing %s pid %d with signal %d" % (daemon, pid, signal)) os.kill(pid, signal) else: logging.info("There was no %s running!" % daemon) logging.info("Sleeping for %d seconds" % restart_after) time.sleep(restart_after) for daemon in daemons: logging.info("Restarting %s" % daemon); procutils.start_daemon(daemon)
def do(): # First kill for daemon in daemons: pid = procutils.find_jvm(daemon) if pid: logging.info("Killing %s pid %d with signal %d" % (daemon, pid, signal)) os.kill(pid, signal) else: logging.info("There was no %s running!" % daemon) logging.info("Sleeping for %d seconds" % restart_after) time.sleep(restart_after) for daemon in daemons: logging.info("Restarting %s" % daemon) procutils.start_daemon(daemon)