summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorSoren Hansen <soren@linux2go.dk>2011-03-28 15:21:53 +0200
committerSoren Hansen <soren@linux2go.dk>2011-03-28 15:21:53 +0200
commitd25968ab494f65ed90981e440169e31a7488befe (patch)
tree4052742d17ad38a3cc802bf9e58956d480f4b6a8 /nova
parent7cdc3add34b109e3f956f785b60a5aa5cf273e53 (diff)
Add friendlier message if an extension fails to include a correctly named class or factory.
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/extensions.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index 439612faa..4a7236863 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -321,7 +321,14 @@ class ExtensionManager(object):
mod = imp.load_source(mod_name, ext_path)
ext_name = mod_name[0].upper() + mod_name[1:]
try:
- new_ext = getattr(mod, ext_name)()
+ new_ext_class = getattr(mod, ext_name, None)
+ if not new_ext_class:
+ LOG.warning(_('Did not find expected name '
+ '"%(ext_name)" in %(file)s'),
+ { 'ext_name': ext_name,
+ 'file': ext_path })
+ continue
+ new_ext = new_ext_class()
self._check_extension(new_ext)
self.extensions[new_ext.get_alias()] = new_ext
except AttributeError as ex: