diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | cobbler/remote.py | 36 |
2 files changed, 37 insertions, 0 deletions
@@ -40,6 +40,7 @@ Cobbler CHANGELOG - (BUGF) fixed web-interface editing of ownership - (BUGF) fixed web-interface editing of management classes - (BUGF) don't run full sync in import, sync makes the install system unavailable for very short periods of time +- (FEAT) XMLRPC functions for searching objects, just like the Python API has - XXX - 1.4.2 - (BUGF) fix WTI power templates 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 |