summaryrefslogtreecommitdiffstats
path: root/cobbler/remote.py
diff options
context:
space:
mode:
Diffstat (limited to 'cobbler/remote.py')
-rw-r--r--cobbler/remote.py31
1 files changed, 23 insertions, 8 deletions
diff --git a/cobbler/remote.py b/cobbler/remote.py
index ed3cc53..d9f937b 100644
--- a/cobbler/remote.py
+++ b/cobbler/remote.py
@@ -810,41 +810,56 @@ class CobblerReadWriteXMLRPCInterface(CobblerXMLRPCInterface):
found = self.api.repos().find(name)
return self.__store_object(found)
- def save_distro(self,object_id,token):
+ def save_distro(self,object_id,token,editmode="bypass"):
"""
Saves a newly created or modified distro object to disk.
"""
self.log("save_distro",object_id=object_id,token=token)
obj = self.__get_object(object_id)
self.check_access(token,"save_distro",obj)
- return self.api.distros().add(obj,save=True)
+ if editmode == "new":
+ return self.api.distros().add(obj,save=True,check_for_duplicate_names=True)
+ else:
+ return self.api.distros().add(obj,save=True)
- def save_profile(self,object_id,token):
+ def save_profile(self,object_id,token,editmode="bypass"):
"""
Saves a newly created or modified profile object to disk.
"""
self.log("save_profile",token=token,object_id=object_id)
obj = self.__get_object(object_id)
self.check_access(token,"save_profile",obj)
- return self.api.profiles().add(obj,save=True)
+ if editmode == "new":
+ return self.api.profiles().add(obj,save=True,check_for_duplicate_names=True)
+ else:
+ return self.api.profiles().add(obj,save=True)
- def save_system(self,object_id,token):
+ def save_system(self,object_id,token,editmode="bypass"):
"""
Saves a newly created or modified system object to disk.
"""
self.log("save_system",token=token,object_id=object_id)
obj = self.__get_object(object_id)
self.check_access(token,"save_system",obj)
- return self.api.systems().add(obj,save=True)
+ if editmode == "new":
+ return self.api.systems().add(obj,save=True,check_for_duplicate_names=True,check_for_duplicate_netinfo=True)
+ elif editmode == "edit":
+ return self.api.systems().add(obj,save=True,check_for_duplicate_netinfo=True)
+ else:
+ return self.api.systems().add(obj,save=True)
+
- def save_repo(self,object_id,token=None):
+ def save_repo(self,object_id,token=None,editmode="bypass"):
"""
Saves a newly created or modified repo object to disk.
"""
self.log("save_repo",object_id=object_id,token=token)
obj = self.__get_object(object_id)
self.check_access(token,"save_repo",obj)
- return self.api.repos().add(obj,save=True)
+ if editmode == "new":
+ return self.api.repos().add(obj,save=True,check_for_duplicate_names=True)
+ else:
+ return self.api.repos().add(obj,save=True)
def copy_distro(self,object_id,newname,token=None):
"""