summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2009-03-11 16:57:43 -0400
committerMichael DeHaan <mdehaan@redhat.com>2009-03-11 16:57:43 -0400
commit847384160a68b6ec419d3499613edf17515f9a1c (patch)
treea96cadcc4e918a003e34a7e3d701e34dc867bf1b
parent92dd699ee4bdef9baa742fc229a6df436adc5ba8 (diff)
downloadcobbler-847384160a68b6ec419d3499613edf17515f9a1c.tar.gz
cobbler-847384160a68b6ec419d3499613edf17515f9a1c.tar.xz
cobbler-847384160a68b6ec419d3499613edf17515f9a1c.zip
Add in a mechanism for a generic "on change" trigger, that is called on all adds/edits/removes and syncs. To be used later by our SCM integration feature, among other things.
-rw-r--r--cobbler.spec1
-rw-r--r--cobbler/action_sync.py3
-rw-r--r--cobbler/collection.py1
-rw-r--r--cobbler/collection_distros.py2
-rw-r--r--cobbler/collection_images.py2
-rw-r--r--cobbler/collection_profiles.py2
-rw-r--r--cobbler/collection_repos.py4
-rw-r--r--cobbler/collection_systems.py2
-rw-r--r--setup.py3
9 files changed, 18 insertions, 2 deletions
diff --git a/cobbler.spec b/cobbler.spec
index 73a39f14..e4ac6366 100644
--- a/cobbler.spec
+++ b/cobbler.spec
@@ -220,6 +220,7 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
%dir /var/lib/cobbler/kickstarts/
%dir /var/lib/cobbler/backup/
%dir /var/lib/cobbler/triggers
+%dir /var/lib/cobbler/triggers/change
%dir /var/lib/cobbler/triggers/add
%dir /var/lib/cobbler/triggers/add/distro
%dir /var/lib/cobbler/triggers/add/distro/pre
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py
index 78f3c3d5..76211418 100644
--- a/cobbler/action_sync.py
+++ b/cobbler/action_sync.py
@@ -141,7 +141,10 @@ class BootSync:
# run post-triggers
if self.verbose:
print "- running post-sync triggers"
+
utils.run_triggers(self.api, None, "/var/lib/cobbler/triggers/sync/post/*")
+ utils.run_triggers(self.api, None, "/var/lib/cobbler/triggers/change/*")
+
return True
def clean_trees(self):
diff --git a/cobbler/collection.py b/cobbler/collection.py
index 3bc15cc7..50c07094 100644
--- a/cobbler/collection.py
+++ b/cobbler/collection.py
@@ -284,6 +284,7 @@ class Collection(serializable.Serializable):
# save the tree, so if neccessary, scripts can examine it.
if with_triggers:
+ self._run_triggers(self.api, ref, "/var/lib/cobbler/triggers/change/*")
self._run_triggers(self.api, ref,"/var/lib/cobbler/triggers/add/%s/post/*" % self.collection_type())
diff --git a/cobbler/collection_distros.py b/cobbler/collection_distros.py
index ae75f407..bcb23a07 100644
--- a/cobbler/collection_distros.py
+++ b/cobbler/collection_distros.py
@@ -76,6 +76,8 @@ class Distros(collection.Collection):
self.log_func("deleted distro %s" % name)
if with_triggers:
self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/delete/distro/post/*")
+ self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/change/*")
+
# look through all mirrored directories and find if any directory is holding
# this particular distribution's kernel and initrd
diff --git a/cobbler/collection_images.py b/cobbler/collection_images.py
index 2dfeeac1..1bf52069 100644
--- a/cobbler/collection_images.py
+++ b/cobbler/collection_images.py
@@ -69,6 +69,8 @@ class Images(collection.Collection):
self.log_func("deleted repo %s" % name)
if with_triggers:
self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/delete/image/post/*")
+ self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/change/*")
+
return True
if with_delete and not self.api.is_cobblerd:
diff --git a/cobbler/collection_profiles.py b/cobbler/collection_profiles.py
index bb27dea4..5ca9d4be 100644
--- a/cobbler/collection_profiles.py
+++ b/cobbler/collection_profiles.py
@@ -74,6 +74,8 @@ class Profiles(collection.Collection):
self.log_func("deleted profile %s" % name)
if with_triggers:
self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/delete/profile/post/*")
+ self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/change/*")
+
if with_delete and not self.api.is_cobblerd:
self.api._internal_cache_update("profile", name, remove=True)
diff --git a/cobbler/collection_repos.py b/cobbler/collection_repos.py
index 3b2c1c20..eef82b8c 100644
--- a/cobbler/collection_repos.py
+++ b/cobbler/collection_repos.py
@@ -65,7 +65,9 @@ class Repos(collection.Collection):
self.log_func("deleted repo %s" % name)
if with_triggers:
self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/delete/repo/post/*")
-
+ self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/change/*")
+
+
path = "/var/www/cobbler/repo_mirror/%s" % obj.name
if os.path.exists(path):
utils.rmtree(path)
diff --git a/cobbler/collection_systems.py b/cobbler/collection_systems.py
index 5a628248..16576802 100644
--- a/cobbler/collection_systems.py
+++ b/cobbler/collection_systems.py
@@ -62,7 +62,9 @@ class Systems(collection.Collection):
self.log_func("deleted system %s" % name)
if with_triggers:
self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/delete/system/post/*")
+ self._run_triggers(self.config.api, obj, "/var/lib/cobbler/triggers/change/*")
+
if with_delete and not self.api.is_cobblerd:
self.api._internal_cache_update("system", name, remove=True)
diff --git a/setup.py b/setup.py
index 5d6b3b35..c84b65b6 100644
--- a/setup.py
+++ b/setup.py
@@ -354,7 +354,8 @@ if __name__ == "__main__":
("%s/install/pre" % trigpath, []),
("%s/install/post" % trigpath, []),
("%s/sync/pre" % trigpath, []),
- ("%s/sync/post" % trigpath, [])
+ ("%s/sync/post" % trigpath, []),
+ ("%s/change" % trigpath, [])
],
description = SHORT_DESC,
long_description = LONG_DESC