summaryrefslogtreecommitdiffstats
path: root/cobbler/remote.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2008-04-04 17:12:32 -0400
committerMichael DeHaan <mdehaan@redhat.com>2008-04-04 17:12:32 -0400
commit9337f9411092bcd3da4005fa29557f875fbf68e8 (patch)
tree0b4470c705a4e67f7cddc64540176020a8867461 /cobbler/remote.py
parentb7e606d6fe4c431c8fb95e96ac6b4c5e101f202d (diff)
downloadthird_party-cobbler-9337f9411092bcd3da4005fa29557f875fbf68e8.tar.gz
third_party-cobbler-9337f9411092bcd3da4005fa29557f875fbf68e8.tar.xz
third_party-cobbler-9337f9411092bcd3da4005fa29557f875fbf68e8.zip
Get duplicate name/ip/mac checks implemented for WebUI and XMLRPC
now that command line/local-API is done.
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):
"""