def validate(self): host_conf = self.get_property("host") server_conf = self.get_property("server") # ensure that 'server' or 'host' are configured if server_conf is None and host_conf is None: msg = ("Invalid member configuration:\n%s \n" "Please set 'server' or 'host'." % document_pretty_string(self.get_document())) raise MongoctlException(msg) # validate host if set if host_conf and not is_valid_member_address(host_conf): msg = ("Invalid 'host' value in member:\n%s \n" "Please make sure 'host' is in the 'address:port' form" % document_pretty_string(self.get_document())) raise MongoctlException(msg) # validate server if set server = self.get_server() if server is None: msg = ("Invalid 'server' value in member:\n%s \n" "Please make sure 'server' is set or points to a " "valid server." % document_pretty_string(self.get_document())) raise MongoctlException(msg) repository.validate_server(server) if server.get_address() is None: raise MongoctlException("Invalid member configuration for server " "'%s'. address property is not set." % (server.id))
def open_mongo_shell_to_server(server, database=None, username=None, password=None, shell_options={}, js_files=[]): repository.validate_server(server) if not database: if isinstance(server, MongodServer) and server.is_arbiter_server(): database = "local" else: database = "admin" if username or server.needs_to_auth(database): # authenticate and grab a working username/password username, password = server.get_working_login(database, username, password) do_open_mongo_shell_to(server.get_connection_address(), database=database, username=username, password=password, server_version=server.get_mongo_version_info(), shell_options=shell_options, js_files=js_files, ssl=server.use_ssl())
def open_mongo_shell_to_server(server, database=None, username=None, password=None, shell_options=None, js_files=None): repository.validate_server(server) if not database: if isinstance(server, MongodServer) and server.is_arbiter_server(): database = "local" else: database = "admin" login_database = shell_options["authenticationDatabase"] \ if "authenticationDatabase" in shell_options else database if username or server.needs_to_auth(login_database): # authenticate and grab a working username/password username, password = server.get_working_login(login_database, username, password) do_open_mongo_shell_to(server.get_connection_address(), database=database, username=username, password=password, server_version=server.get_mongo_version_info(), shell_options=shell_options, js_files=js_files, ssl=server.use_ssl_client())
def mongo_dump_server(server, database=None, username=None, password=None, dump_options=None): repository.validate_server(server) auth_db = database or "admin" # auto complete password if possible if username: if not password and database: password = server.lookup_password(database, username) if not password: password = server.lookup_password("admin", username) do_mongo_dump(host=server.get_connection_host_address(), port=server.get_port(), database=database, username=username, password=password, version_info=server.get_mongo_version_info(), dump_options=dump_options)
def mongo_restore_server(server, source, database=None, username=None, password=None, restore_options=None): repository.validate_server(server) # auto complete password if possible if username: if not password and database: password = server.lookup_password(database, username) if not password: password = server.lookup_password("admin", username) do_mongo_restore(source, host=server.get_connection_host_address(), port=server.get_port(), database=database, username=username, password=password, server_version=server.get_mongo_version(), restore_options=restore_options)