def get_jobs()

in pygenie/client.py [0:0]


    def get_jobs(self, filters=None, req_size=1000):
        """
        Get jobs. This command makes pages through results from Genie and will
        make multiple API calls until all of the results have been returned.

        Args:
            filters (dict): filter the jobs by these value(s). Valid parameters
                are id, clusterName, user, status, and tag.
            req_size (int): the number of items to return per request.

        Yields:
            dict: a job

        Examples:
            >>> [i for i in get_jobs()]
            >>> [{'id':'testjob'}, {'id':'testjob2'}]

            >>> [i for i in get_jobs(filters={'user': 'testuser'})]
            >>> [{'id': 'testcluster'}]

        """
        params = filters or {}

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

            if resp:
                for job in resp['response'].get('jobSearchResultList', []):
                    yield DotDict(job)
            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 jobs from genie [%s/%s]',
                         params['page'], resp['page']['totalPages'])