示例#1
0
def restart_command(parsed_options):
    server_id = parsed_options.server
    server = repository.lookup_and_validate_server(server_id)

    options_override = extract_server_options(server, parsed_options)

    restart_server(parsed_options.server, options_override)
示例#2
0
def restart_command(parsed_options):
    server_id = parsed_options.server
    server = repository.lookup_and_validate_server(server_id)

    options_override = extract_server_options(server, parsed_options)

    restart_server(parsed_options.server, options_override)
示例#3
0
def configure_cluster(cluster, force_primary_server_id=None):
    force_primary_server = None
    # validate force primary
    if force_primary_server_id:
        force_primary_server = \
            repository.lookup_and_validate_server(force_primary_server_id)

    configure_replica_cluster(cluster,
                              force_primary_server=force_primary_server)
示例#4
0
def configure_cluster(cluster, force_primary_server_id=None):
    force_primary_server = None
    # validate force primary
    if force_primary_server_id:
        force_primary_server = \
            repository.lookup_and_validate_server(force_primary_server_id)

    configure_replica_cluster(cluster,
                              force_primary_server=force_primary_server)
示例#5
0
def stop_command(parsed_options):
    server_id = parsed_options.server
    server = repository.lookup_and_validate_server(server_id)

    username = None
    password = None
    if hasattr(parsed_options, "username"):
        username = parsed_options.username
    if hasattr(parsed_options, "password"):
        password = parsed_options.password

    stop_server(server, force=parsed_options.forceStop, username=username, password=password)
示例#6
0
def start_command(parsed_options):
    server_id = parsed_options.server
    server = repository.lookup_and_validate_server(server_id)
    options_override = extract_server_options(server, parsed_options)

    rs_add = parsed_options.rsAdd or parsed_options.rsAddNoInit
    if parsed_options.dryRun:
        dry_run_start_server_cmd(server, options_override)
    else:
        start_server(server,
                     options_override=options_override,
                     rs_add=rs_add,
                     no_init=parsed_options.rsAddNoInit)
示例#7
0
def start_command(parsed_options):
    server_id = parsed_options.server
    server = repository.lookup_and_validate_server(server_id)
    options_override = extract_server_options(server, parsed_options)

    rs_add = parsed_options.rsAdd or parsed_options.rsAddNoInit
    if parsed_options.dryRun:
        dry_run_start_server_cmd(server, options_override)
    else:
        start_server(server,
                     options_override=options_override,
                     rs_add=rs_add,
                     no_init=parsed_options.rsAddNoInit)
示例#8
0
def start_command(parsed_options):
    server_id = parsed_options.server
    server = repository.lookup_and_validate_server(server_id)
    options_override = extract_server_options(server, parsed_options)
    # apply overrides to server's cmd options (in memory only)
    if options_override:
        server.apply_cmd_options_overrides(options_override)

    rs_add = parsed_options.rsAdd or parsed_options.rsAddNoInit
    if parsed_options.dryRun:
        dry_run_start_server_cmd(server, options_override=options_override,
                                 standalone=parsed_options.standalone)
    else:
        start_server(server,
                     options_override=options_override,
                     rs_add=rs_add,
                     no_init=parsed_options.rsAddNoInit,
                     standalone=parsed_options.standalone)
示例#9
0
def start_command(parsed_options):
    server_id = parsed_options.server
    server = repository.lookup_and_validate_server(server_id)
    options_override = extract_server_options(server, parsed_options)
    # apply overrides to server's cmd options (in memory only)
    if options_override:
        server.apply_cmd_options_overrides(options_override)

    rs_add = parsed_options.rsAdd or parsed_options.rsAddNoInit
    if parsed_options.dryRun:
        dry_run_start_server_cmd(server, options_override=options_override,
                                 standalone=parsed_options.standalone)
    else:
        start_server(server,
                     options_override=options_override,
                     rs_add=rs_add,
                     no_init=parsed_options.rsAddNoInit,
                     standalone=parsed_options.standalone)
示例#10
0
def start_command(parsed_options):
    # Obtain the server id from the command line
    server_id = parsed_options.server
    """
        Search the server specification in the configuration file
        server is in the type of mongos or mongod
    """
    server = repository.lookup_and_validate_server(server_id)
    # Get options for this server from command line, which can override the options in the config file
    options_override = extract_server_options(server, parsed_options)

    rs_add = parsed_options.rsAdd or parsed_options.rsAddNoInit
    if parsed_options.dryRun:
        dry_run_start_server_cmd(server, options_override)
    else:
        start_server(server,
                     options_override=options_override,
                     rs_add=rs_add,
                     no_init=parsed_options.rsAddNoInit)
示例#11
0
def resync_secondary(server_id):

    server = repository.lookup_and_validate_server(server_id)
    server.validate_local_op("resync-secondary")

    log_info("Checking if server '%s' is secondary..." % server_id)
    # get the server status
    status = server.get_status(admin=True)
    if not status["connection"]:
        msg = "Server '%s' does not seem to be running. For more details," " run 'mongoctl status %s'" % (
            server_id,
            server_id,
        )
        raise MongoctlException(msg)
    elif "error" in status:
        msg = (
            "There was an error while connecting to server '%s' (error:%s)."
            " For more details, run 'mongoctl status %s'" % (server_id, status["error"], server_id)
        )
        raise MongoctlException(msg)

    rs_state = None
    if "selfReplicaSetStatusSummary" in status:
        rs_state = status["selfReplicaSetStatusSummary"]["stateStr"]

    if rs_state not in ["SECONDARY", "RECOVERING"]:
        msg = (
            "Server '%s' is not a secondary member or cannot be determined"
            " as secondary (stateStr='%s'. For more details, run 'mongoctl"
            " status %s'" % (server_id, rs_state, server_id)
        )
        raise MongoctlException(msg)

    do_stop_server(server)

    log_info("Deleting server's '%s' dbpath '%s'..." % (server_id, server.get_db_path()))

    shutil.rmtree(server.get_db_path())

    do_start_server(server)
示例#12
0
def resync_secondary(server_id):

    server = repository.lookup_and_validate_server(server_id)
    server.validate_local_op("resync-secondary")

    log_info("Checking if server '%s' is secondary..." % server_id)
    # get the server status
    status = server.get_status(admin=True)
    if not status['connection']:
        msg = ("Server '%s' does not seem to be running. For more details,"
               " run 'mongoctl status %s'" % (server_id, server_id))
        raise MongoctlException(msg)
    elif 'error' in status:
        msg = ("There was an error while connecting to server '%s' (error:%s)."
               " For more details, run 'mongoctl status %s'" %
               (server_id, status['error'], server_id))
        raise MongoctlException(msg)

    rs_state = None
    if 'selfReplicaSetStatusSummary' in status:
        rs_state = status['selfReplicaSetStatusSummary']['stateStr']

    if rs_state not in ['SECONDARY', 'RECOVERING']:
        msg = ("Server '%s' is not a secondary member or cannot be determined"
               " as secondary (stateStr='%s'. For more details, run 'mongoctl"
               " status %s'" % (server_id, rs_state, server_id))
        raise MongoctlException(msg)

    do_stop_server(server)

    log_info("Deleting server's '%s' dbpath '%s'..." %
             (server_id, server.get_db_path()))

    shutil.rmtree(server.get_db_path())

    do_start_server(server)
示例#13
0
def restart_server(server_id, options_override=None):
    server = repository.lookup_and_validate_server(server_id)
    do_restart_server(server, options_override)
示例#14
0
def restart_server(server_id, options_override=None):
    server = repository.lookup_and_validate_server(server_id)
    do_restart_server(server, options_override)