summaryrefslogtreecommitdiffstats
path: root/ipsilon/info
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-09-02 17:41:07 -0400
committerPatrick Uiterwijk <puiterwijk@redhat.com>2014-09-24 20:29:49 +0200
commit14e8ecd7cf8ea8d342eac5c4c66b764b3a8e2dbb (patch)
tree02bbdc36d32cbe550a2c1bc737fcb37d41a298b1 /ipsilon/info
parentbf4a27ab704581b68ddc24c74d92fc724ea0f124 (diff)
downloadipsilon-14e8ecd7cf8ea8d342eac5c4c66b764b3a8e2dbb.tar.gz
ipsilon-14e8ecd7cf8ea8d342eac5c4c66b764b3a8e2dbb.tar.xz
ipsilon-14e8ecd7cf8ea8d342eac5c4c66b764b3a8e2dbb.zip
Add Info providers Admin pages
Signed-off-by: Simo Sorce <simo@redhat.com> Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Diffstat (limited to 'ipsilon/info')
-rwxr-xr-xipsilon/info/common.py28
1 files changed, 25 insertions, 3 deletions
diff --git a/ipsilon/info/common.py b/ipsilon/info/common.py
index 6dbaf93..4fbb7ef 100755
--- a/ipsilon/info/common.py
+++ b/ipsilon/info/common.py
@@ -9,7 +9,7 @@ from ipsilon.util.plugin import PluginLoader, PluginObject
from ipsilon.util.plugin import PluginInstaller
-class InfoProviderBase(PluginObject):
+class InfoProviderBase(PluginObject, Log):
def __init__(self):
super(InfoProviderBase, self).__init__()
@@ -17,17 +17,39 @@ class InfoProviderBase(PluginObject):
def get_user_attrs(self, user):
raise NotImplementedError
+ def enable(self, site):
+ plugins = site[FACILITY]
+ if self in plugins['enabled']:
+ return
+
+ # configure self
+ if self.name in plugins['config']:
+ self.set_config(plugins['config'][self.name])
+
+ plugins['enabled'].append(self)
+ self.debug('Info plugin enabled: %s' % self.name)
+
+ def disable(self, site):
+ plugins = site[FACILITY]
+ if self not in plugins['enabled']:
+ return
+
+ plugins['enabled'].remove(self)
+ self.debug('Info plugin disabled: %s' % self.name)
+
FACILITY = 'info_config'
class Info(Log):
- def __init__(self, *args, **kwargs):
+ def __init__(self, site):
+ self._site = site
self.providers = []
loader = PluginLoader(Info, FACILITY, 'InfoProvider')
- plugins = loader.get_plugin_data()
+ self._site[FACILITY] = loader.get_plugin_data()
+ plugins = self._site[FACILITY]
available = plugins['available'].keys()
self.debug('Available info providers: %s' % str(available))