def main(): parser = argparse.ArgumentParser( description="A web server that visualizes " "the Themis ResourceMonitor data") parser.add_argument("resource_monitor_port", help="Port that " "the ResourceMonitor listens for connections on (" "defined by the MONITOR_PORT application config " "parameter)") parser.add_argument("-d", "--debug", help="enables debug mode", default=False, action="store_true") parser.add_argument("-l", "--localaddress", default="0.0.0.0", help="HTTP local address to listen on " "(default: %(default)s)") parser.add_argument("-p", "--port", help="HTTP port to listen on (default: %(default)s)", type=int, default=8080) themis_utils.add_redis_params(parser) args = parser.parse_args() redis_client = redis.StrictRedis(host=args.redis_host, port=args.redis_port, db=args.redis_db) hosts = sorted(redis_client.smembers("nodes")) rmgui = ResourceMonitorGUI(hosts=hosts, port=int(args.resource_monitor_port), debug=args.debug) bottle.route("/")(rmgui.index) bottle.route("/node/<hostname>")(rmgui.node) try: bottle.run(host=args.localaddress, port=args.port) except socket.error, e: print e # Indicate that we can't bind, so that scripts calling this one can # handle that case specially return constants.CANNOT_BIND
def main(): parser = argparse.ArgumentParser(description="A web server that visualizes " "the Themis ResourceMonitor data") parser.add_argument("resource_monitor_port", help="Port that " "the ResourceMonitor listens for connections on (" "defined by the MONITOR_PORT application config " "parameter)") parser.add_argument("-d", "--debug", help="enables debug mode", default=False, action="store_true") parser.add_argument("-l", "--localaddress", default="0.0.0.0", help="HTTP local address to listen on " "(default: %(default)s)") parser.add_argument("-p", "--port", help="HTTP port to listen on (default: %(default)s)", type=int, default=8080) themis_utils.add_redis_params(parser) args = parser.parse_args() redis_client = redis.StrictRedis(host=args.redis_host, port=args.redis_port, db=args.redis_db) hosts = sorted(redis_client.smembers("nodes")) rmgui = ResourceMonitorGUI(hosts = hosts, port=int(args.resource_monitor_port), debug=args.debug) bottle.route("/")(rmgui.index) bottle.route("/node/<hostname>")(rmgui.node) try: bottle.run(host=args.localaddress, port=args.port) except socket.error, e: print e # Indicate that we can't bind, so that scripts calling this one can # handle that case specially return constants.CANNOT_BIND
# Wait for all gensort processes to finish. for process in gensort_processes: (stdout_data, stderr_data) = process.communicate() print "gensort instance completed with return code %d" % ( process.returncode) if process.returncode != 0: print stderr_data status = 1 return status if __name__ == "__main__": parser = argparse.ArgumentParser( description="Create a node's input files for sort workloads") utils.add_redis_params(parser) parser.add_argument("total_data_size", help="total data to produce") parser.add_argument( "method", help="Method used to generate tuples", choices=["gensort"]) parser.add_argument( "--debug", "-d", help="enable debug mode", default=False, action="store_true") parser.add_argument( "-u", "--username", help="username for whom to generate sort input " "(default: %(default)s)", default=getpass.getuser()) parser.add_argument( "--no_sudo", help="Don't create directories using sudo", action="store_true") parser.add_argument(
for process in gensort_processes: (stdout_data, stderr_data) = process.communicate() print "gensort instance completed with return code %d" % ( process.returncode) if process.returncode != 0: print stderr_data status = 1 return status if __name__ == "__main__": parser = argparse.ArgumentParser( description="Create a node's input files for sort workloads") utils.add_redis_params(parser) parser.add_argument("total_data_size", help="total data to produce") parser.add_argument("method", help="Method used to generate tuples", choices=["gensort"]) parser.add_argument("--debug", "-d", help="enable debug mode", default=False, action="store_true") parser.add_argument("-u", "--username", help="username for whom to generate sort input " "(default: %(default)s)", default=getpass.getuser())
def main(): usage_string = """<command> [args] configure_cluster.py add NODE_LIST add nodes to the cluster configure_cluster.py remove NODE_LIST remove nodes from the cluster configure_cluster.py clear remove ALL nodes from the cluster configure_cluster.py io_disks DISK_LIST set disks for input/output files configure_cluster.py intermediate_disks DISK_LIST set disks for intermediate files configure_cluster.py interfaces INTERFACE_LIST set network interfaces for inter-node communication Argument lists are SPACE-DELIMITED. """ parser = argparse.ArgumentParser( usage=usage_string) utils.add_redis_params(parser) parser.add_argument("command", help="Command to issue: add, remove, clear, " "io_disks, intermediate_disks") parser.add_argument( "arguments", nargs="*", help="Command specific arguments.") parser.add_argument( "--user", help="the username to run under " "(default: %(default)s)", default=getpass.getuser()) utils.add_interfaces_params(parser) args = parser.parse_args() command = args.command arguments = args.arguments username = args.user redis_client = redis.StrictRedis( host=args.redis_host, port=args.redis_port, db=args.redis_db) valid_commands = [ "add", "remove", "clear", "io_disks", "intermediate_disks", "interfaces"] if command not in valid_commands: print "Invalid command %s" % command print "usage:" print usage_string return 1 # Check that clear has no arguments and all other argument lists are # non-empty if command == "clear" and len(arguments) > 0: print "Command clear does not take arguments" print "usage:" print usage_string return 1 if command != "clear" and len(arguments) == 0: print "Command %s requires at least 1 argument" % command print "usage:" print usage_string return 1 if command == "add": return add_nodes(redis_client, arguments, username) elif command == "remove": return remove_nodes(redis_client, arguments) elif command == "clear": return clear_nodes(redis_client) elif command == "io_disks": return set_io_disks(redis_client, arguments) elif command == "intermediate_disks": return set_intermediate_disks(redis_client, arguments) else: assert command == "interfaces" return set_interfaces(redis_client, arguments, username)
def main(): usage_string = """<command> [args] configure_cluster.py add NODE_LIST add nodes to the cluster configure_cluster.py remove NODE_LIST remove nodes from the cluster configure_cluster.py clear remove ALL nodes from the cluster configure_cluster.py io_disks DISK_LIST set disks for input/output files configure_cluster.py intermediate_disks DISK_LIST set disks for intermediate files configure_cluster.py interfaces INTERFACE_LIST set network interfaces for inter-node communication Argument lists are SPACE-DELIMITED. """ parser = argparse.ArgumentParser(usage=usage_string) utils.add_redis_params(parser) parser.add_argument("command", help="Command to issue: add, remove, clear, " "io_disks, intermediate_disks") parser.add_argument("arguments", nargs="*", help="Command specific arguments.") parser.add_argument("--user", help="the username to run under " "(default: %(default)s)", default=getpass.getuser()) utils.add_interfaces_params(parser) args = parser.parse_args() command = args.command arguments = args.arguments username = args.user redis_client = redis.StrictRedis(host=args.redis_host, port=args.redis_port, db=args.redis_db) valid_commands = [ "add", "remove", "clear", "io_disks", "intermediate_disks", "interfaces" ] if command not in valid_commands: print "Invalid command %s" % command print "usage:" print usage_string return 1 # Check that clear has no arguments and all other argument lists are # non-empty if command == "clear" and len(arguments) > 0: print "Command clear does not take arguments" print "usage:" print usage_string return 1 if command != "clear" and len(arguments) == 0: print "Command %s requires at least 1 argument" % command print "usage:" print usage_string return 1 if command == "add": return add_nodes(redis_client, arguments, username) elif command == "remove": return remove_nodes(redis_client, arguments) elif command == "clear": return clear_nodes(redis_client) elif command == "io_disks": return set_io_disks(redis_client, arguments) elif command == "intermediate_disks": return set_intermediate_disks(redis_client, arguments) else: assert command == "interfaces" return set_interfaces(redis_client, arguments, username)