diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2009-03-11 16:57:43 -0400 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2009-03-11 16:57:43 -0400 |
commit | 847384160a68b6ec419d3499613edf17515f9a1c (patch) | |
tree | a96cadcc4e918a003e34a7e3d701e34dc867bf1b | |
parent | 92dd699ee4bdef9baa742fc229a6df436adc5ba8 (diff) | |
download | cobbler-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.spec | 1 | ||||
-rw-r--r-- | cobbler/action_sync.py | 3 | ||||
-rw-r--r-- | cobbler/collection.py | 1 | ||||
-rw-r--r-- | cobbler/collection_distros.py | 2 | ||||
-rw-r--r-- | cobbler/collection_images.py | 2 | ||||
-rw-r--r-- | cobbler/collection_profiles.py | 2 | ||||
-rw-r--r-- | cobbler/collection_repos.py | 4 | ||||
-rw-r--r-- | cobbler/collection_systems.py | 2 | ||||
-rw-r--r-- | setup.py | 3 |
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) @@ -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 |