[#2293] [WebUI] Fix plugins not loading when using WebUI plugin

- Any plugins that were started before the WebUI plugin would not be loaded
   upon starting the web server and would be not show up. The fix is to use
   web.pluginmanager.start to get all enabled plugins from core.
 - Update log message output for enable/disable in pluginmanager.
 - Deregister plugin events on json_api disable.
This commit is contained in:
Calum Lind 2016-07-19 15:04:50 +01:00
parent 904a51835b
commit 492ad07965
2 changed files with 12 additions and 4 deletions

View File

@ -150,13 +150,21 @@ class JSON(resource.Resource, component.Component):
return d.addCallback(on_client_connected) return d.addCallback(on_client_connected)
def disable(self): def disable(self):
if not client.is_classicmode(): client.deregister_event_handler("PluginEnabledEvent", self.get_remote_methods)
client.deregister_event_handler("PluginDisabledEvent", self.get_remote_methods)
if client.is_classicmode():
component.get("Web.PluginManager").stop()
else:
client.disconnect() client.disconnect()
def enable(self): def enable(self):
client.register_event_handler("PluginEnabledEvent", self.get_remote_methods) client.register_event_handler("PluginEnabledEvent", self.get_remote_methods)
client.register_event_handler("PluginDisabledEvent", self.get_remote_methods) client.register_event_handler("PluginDisabledEvent", self.get_remote_methods)
if component.get("DelugeWeb").config["default_daemon"]:
if client.is_classicmode():
component.get("Web.PluginManager").start()
elif component.get("DelugeWeb").config["default_daemon"]:
# Sort out getting the default daemon here # Sort out getting the default daemon here
default = component.get("DelugeWeb").config["default_daemon"] default = component.get("DelugeWeb").config["default_daemon"]
host = component.get("Web").get_host(default) host = component.get("Web").get_host(default)

View File

@ -83,7 +83,7 @@ class PluginManager(PluginManagerBase, component.Component):
try: try:
plugin = component.get("WebPlugin." + name) plugin = component.get("WebPlugin." + name)
except KeyError: except KeyError:
log.info("Plugin has no web ui") log.debug("'%s' plugin contains no WebUI code, ignoring WebUI disable call.", name)
return return
info = gather_info(plugin) info = gather_info(plugin)
@ -105,7 +105,7 @@ class PluginManager(PluginManagerBase, component.Component):
try: try:
plugin = component.get("WebPlugin." + name) plugin = component.get("WebPlugin." + name)
except KeyError: except KeyError:
log.info("Plugin has no web ui") log.info("'%s' plugin contains no WebUI code, ignoring WebUI enable call.", name)
return return
info = gather_info(plugin) info = gather_info(plugin)