From 3a1e1828c5fb1716fa07856b0744e40923133297 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Fri, 16 Nov 2007 16:09:27 -0500 Subject: Applying Ben Riggs patch to add API flag to disable triggers when adding objects. --- cobbler/collection.py | 8 +++++--- cobbler/collection_distros.py | 6 +++--- cobbler/collection_profiles.py | 8 +++++--- cobbler/collection_repos.py | 8 +++++--- cobbler/collection_systems.py | 8 +++++--- 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")) -- cgit