summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2007-01-23 21:37:18 +0000
committerNarayan Desai <desai@mcs.anl.gov>2007-01-23 21:37:18 +0000
commitc241c331aed9a3541e03ab97bb644d3e92b957a7 (patch)
treecc9bff62110528141e63a8af1c3dd94442bcb4d5
parentb7eaacaef36b489a154d498cc054ebdc520c1121 (diff)
downloadbcfg2-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.py18
-rw-r--r--src/lib/Client/Tools/__init__.py6
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'''