diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2007-02-02 20:22:43 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2007-02-02 20:22:43 +0000 |
commit | bedb27cb29c9887b4340fdaff5a3975757a5da11 (patch) | |
tree | 5156bcb3a3e1f2a0a717de5fafb2c1e35867a111 /src/lib/Client/Frame.py | |
parent | af40c63767af1168e8277fa9b68a35ca9c89bfee (diff) | |
download | bcfg2-bedb27cb29c9887b4340fdaff5a3975757a5da11.tar.gz bcfg2-bedb27cb29c9887b4340fdaff5a3975757a5da11.tar.bz2 bcfg2-bedb27cb29c9887b4340fdaff5a3975757a5da11.zip |
Clean up tool driver conflict code
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2769 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Client/Frame.py')
-rw-r--r-- | src/lib/Client/Frame.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/lib/Client/Frame.py b/src/lib/Client/Frame.py index 879ab0be2..b51b5d7ca 100644 --- a/src/lib/Client/Frame.py +++ b/src/lib/Client/Frame.py @@ -50,27 +50,27 @@ class Frame: tools = self.setup['drivers'].split(',') else: tools = Bcfg2.Client.Tools.__all__[:] - tmods = {} + tclass = {} for tool in tools: tool_class = "Bcfg2.Client.Tools.%s" % tool try: - tmods[tool] = __import__(tool_class, globals(), locals(), ['*']) + tclass[tool] = getattr(__import__(tool_class, globals(), locals(), ['*']), + tool) except ImportError: continue - for (tool, mod) in tmods.iteritems(): + for tool in tclass.values(): + for conflict in getattr(tool, 'conflicts', []): + tclass.pop(conflict) + + for tool in tclass.values(): try: - self.tools.append(getattr(mod, tool)(self.logger, setup, config, self.states)) + self.tools.append(tool(self.logger, setup, config, self.states)) except Bcfg2.Client.Tools.toolInstantiationError: continue except: self.logger.error("Failed to instantiate tool %s" % (tool), exc_info=1) - for tool in self.tools[:]: - for conflict in getattr(tool, 'conflicts', []): - [self.tools.remove(item) for item in self.tools \ - if item.__name__ == conflict] - self.logger.info("Loaded tool drivers:") self.logger.info([tool.__name__ for tool in self.tools]) if not self.setup['dryrun']: |