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)
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)
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)
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)
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)
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)
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)
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)
def restart_server(server_id, options_override=None): server = repository.lookup_and_validate_server(server_id) do_restart_server(server, options_override)