Ejemplo n.º 1
0
    def reindex(self):
        """ pass usernames/store-ids given on command-line to running search process """

        store_guids = []

        if not (self.options.users or self.options.stores):
            print("no user/store specified (use -u/-S)", file=sys.stderr)
            sys.exit(1)

        for username in self.options.users:
            user = self.server.get_user(username)
            if not user:
                print("no such user: %s" % username, file=sys.stderr)
                sys.exit(1)
            elif user.store:
                store_guids.append(user.store.guid)

        for store_guid in self.options.stores:
            store = self.server.get_store(store_guid)
            if not store:
                print("no such store: %s" % store_guid, file=sys.stderr)
                sys.exit(1)
            else:
                store_guids.append(store.guid)

        for store_guid in store_guids:
            with closing(
                    kopano.client_socket(
                        self.config['server_bind_name'],
                        ssl_cert=self.config['ssl_certificate_file'])) as s:
                s.sendall((u'REINDEX %s\r\n' % store_guid).encode('ascii'))
                s.recv(1024)
Ejemplo n.º 2
0
 def do_cmd(self, cmd):
     try:
         with closing(kopano.client_socket(self.config['server_bind_name'], ssl_cert=self.config['ssl_certificate_file'])) as s:
             s.sendall(cmd.encode())
             m = s.makefile()
             line = m.readline()
             if not line.startswith('OK'):
                 print('kopano-msr returned an error. please check log.', file=sys.stderr)
                 sys.exit(1)
             for line in m:
                 print(line.rstrip())
     except OSError as e:
         print('could not connect to msr socket (%s)' % e)
         sys.exit(1)
Ejemplo n.º 3
0
 def cmd_list(self):
     with closing(
             kopano.client_socket(
                 self.config['server_bind_name'],
                 ssl_cert=self.config['ssl_certificate_file'])) as s:
         s.sendall(('LIST\r\n').encode())
         m = s.makefile()
         data = m.readline()
         if not data.startswith('OK:'):
             print('kopano-msr returned an error. please check log.',
                   file=sys.stderr)
             sys.exit(1)
         for word in data.split()[1:]:
             print(word.replace(':', ' '))
Ejemplo n.º 4
0
    def reindex(self):
        """ pass usernames/store-ids given on command-line to running search process """

        for key in self.options.reindex: # usernames supported for convenience/backward compatibility
            store = self.server.get_store(key)
            if not store:
                user = self.server.get_user(key)
                if user:
                    store = user.store
            if store: # XXX check all keys first
                with closing(kopano.client_socket(self.config['server_bind_name'], ssl_cert=self.config['ssl_certificate_file'])) as s:
                    s.sendall('REINDEX %s\r\n' % store.guid)
                    s.recv(1024)
            else:
                print("no such user/store: %s" % key)
                sys.exit(1)
Ejemplo n.º 5
0
    def cmd_remove(self, options):
        if len(options.users) != 1:
            print("please specify single user to remove", file=sys.stderr)
            sys.exit(1)

        username = options.users[0]

        with closing(
                kopano.client_socket(
                    self.config['server_bind_name'],
                    ssl_cert=self.config['ssl_certificate_file'])) as s:
            s.sendall(('REMOVE %s\r\n' % username).encode())
            m = s.makefile()
            data = m.readline()
            if not data.startswith('OK'):
                print('kopano-msr returned an error. please check log.',
                      file=sys.stderr)
                sys.exit(1)
Ejemplo n.º 6
0
    def cmd_add(self, options):  # TODO merge common
        if len(options.users) != 1:
            print("please specify single user to add", file=sys.stderr)
            sys.exit(1)

        username = options.users[0]
        targetname = options.target

        for name in (username, targetname):
            if not self.server.get_user(name):
                print("no such user: %s" % name, file=sys.stderr)
                sys.exit(1)

        with closing(
                kopano.client_socket(
                    self.config['server_bind_name'],
                    ssl_cert=self.config['ssl_certificate_file'])) as s:
            s.sendall(('ADD %s %s\r\n' % (username, targetname)).encode())
            m = s.makefile()
            data = m.readline()
            if not data.startswith('OK'):
                print('kopano-msr returned an error. please check log.',
                      file=sys.stderr)
                sys.exit(1)