summaryrefslogtreecommitdiffstats
path: root/cobbler
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2009-03-05 15:18:42 -0500
committerMichael DeHaan <mdehaan@redhat.com>2009-03-05 15:18:42 -0500
commitdbcfc5a2f0d191001cd8000a543e41eddefd20f7 (patch)
tree23b43f15e3ddf0784f471122383b035aa11cf5d5 /cobbler
parentbb022613cd7cd9fc26bd94f017dde3300fb12448 (diff)
downloadcobbler-dbcfc5a2f0d191001cd8000a543e41eddefd20f7.tar.gz
cobbler-dbcfc5a2f0d191001cd8000a543e41eddefd20f7.tar.xz
cobbler-dbcfc5a2f0d191001cd8000a543e41eddefd20f7.zip
Add XMLRPC functions for object search, just like the Python API has.
Diffstat (limited to 'cobbler')
-rw-r--r--cobbler/remote.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/cobbler/remote.py b/cobbler/remote.py
index 54befcb1..7d7c229b 100644
--- a/cobbler/remote.py
+++ b/cobbler/remote.py
@@ -588,6 +588,42 @@ class CobblerXMLRPCInterface:
self._log("get_distros",token=token)
return self.__get_all("distro",page,results_per_page)
+
+ def __find(self,find_function,criteria={},expand=False,token=None):
+ name = criteria.get("name",None)
+ if name is not None:
+ del criteria["name"]
+ if not expand:
+ data = [x.name for x in find_function(name, True, True, **criteria)]
+ else:
+ data = [x.to_datastruct() for x in find_function(name, True, True, **criteria)]
+ return self.xmlrpc_hacks(data)
+
+ def find_distro(self,criteria={},expand=False,token=None,**rest):
+ self._log("find_distro", token=token)
+ data = self.__find(self.api.find_distro,criteria,expand=expand,token=token)
+ return data
+
+ def find_profile(self,criteria={},expand=False,token=None,**rest):
+ self._log("find_profile", token=token)
+ data = self.__find(self.api.find_profile,criteria,expand=expand,token=token)
+ return data
+
+ def find_system(self,criteria={},expand=False,token=None,**rest):
+ self._log("find_system", token=token)
+ data = self.__find(self.api.find_system,criteria,expand=expand,token=token)
+ return data
+
+ def find_repo(self,criteria={},expand=False,token=None,**rest):
+ self._log("find_repo", token=token)
+ data = self.__find(self.api.find_repo,criteria,expand=expand,token=token)
+ return data
+
+ def find_image(self,criteria={},expand=False,token=None,**rest):
+ self._log("find_image", token=token)
+ data = self.__find(self.api.find_image,criteria,expand=expand,token=token)
+ return data
+
def get_distros_since(self,mtime):
"""
Return all of the distro objects that have been modified