def mongo_restore_db_address(db_address, source, username=None, password=None, restore_options=None): if is_mongo_uri(db_address): mongo_restore_uri(db_address, source, username, password, restore_options) return # db_address is an id string id_path = db_address.split("/") id = id_path[0] database = id_path[1] if len(id_path) == 2 else None server = repository.lookup_server(id) if server: mongo_restore_server(server, source, database=database, username=username, password=password, restore_options=restore_options) return else: cluster = repository.lookup_cluster(id) if cluster: mongo_restore_cluster(cluster, source, database=database, username=username, password=password, restore_options=restore_options) return raise MongoctlException("Unknown db address '%s'" % db_address)
def open_mongo_shell_to(db_address, username=None, password=None, shell_options={}, js_files=[]): if is_mongo_uri(db_address): open_mongo_shell_to_uri(db_address, username, password, shell_options, js_files) return # db_address is an id string id_path = db_address.split("/") id = id_path[0] database = id_path[1] if len(id_path) == 2 else None server = repository.lookup_server(id) if server: open_mongo_shell_to_server(server, database, username, password, shell_options, js_files) return # Maybe cluster? cluster = repository.lookup_cluster(id) if cluster: open_mongo_shell_to_cluster(cluster, database, username, password, shell_options, js_files) return # Unknown destination raise MongoctlException("Unknown db address '%s'" % db_address)
def mongo_dump_db_address(db_address, username=None, password=None, use_best_secondary=False, max_repl_lag=None, dump_options=None): if is_mongo_uri(db_address): mongo_dump_uri(uri=db_address, username=username, password=password, use_best_secondary=use_best_secondary, dump_options=dump_options) return # db_address is an id string id_path = db_address.split("/") id = id_path[0] database = id_path[1] if len(id_path) == 2 else None server = repository.lookup_server(id) if server: mongo_dump_server(server, database=database, username=username, password=password, dump_options=dump_options) return else: cluster = repository.lookup_cluster(id) if cluster: mongo_dump_cluster(cluster, database=database, username=username, password=password, use_best_secondary=use_best_secondary, max_repl_lag=max_repl_lag, dump_options=dump_options) return # Unknown destination raise MongoctlException("Unknown db address '%s'" % db_address)
def open_mongo_shell_to(db_address, username=None, password=None, shell_options=None, js_files=None): if is_mongo_uri(db_address): open_mongo_shell_to_uri(db_address, username, password, shell_options, js_files) return # db_address is an id string id_path = db_address.split("/") id = id_path[0] database = id_path[1] if len(id_path) == 2 else None server = repository.lookup_server(id) if server: open_mongo_shell_to_server(server, database, username, password, shell_options, js_files) return # Maybe cluster? cluster = repository.lookup_cluster(id) if cluster: open_mongo_shell_to_cluster(cluster, database, username, password, shell_options, js_files) return # Unknown destination raise MongoctlException("Unknown db address '%s'" % db_address)
def mongo_restore_db_address(db_address, source, username=None, password=None, parsed_options=None): if is_mongo_uri(db_address): mongo_restore_uri(db_address, source, username, password, parsed_options=parsed_options) return # db_address is an id string id_path = db_address.split("/") id = id_path[0] database = id_path[1] if len(id_path) == 2 else None server = repository.lookup_server(id) if server: mongo_restore_server(server, source, database=database, username=username, password=password, parsed_options=parsed_options) return else: cluster = repository.lookup_cluster(id) if cluster: mongo_restore_cluster(cluster, source, database=database, username=username, password=password, parsed_options=parsed_options) return raise MongoctlException("Unknown db address '%s'" % db_address)
def is_db_address(value): """ Checks if the specified value is a valid mongoctl database address """ return value and (is_mongo_uri(value) or is_server_or_cluster_db_address(value))