diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2007-01-23 21:37:18 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2007-01-23 21:37:18 +0000 |
commit | c241c331aed9a3541e03ab97bb644d3e92b957a7 (patch) | |
tree | cc9bff62110528141e63a8af1c3dd94442bcb4d5 | |
parent | b7eaacaef36b489a154d498cc054ebdc520c1121 (diff) | |
download | bcfg2-c241c331aed9a3541e03ab97bb644d3e92b957a7.tar.gz bcfg2-c241c331aed9a3541e03ab97bb644d3e92b957a7.tar.bz2 bcfg2-c241c331aed9a3541e03ab97bb644d3e92b957a7.zip |
Commit infrastructure for Action driver
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2711 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r-- | src/lib/Client/Frame.py | 18 | ||||
-rw-r--r-- | src/lib/Client/Tools/__init__.py | 6 |
2 files changed, 17 insertions, 7 deletions
diff --git a/src/lib/Client/Frame.py b/src/lib/Client/Frame.py index 8a1695f8a..38b65f8e8 100644 --- a/src/lib/Client/Frame.py +++ b/src/lib/Client/Frame.py @@ -183,7 +183,7 @@ class Frame: if self.modified: # Handle Bundle interdeps mods = self.modified - mbundles = [struct for struct in self.config if struct.tag == 'Bundle' and \ + mbundles = [struct for struct in self.config.findall('Bundle') if \ [mod for mod in mods if mod in struct]] if mbundles: self.logger.info("The Following Bundles have been modifed:") @@ -203,11 +203,17 @@ class Frame: for entry in clobbered]) if not self.setup['interactive']: self.DispatchInstallCalls(clobbered) - for tool, bundle in tbm: - try: - tool.BundleUpdated(bundle) - except: - self.logger.error("%s.BundleUpdated() call failed:" % (tool.__name__), exc_info=1) + + for bundle in self.config.findall('.//Bundle'): + for tool in self.tools: + try: + if bundle in mbundles: + tool.BundleUpdated(bundle) + else: + tool.BundleNotUpdated(bundle) + except: + self.logger.error("%s.BundleNotUpdated() call failed:" % \ + (tool.__name__), exc_info=1) def Remove(self): '''Remove extra entries''' diff --git a/src/lib/Client/Tools/__init__.py b/src/lib/Client/Tools/__init__.py index 62e2b52c8..142084792 100644 --- a/src/lib/Client/Tools/__init__.py +++ b/src/lib/Client/Tools/__init__.py @@ -87,7 +87,11 @@ class Tool: def BundleUpdated(self, _): '''This callback is used when bundle updates occur''' - pass + return + + def BundleNotUpdated(self, _): + '''This callback is used when a bundle is not updated''' + return def Inventory(self, structures=[]): '''Dispatch verify calls to underlying methods''' |