Пример #1
0
    def list(self,
             project=None,
             marker=None,
             limit=storage.DEFAULT_QUEUES_PER_PAGE,
             detailed=False):
        def all_pages():
            for shard in self._shard_catalog._shards_ctrl.list(limit=0):
                yield next(
                    self._shard_catalog.get_driver(
                        shard['name']).queue_controller.list(
                            project=project,
                            marker=marker,
                            limit=limit,
                            detailed=detailed))

        # make a heap compared with 'name'
        ls = heapq.merge(*[utils.keyify('name', page) for page in all_pages()])

        marker_name = {}

        # limit the iterator and strip out the comparison wrapper
        def it():
            for queue_cmp in itertools.islice(ls, limit):
                marker_name['next'] = queue_cmp.obj['name']
                yield queue_cmp.obj

        yield it()
        yield marker_name['next']
Пример #2
0
    def list(self, project=None, marker=None,
             limit=storage.DEFAULT_QUEUES_PER_PAGE, detailed=False):

        def all_pages():
            for shard in self._shard_catalog._shards_ctrl.list(limit=0):
                yield next(self._shard_catalog.get_driver(shard['name'])
                           .queue_controller.list(
                               project=project,
                               marker=marker,
                               limit=limit,
                               detailed=detailed))

        # make a heap compared with 'name'
        ls = heapq.merge(*[
            utils.keyify('name', page)
            for page in all_pages()
        ])

        marker_name = {}

        # limit the iterator and strip out the comparison wrapper
        def it():
            for queue_cmp in itertools.islice(ls, limit):
                marker_name['next'] = queue_cmp.obj['name']
                yield queue_cmp.obj

        yield it()
        yield marker_name['next']
Пример #3
0
    def list(self, project=None, marker=None, limit=None, detailed=False):
        def all_pages():
            for shard in self._shard_catalog._shards_ctrl.list(limit=0):
                yield next(
                    self._shard_catalog.get_driver(shard["name"]).queue_controller.list(
                        project=project, marker=marker, limit=limit, detailed=detailed
                    )
                )

        # make a heap compared with 'name'
        ls = heapq.merge(*[utils.keyify("name", page) for page in all_pages()])

        if limit is None:
            limit = self._shard_catalog._limits_conf.default_queue_paging

        marker_name = {}

        # limit the iterator and strip out the comparison wrapper
        def it():
            for queue_cmp in itertools.islice(ls, limit):
                marker_name["next"] = queue_cmp.obj["name"]
                yield queue_cmp.obj

        yield it()
        yield marker_name["next"]