summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/Frame.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-02-21 08:47:59 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-02-21 08:47:59 -0500
commitacb1dde9ba48b04d1ceb701ce849e96cef3d0070 (patch)
tree4754d07af191cc08dfc2be55420403fdb887ad7a /src/lib/Bcfg2/Client/Frame.py
parentd8002c666c6a450e99c9fe476a5a3dcfb23f05db (diff)
downloadbcfg2-acb1dde9ba48b04d1ceb701ce849e96cef3d0070.tar.gz
bcfg2-acb1dde9ba48b04d1ceb701ce849e96cef3d0070.tar.bz2
bcfg2-acb1dde9ba48b04d1ceb701ce849e96cef3d0070.zip
removed in-place modification of "states" dict in client tools
Diffstat (limited to 'src/lib/Bcfg2/Client/Frame.py')
-rw-r--r--src/lib/Bcfg2/Client/Frame.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/lib/Bcfg2/Client/Frame.py b/src/lib/Bcfg2/Client/Frame.py
index 3f6eef893..82512130c 100644
--- a/src/lib/Bcfg2/Client/Frame.py
+++ b/src/lib/Bcfg2/Client/Frame.py
@@ -56,6 +56,10 @@ class Frame(object):
self.dryrun = self.setup['dryrun']
self.times['initialization'] = time.time()
self.tools = []
+
+ #: A dict of the state of each entry. Keys are the entries.
+ #: Values are boolean: True means that the entry is good,
+ #: False means that the entry is bad.
self.states = {}
self.whitelist = []
self.blacklist = []
@@ -63,7 +67,7 @@ class Frame(object):
self.logger = logging.getLogger(__name__)
drivers = self.setup['drivers']
for driver in drivers[:]:
- if driver not in Bcfg2.Client.Tools.drivers and \
+ if driver not in Bcfg2.Client.Tools.__all__ and \
isinstance(driver, str):
self.logger.error("Tool driver %s is not available" % driver)
drivers.remove(driver)
@@ -263,7 +267,7 @@ class Frame(object):
self.states[entry] = False
for tool in self.tools:
try:
- tool.Inventory(self.states)
+ self.states.update(tool.Inventory())
except:
self.logger.error("%s.Inventory() call failed:" % tool.name,
exc_info=1)
@@ -382,7 +386,7 @@ class Frame(object):
if not handled:
continue
try:
- tool.Install(handled, self.states)
+ self.states.update(tool.Install(handled))
except:
self.logger.error("%s.Install() call failed:" % tool.name,
exc_info=1)
@@ -402,7 +406,7 @@ class Frame(object):
tbm = [(t, b) for t in self.tools for b in mbundles]
for tool, bundle in tbm:
try:
- tool.Inventory(self.states, [bundle])
+ self.states.update(tool.Inventory(structures=[bundle]))
except:
self.logger.error("%s.Inventory() call failed:" %
tool.name,
@@ -428,7 +432,7 @@ class Frame(object):
else:
func = tool.BundleNotUpdated
try:
- func(bundle, self.states)
+ self.states.update(func(bundle))
except:
self.logger.error("%s.%s(%s:%s) call failed:" %
(tool.name, func.im_func.func_name,
@@ -438,7 +442,7 @@ class Frame(object):
for indep in self.config.findall('.//Independent'):
for tool in self.tools:
try:
- tool.BundleNotUpdated(indep, self.states)
+ self.states.update(tool.BundleNotUpdated(indep))
except:
self.logger.error("%s.BundleNotUpdated(%s:%s) call failed:"
% (tool.name, indep.tag,