summaryrefslogtreecommitdiffstats
path: root/cobbler
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2007-11-16 16:09:27 -0500
committerMichael DeHaan <mdehaan@redhat.com>2007-11-16 16:09:27 -0500
commit3a1e1828c5fb1716fa07856b0744e40923133297 (patch)
tree64159d56415d1c929226f8ffa250c8ce04f2e971 /cobbler
parent7f07008198e5ec6c6d1c4e2d6809e2870b3809d0 (diff)
downloadthird_party-cobbler-3a1e1828c5fb1716fa07856b0744e40923133297.tar.gz
third_party-cobbler-3a1e1828c5fb1716fa07856b0744e40923133297.tar.xz
third_party-cobbler-3a1e1828c5fb1716fa07856b0744e40923133297.zip
Applying Ben Riggs patch to add API flag to disable triggers when adding
objects.
Diffstat (limited to 'cobbler')
-rw-r--r--cobbler/collection.py8
-rw-r--r--cobbler/collection_distros.py6
-rw-r--r--cobbler/collection_profiles.py8
-rw-r--r--cobbler/collection_repos.py8
-rw-r--r--cobbler/collection_systems.py8
5 files changed, 23 insertions, 15 deletions
diff --git a/cobbler/collection.py b/cobbler/collection.py
index 8e6be39..3f5b192 100644
--- a/cobbler/collection.py
+++ b/cobbler/collection.py
@@ -96,7 +96,7 @@ class Collection(serializable.Serializable):
item = self.factory_produce(self.config,seed_data)
self.add(item)
- def add(self,ref,with_copy=False):
+ def add(self,ref,with_copy=False,with_triggers=True):
"""
Add an object to the collection, if it's valid. Returns True
if the object was added to the collection. Returns False if the
@@ -126,7 +126,8 @@ class Collection(serializable.Serializable):
# perform filesystem operations
if with_copy:
# failure of a pre trigger will prevent the object from being added
- self._run_triggers(ref,"/var/lib/cobbler/triggers/add/%s/pre/*" % self.collection_type())
+ if with_triggers:
+ self._run_triggers(ref,"/var/lib/cobbler/triggers/add/%s/pre/*" % self.collection_type())
self.listing[ref.name.lower()] = ref
# save just this item if possible, if not, save
@@ -146,7 +147,8 @@ class Collection(serializable.Serializable):
print _("Internal error. Object type not recognized: %s") % type(ref)
# save the tree, so if neccessary, scripts can examine it.
- self._run_triggers(ref,"/var/lib/cobbler/triggers/add/%s/post/*" % self.collection_type())
+ if with_triggers:
+ self._run_triggers(ref,"/var/lib/cobbler/triggers/add/%s/post/*" % self.collection_type())
# update children cache in parent object
parent = ref.get_parent()
diff --git a/cobbler/collection_distros.py b/cobbler/collection_distros.py
index b696738..b415766 100644
--- a/cobbler/collection_distros.py
+++ b/cobbler/collection_distros.py
@@ -31,7 +31,7 @@ class Distros(collection.Collection):
"""
return distro.Distro(config).from_datastruct(seed_data)
- def remove(self,name,with_delete=True):
+ def remove(self,name,with_delete=True,with_triggers=True):
"""
Remove element named 'name' from the collection
"""
@@ -43,13 +43,13 @@ class Distros(collection.Collection):
obj = self.find(name=name)
if obj is not None:
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/distro/pre/*")
+ if with_triggers: self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/distro/pre/*")
lite_sync = action_litesync.BootLiteSync(self.config)
lite_sync.remove_single_profile(name)
del self.listing[name]
self.config.serialize_delete(self, obj)
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/distro/post/*")
+ if with_triggers: self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/distro/post/*")
return True
raise CX(_("cannot delete object that does not exist"))
diff --git a/cobbler/collection_profiles.py b/cobbler/collection_profiles.py
index b878ff9..b99ed3c 100644
--- a/cobbler/collection_profiles.py
+++ b/cobbler/collection_profiles.py
@@ -32,7 +32,7 @@ class Profiles(collection.Collection):
def factory_produce(self,config,seed_data):
return profile.Profile(config).from_datastruct(seed_data)
- def remove(self,name,with_delete=True):
+ def remove(self,name,with_delete=True,with_triggers=True):
"""
Remove element named 'name' from the collection
"""
@@ -43,13 +43,15 @@ class Profiles(collection.Collection):
obj = self.find(name=name)
if obj is not None:
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/profile/pre/*")
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/profile/pre/*")
lite_sync = action_litesync.BootLiteSync(self.config)
lite_sync.remove_single_profile(name)
del self.listing[name]
self.config.serialize_delete(self, obj)
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/profile/post/*")
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/profile/post/*")
return True
raise CX(_("cannot delete an object that does not exist"))
diff --git a/cobbler/collection_repos.py b/cobbler/collection_repos.py
index da1a3bd..efcce41 100644
--- a/cobbler/collection_repos.py
+++ b/cobbler/collection_repos.py
@@ -36,7 +36,7 @@ class Repos(collection.Collection):
"""
return repo.Repo(config).from_datastruct(seed_data)
- def remove(self,name,with_delete=True):
+ def remove(self,name,with_delete=True,with_triggers=True):
"""
Remove element named 'name' from the collection
"""
@@ -47,13 +47,15 @@ class Repos(collection.Collection):
obj = self.find(name=name)
if obj is not None:
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/repo/pre/*")
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/repo/pre/*")
del self.listing[name]
self.config.serialize_delete(self, obj)
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/repo/post/*")
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/repo/post/*")
return True
raise CX(_("cannot delete an object that does not exist"))
diff --git a/cobbler/collection_systems.py b/cobbler/collection_systems.py
index a871f9a..4821b1a 100644
--- a/cobbler/collection_systems.py
+++ b/cobbler/collection_systems.py
@@ -33,7 +33,7 @@ class Systems(collection.Collection):
"""
return system.System(config).from_datastruct(seed_data)
- def remove(self,name,with_delete=True):
+ def remove(self,name,with_delete=True,with_triggers=True):
"""
Remove element named 'name' from the collection
"""
@@ -43,13 +43,15 @@ class Systems(collection.Collection):
if obj is not None:
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/system/pre/*")
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/system/pre/*")
lite_sync = action_litesync.BootLiteSync(self.config)
lite_sync.remove_single_system(name)
del self.listing[name]
self.config.serialize_delete(self, obj)
if with_delete:
- self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/system/post/*")
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/system/post/*")
return True
raise CX(_("cannot delete an object that does not exist"))