def search(self, search_dict, page_size=15, page=1, sortorder="asc", timelimit=None): """ This function returns the audit log as a Pagination object. :param timelimit: Only audit entries newer than this timedelta will be searched :type timelimit: timedelta """ page = int(page) page_size = int(page_size) paging_object = Paginate() paging_object.page = page paging_object.total = self.get_total(search_dict, timelimit=timelimit) if page > 1: paging_object.prev = page - 1 if paging_object.total > (page_size * page): paging_object.next = page + 1 auditIter = self.search_query(search_dict, page_size=page_size, page=page, sortorder=sortorder, timelimit=timelimit) try: le = next(auditIter) while le: # Fill the list paging_object.auditdata.append(self.audit_entry_to_dict(le)) le = next(auditIter) except StopIteration as _e: log.debug("Interation stopped.") return paging_object
def search(self, search_dict, page_size=15, page=1, sortorder="asc"): """ This function returns the audit log as a Pagination object. """ page = int(page) page_size = int(page_size) paging_object = Paginate() paging_object.page = page paging_object.total = self.get_total(search_dict) if page > 1: paging_object.prev = page - 1 if paging_object.total > (page_size * page): paging_object.next = page + 1 auditIter = self.search_query(search_dict, page_size=page_size, page=page, sortorder=sortorder) try: le = auditIter.next() while le: # Fill the list paging_object.auditdata.append(self.audit_entry_to_dict(le)) le = auditIter.next() except StopIteration: log.debug("Interation stopped.") return paging_object
def search(self, search_dict, page_size=15, page=1, sortorder="asc", timelimit=None): """ This function returns the audit log as a Pagination object. :param timelimit: Only audit entries newer than this timedelta will be searched :type timelimit: timedelta """ page = int(page) page_size = int(page_size) paging_object = Paginate() paging_object.page = page paging_object.total = self.get_total(search_dict, timelimit=timelimit) if page > 1: paging_object.prev = page - 1 if paging_object.total > (page_size * page): paging_object.next = page + 1 auditIter = self.search_query(search_dict, page_size=page_size, page=page, sortorder=sortorder, timelimit=timelimit) try: le = auditIter.next() while le: # Fill the list paging_object.auditdata.append(self.audit_entry_to_dict(le)) le = auditIter.next() except StopIteration: log.debug("Interation stopped.") return paging_object
def search(self, search_dict, page_size=15, page=1, sortorder="asc", timelimit=None): """ This function returns the audit log as a Pagination object. :param timelimit: Only audit entries newer than this timedelta will be searched :type timelimit: timedelta """ page = int(page) page_size = int(page_size) paging_object = Paginate() paging_object.page = page paging_object.total = self.get_total(search_dict, timelimit=timelimit) if page > 1: paging_object.prev = page - 1 if paging_object.total > (page_size * page): paging_object.next = page + 1 auditIter = self.search_query(search_dict, page_size=page_size, page=page, sortorder=sortorder, timelimit=timelimit) while True: try: le = next(auditIter) # Fill the list paging_object.auditdata.append(self.audit_entry_to_dict(le)) except StopIteration as _e: log.debug("Interation stopped.") break except UnicodeDecodeError as _e: # Unfortunately if one of the audit entries fails, the whole # iteration stops and we return an empty paging_object. # TODO: Check if we can return the other entries in the auditIter # or some meaningful error for the user. log.warning('Could not read audit log entry! ' 'Possible database encoding mismatch.') log.debug("{0!s}".format(traceback.format_exc())) return paging_object