def __find()

in ad-joining/register-computer/ad/domain.py [0:0]


    def __find(self, converter, search_filter, search_base_dn, search_scope, attributes):
        # Initial paged search will yield search cookie
        self.__connection.search(
            search_filter=search_filter,
            search_base=search_base_dn,
            search_scope=search_scope,
            attributes=attributes,
            paged_size=100)

        # Retrieve page cookie
        cookie = self.__connection.result['controls']['1.2.840.113556.1.4.319']['value']['cookie']

        results = []
        for entry in self.__connection.entries:
            results.append(converter(entry))
        
        while cookie:
            self.__connection.search(
                search_filter=search_filter,
                search_base=search_base_dn,
                search_scope=search_scope,
                attributes=attributes,
                paged_size=100,
                paged_cookie=cookie)

            # Update page cookie
            cookie = self.__connection.result['controls']['1.2.840.113556.1.4.319']['value']['cookie']

            for entry in self.__connection.entries:
                results.append(converter(entry))

        return results