def get_clusters()

in pygenie/client.py [0:0]


    def get_clusters(self, filters=None, req_size=1000):
        """
        Get all of the clusters.

        Note:
            This function takes advantage of Genie's paging process. It will
            make all of the additional calls required until it retrieves all
            of the commands in the Genie cluster.

        Args:
            filters (optional[dict]): a dictionary of filters to use. Valid key parameters
                are: name, status, tag
            req_size (int): the number of items to return per request.

        Yields:
            dict: a cluster configuration

        Examples:
            >>> [i for i in get_clusters()]
            >>> [{...}, {...}, {...}]

            >>> [i for i in get_clusters(filters={'status':'UP'})]
            >>> [{...}, {...}, {...}]

        """
        params = filters or {}
        _verify_filters(params, ['name', 'size', 'status', 'tag', 'page'])

        # Iterate through any responses until we get to the end
        params['page'] = 0
        params['size'] = req_size
        while True:
            resp = self.call(self.path_cluster, method='GET', params=params)

            if resp:
                for cluster in resp['response'].get('clusterList', []):
                    yield DotDict(cluster)
            else:
                yield None

            # Break if we're at the end
            if (resp['page']['totalPages']) <= (resp['page']['number'] + 1):
                break

            # On to the next iteration
            params['page'] += 1
            logger.info('Fetching additional clusters from genie [%s/%s]',
                         params['page'], resp['page']['totalPages'])