summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorTim Laszlo <tim.laszlo@gmail.com>2012-08-15 15:27:21 -0500
committerTim Laszlo <tim.laszlo@gmail.com>2012-08-15 15:27:41 -0500
commit58a697300d2863c5c2994b90b8a4f27a7db987fa (patch)
tree121862d7c985ed82c156a843353767a122b2d69d /src/lib
parent3b6b3a3f8fbaf727cc3aaf84cd03c038eab3461a (diff)
downloadbcfg2-58a697300d2863c5c2994b90b8a4f27a7db987fa.tar.gz
bcfg2-58a697300d2863c5c2994b90b8a4f27a7db987fa.tar.bz2
bcfg2-58a697300d2863c5c2994b90b8a4f27a7db987fa.zip
Core: Catch attribute errors. Allow loading submodules
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Bcfg2/Server/Core.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index 4465abb9a..49b5628a1 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -209,11 +209,15 @@ class BaseCore(object):
(plugin)).Server.Plugins, plugin)
except ImportError:
try:
- mod = __import__(plugin)
+ mod = __import__(plugin, globals(), locals(), [plugin.split('.')[-1]])
except:
self.logger.error("Failed to load plugin %s" % plugin)
return
- plug = getattr(mod, plugin)
+ try:
+ plug = getattr(mod, plugin.split('.')[-1])
+ except AttributeError:
+ self.logger.error("Failed to load plugin %s (AttributeError)" % plugin)
+ return
# Blacklist conflicting plugins
cplugs = [conflict for conflict in plug.conflicts
if conflict in self.plugins]