diff options
author | Simo Sorce <simo@redhat.com> | 2014-09-02 17:41:07 -0400 |
---|---|---|
committer | Patrick Uiterwijk <puiterwijk@redhat.com> | 2014-09-24 20:29:49 +0200 |
commit | 14e8ecd7cf8ea8d342eac5c4c66b764b3a8e2dbb (patch) | |
tree | 02bbdc36d32cbe550a2c1bc737fcb37d41a298b1 /ipsilon/info/common.py | |
parent | bf4a27ab704581b68ddc24c74d92fc724ea0f124 (diff) | |
download | ipsilon-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/common.py')
-rwxr-xr-x | ipsilon/info/common.py | 28 |
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)) |