diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2008-01-22 17:48:30 -0500 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2008-01-22 17:48:30 -0500 |
commit | 740fb8f83c5e37b72a08b216c442528e68268b4a (patch) | |
tree | e768c8bc19aad9a00e657114335153aca990ab86 /cobbler/remote.py | |
parent | a2d760b7369059731a6cfbe673e117a553511a20 (diff) | |
download | third_party-cobbler-740fb8f83c5e37b72a08b216c442528e68268b4a.tar.gz third_party-cobbler-740fb8f83c5e37b72a08b216c442528e68268b4a.tar.xz third_party-cobbler-740fb8f83c5e37b72a08b216c442528e68268b4a.zip |
Add rename and copy functionality to the base API, the remote interface, and make the WebUI use it for much smarter renames and copies.
Diffstat (limited to 'cobbler/remote.py')
-rw-r--r-- | cobbler/remote.py | 81 |
1 files changed, 69 insertions, 12 deletions
diff --git a/cobbler/remote.py b/cobbler/remote.py index c00cbf3..c65bd83 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -761,6 +761,63 @@ class CobblerReadWriteXMLRPCInterface(CobblerXMLRPCInterface): obj = self.__get_object(object_id) return self.api.repos().add(obj,save=True) + def copy_distro(self,object_id,newname,token=None): + """ + All copy methods are pretty much the same. Get an object handle, pass in the new + name for it. + """ + self.log("copy_distro",object_id=object_id,token=token) + self.check_access(token,"copy_distro") + obj = self.__get_object(object_id) + return self.api.copy_distro(obj,newname) + + def copy_profile(self,object_id,token=None): + self.log("copy_profile",object_id=object_id,token=token) + self.check_access(token,"copy_profile") + obj = self.__get_object(object_id) + return self.api.copy_profile(obj,newname) + + def copy_system(self,object_id,token=None): + self.log("copy_system",object_id=object_id,token=token) + self.check_access(token,"copy_system") + obj = self.__get_object(object_id) + return self.api.copy_system(obj,newname) + + def copy_repo(self,object_id,token=None): + self.log("copy_repo",object_id=object_id,token=token) + self.check_access(token,"copy_repo") + obj = self.__get_object(object_id) + return self.api.copy_repo(obj,newname) + + def rename_distro(self,object_id,newname,token=None): + """ + All rename methods are pretty much the same. Get an object handle, pass in a new + name for it. Rename will modify dependencies to point them at the new + object. + """ + self.log("rename_distro",object_id=object_id,token=token) + self.check_access(token,"copy_repo") + obj = self.__get_object(object_id) + return self.api.rename_distro(obj,newname) + + def rename_profile(self,object_id,newname,token=None): + self.log("rename_profile",object_id=object_id,token=token) + self.check_access(token,"rename_profile") + obj = self.__get_object(object_id) + return self.api.rename_profile(obj,newname) + + def rename_system(self,object_id,newname,token=None): + self.log("rename_system",object_id=object_id,token=token) + self.check_access(token,"rename_system") + obj = self.__get_object(object_id) + return self.api.rename_system(obj,newname) + + def rename_repo(self,object_id,newname,token=None): + self.log("rename_repo",object_id=object_id,token=token) + self.check_access(token,"rename_repo") + obj = self.__get_object(object_id) + return self.api.rename_repo(obj,newname) + def __call_method(self, obj, attribute, arg): """ Internal function used by the modify routines. @@ -806,43 +863,43 @@ class CobblerReadWriteXMLRPCInterface(CobblerXMLRPCInterface): obj = self.__get_object(object_id) return self.__call_method(obj, attribute, arg) - def distro_remove(self,name,token): + def remove_distro(self,name,token): """ Deletes a distro from a collection. Note that this just requires the name of the distro, not a handle. """ - self.log("distro_remove",name=name,token=token) - self.check_access(token, "distro_remove", name) + self.log("remove_distro",name=name,token=token) + self.check_access(token, "remove_distro", name) rc = self.api._config.distros().remove(name) return rc - def profile_remove(self,name,token): + def remove_profile(self,name,token): """ Deletes a profile from a collection. Note that this just requires the name of the profile, not a handle. """ - self.log("profile_remove",name=name,token=token) - self.check_access(token, "profile_remove", name) + self.log("remove_profile",name=name,token=token) + self.check_access(token, "remove_profile", name) rc = self.api._config.profiles().remove(name) return rc - def system_remove(self,name,token): + def remove_system(self,name,token): """ Deletes a system from a collection. Note that this just requires the name of the system, not a handle. """ - self.log("system_remove",name=name,token=token) - self.check_access(token, "system_remove", name) + self.log("remove_system",name=name,token=token) + self.check_access(token, "remove_system", name) rc = self.api._config.systems().remove(name) return rc - def repo_remove(self,name,token): + def remove_repo(self,name,token): """ Deletes a repo from a collection. Note that this just requires the name of the repo, not a handle. """ - self.log("repo_remove",name=name,token=token) - self.check_access(token, "repo_remove", name) + self.log("remove_repo",name=name,token=token) + self.check_access(token, "remove_repo", name) rc = self.api._config.repos().remove(name) return rc |