X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Finfo%2Fcommon.py;h=4cd6663ecf9e5bc4fa8c8eac991f84ca2d67c3b1;hp=725f0faa1ecec936e005eb5c3352a94da839df42;hb=485baf6ee7a315d1af1086fe5b5da8cff6c4ba37;hpb=7ad204c13898245cdea5acfa90be83e767276994 diff --git a/ipsilon/info/common.py b/ipsilon/info/common.py index 725f0fa..4cd6663 100644 --- a/ipsilon/info/common.py +++ b/ipsilon/info/common.py @@ -1,16 +1,15 @@ -# Copyright (C) 2014 Ipsilon Project Contributors -# -# See the file named COPYING for the project license +# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING from ipsilon.util.log import Log from ipsilon.util.plugin import PluginInstaller, PluginLoader -from ipsilon.util.plugin import PluginObject, PluginConfig +from ipsilon.util.plugin import PluginObject +from ipsilon.util.config import ConfigHelper -class InfoProviderBase(PluginConfig, PluginObject): +class InfoProviderBase(ConfigHelper, PluginObject): def __init__(self, *pargs): - PluginConfig.__init__(self) + ConfigHelper.__init__(self) PluginObject.__init__(self, *pargs) def get_user_attrs(self, user): @@ -64,7 +63,13 @@ class Info(Log): if item not in plugins.available: self.debug('Info Plugin %s not found' % item) continue - plugins.available[item].enable() + try: + plugins.available[item].enable() + except Exception as e: # pylint: disable=broad-except + while item in plugins.enabled: + plugins.enabled.remove(item) + self.debug("Info Plugin %s couldn't be enabled: %s" % ( + item, str(e))) def get_user_attrs(self, user, requested=None): plugins = self._site[FACILITY].available @@ -94,10 +99,13 @@ class InfoProviderInstaller(object): def install_args(self, group): raise NotImplementedError - def unconfigure(self, opts): + def validate_args(self, args): return - def configure(self, opts): + def unconfigure(self, opts, changes): + return + + def configure(self, opts, changes): raise NotImplementedError