summaryrefslogtreecommitdiffstats
path: root/cobbler/remote.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2007-10-31 14:28:48 -0400
committerMichael DeHaan <mdehaan@redhat.com>2007-10-31 14:28:48 -0400
commit850ebbce022c688d1924c64fa6dc28a6b85d5647 (patch)
tree13a0bca77904e244303a2026b00dfc1cf76fdc92 /cobbler/remote.py
parent83a3ce6e077b682a7a753e33009be539f54c6321 (diff)
downloadthird_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/remote.py')
-rw-r--r--cobbler/remote.py29
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.
"""