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