summaryrefslogtreecommitdiffstats
path: root/ipalib/plugable.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-12-21 19:34:32 -0700
committerJason Gerard DeRose <jderose@redhat.com>2008-12-21 19:34:32 -0700
commit9d091c98f1f1bf7bacf49e9eaaa18ba8bb1bfd70 (patch)
treed8cf4dc86356ca8a13d769845de73f5b8b1371c8 /ipalib/plugable.py
parent4390523b7f854cefcb91843e1df3ca7575d43fea (diff)
downloadfreeipa-9d091c98f1f1bf7bacf49e9eaaa18ba8bb1bfd70.tar.gz
freeipa-9d091c98f1f1bf7bacf49e9eaaa18ba8bb1bfd70.tar.xz
freeipa-9d091c98f1f1bf7bacf49e9eaaa18ba8bb1bfd70.zip
Plugin.__init__() now checks that subclass hasn't defined attributes that conflict with the logger methods; added corresponding unit test
Diffstat (limited to 'ipalib/plugable.py')
-rw-r--r--ipalib/plugable.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/ipalib/plugable.py b/ipalib/plugable.py
index f3b35d30b..019386c37 100644
--- a/ipalib/plugable.py
+++ b/ipalib/plugable.py
@@ -263,8 +263,13 @@ class Plugin(ReadOnly):
self.summary = '<%s>' % self.fullname
else:
self.summary = self.doc.split('\n\n', 1)[0]
- log = logging.getLogger('ipa')
- for name in ('debug', 'info', 'warning', 'error', 'critical'):
+ log = logging.getLogger(self.fullname)
+ for name in ('debug', 'info', 'warning', 'error', 'critical', 'exception'):
+ if hasattr(self, name):
+ raise StandardError(
+ '%s.%s attribute (%r) conflicts with Plugin logger' % (
+ self.name, name, getattr(self, name))
+ )
setattr(self, name, getattr(log, name))
def __get_api(self):