diff options
author | Simo Sorce <simo@redhat.com> | 2014-04-07 16:49:06 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2014-04-11 17:25:54 -0400 |
commit | 0464f1403990d3bfd85cd471f6676e70b1e81648 (patch) | |
tree | c8c87d56d7b26a7f02bb63a308ba4b884fe4f842 /ipsilon/admin | |
parent | e8c8dce4043fa4fb3bb636cab21be77978642002 (diff) | |
download | ipsilon-0464f1403990d3bfd85cd471f6676e70b1e81648.tar.gz ipsilon-0464f1403990d3bfd85cd471f6676e70b1e81648.tar.xz ipsilon-0464f1403990d3bfd85cd471f6676e70b1e81648.zip |
Change provider plugins registration and enablement
When plugins are not enabled at startup the admin page is not available
as it is created only on enablement.
Split enablement and registration, so plugins can be registered even
when actually disabled.
Also rework the way enablement is tracked and make sure enablement status
is saved back to the database when it changes so it is kept on restarts.
Signed-off-by: Simo Sorce <simo@redhat.com>
Diffstat (limited to 'ipsilon/admin')
-rwxr-xr-x | ipsilon/admin/providers.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ipsilon/admin/providers.py b/ipsilon/admin/providers.py index 1a2df7c..ba5e1e7 100755 --- a/ipsilon/admin/providers.py +++ b/ipsilon/admin/providers.py @@ -43,12 +43,17 @@ class ProviderPlugins(Page): def root_with_msg(self, message=None, message_type=None): plugins = self._site[FACILITY] + enabled_plugins = [] + for item in plugins['available']: + plugin = plugins['available'][item] + if plugin.is_enabled: + enabled_plugins.append(item) return self._template('admin/providers.html', title=self.title, baseurl=self.url, message=message, message_type=message_type, available=plugins['available'], - enabled=plugins['enabled'], + enabled=enabled_plugins, menu=self._master.menu) def root(self, *args, **kwargs): @@ -61,7 +66,7 @@ class ProviderPlugins(Page): msg = "Unknown plugin %s" % plugin return self.root_with_msg(msg, "error") obj = plugins['available'][plugin] - if obj not in plugins['enabled']: + if not obj.is_enabled: obj.enable(self._site) msg = "Plugin %s enabled" % obj.name return self.root_with_msg(msg, "success") @@ -74,7 +79,7 @@ class ProviderPlugins(Page): msg = "Unknown plugin %s" % plugin return self.root_with_msg(msg, "error") obj = plugins['available'][plugin] - if obj in plugins['enabled']: + if obj.is_enabled: obj.disable(self._site) msg = "Plugin %s disabled" % obj.name return self.root_with_msg(msg, "success") |