diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2007-10-31 14:28:48 -0400 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2007-10-31 14:28:48 -0400 |
commit | 850ebbce022c688d1924c64fa6dc28a6b85d5647 (patch) | |
tree | 13a0bca77904e244303a2026b00dfc1cf76fdc92 /cobbler | |
parent | 83a3ce6e077b682a7a753e33009be539f54c6321 (diff) | |
download | third_party-cobbler-850ebbce022c688d1924c64fa6dc28a6b85d5647.tar.gz third_party-cobbler-850ebbce022c688d1924c64fa6dc28a6b85d5647.tar.xz third_party-cobbler-850ebbce022c688d1924c64fa6dc28a6b85d5647.zip |
Pagination on systems page complete.
Diffstat (limited to 'cobbler')
-rw-r--r-- | cobbler/remote.py | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/cobbler/remote.py b/cobbler/remote.py index a871e22..7b92a17 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -85,19 +85,32 @@ class CobblerXMLRPCInterface: Supports pagination for WUI or TUI based interfaces. """ + # FIXME: a global lock or module around data access loading # would be useful for non-db backed storage + data = self.api.deserialize_raw(collection_name) + total_items = len(data) data.sort(self.__sorter) if page is not None and results_per_page is not None: - if type(page) != int or page < 0: + page = int(page) + results_per_page = int(results_per_page) + self.logger.debug("PAGE = %s" % page) + self.logger.debug("RPP = %s" % results_per_page) + if page < 0: return [] - if type(results_per_page) != int or results_per_page <= 0: + if results_per_page <= 0: return [] start_point = (results_per_page * page) - end_point = (results_per_page * page) + (results_per_page - 1) - data = data[start_point:end_point] + end_point = (results_per_page * page) + results_per_page + self.logger.debug("START = %s" % start_point) + self.logger.debug("END = %s" % end_point) + if start_point > total_items: + start_point = total_items - 1 # correct ??? + if end_point > total_items: + end_point = total_items + data = self._fix_none(data[start_point:end_point]) return self._fix_none(data) @@ -145,25 +158,25 @@ class CobblerXMLRPCInterface: """ return self.api.version() - def get_distros(self,token=None,page=None,results_per_page=None): + def get_distros(self,page=None,results_per_page=None,token=None): """ Returns all cobbler distros as an array of hashes. """ return self.__get_all("distro",page,results_per_page) - def get_profiles(self,token=None,page=None,results_per_page=None): + def get_profiles(self,page=None,results_per_page=None,token=None): """ Returns all cobbler profiles as an array of hashes. """ return self.__get_all("profile",page,results_per_page) - def get_systems(self,token=None,page=None,results_per_page=None): + def get_systems(self,page=None,results_per_page=None,token=None): """ Returns all cobbler systems as an array of hashes. """ return self.__get_all("system",page,results_per_page) - def get_repos(self,token=None,page=None,results_per_page=None): + def get_repos(self,page=None,results_per_page=None,token=None): """ Returns all cobbler repos as an array of hashes. """ |