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