Exemplo n.º 1
0
    def _load_plugins(self, options):
        for plugin_name, plugin_config in get_enabled_plugins():
            try:
                plugin_class = ('plugins.%s.%s' %
                                (plugin_name,
                                 plugin_config['wok']['plugin_class']))
                extra_auth = plugin_config['wok'].get('extra_auth_api_class',
                                                      None)
                script_name = plugin_config['wok']['uri']
                del plugin_config['wok']

                plugin_config.update(PluginConfig(plugin_name))
            except KeyError:
                continue

            try:
                plugin_app = import_class(plugin_class)(options)
            except ImportError, e:
                cherrypy.log.error_log.error(
                    "Failed to import plugin %s, "
                    "error: %s" % (plugin_class, e.message)
                )
                continue

            # dynamically extend plugin config with custom data, if provided
            get_custom_conf = getattr(plugin_app, "get_custom_conf", None)
            if get_custom_conf is not None:
                plugin_config.update(get_custom_conf())

            # dynamically add tools.wokauth.on = True to extra plugin APIs
            if extra_auth:
                try:
                    authed_apis = import_class(('plugins.%s.%s' %
                                                (plugin_name, extra_auth)))
                except ImportError, e:
                    cherrypy.log.error_log.error(
                        "Failed to import subnodes for plugin %s, "
                        "error: %s" % (plugin_class, e.message)
                    )
                    continue

                urlSubNodes = {}
                for ident, node in authed_apis.items():
                    if node.url_auth:
                        ident = "/%s" % ident
                        urlSubNodes[ident] = {'tools.wokauth.on': True}

                plugin_config.update(urlSubNodes)
Exemplo n.º 2
0
    def _load_plugins(self, options):
        for plugin_name, plugin_config in get_enabled_plugins():
            try:
                plugin_class = (
                    'plugins.%s.%s' %
                    (plugin_name, plugin_config['wok']['plugin_class']))
                extra_auth = plugin_config['wok'].get('extra_auth_api_class',
                                                      None)
                script_name = plugin_config['wok']['uri']
                del plugin_config['wok']

                plugin_config.update(PluginConfig(plugin_name))
            except KeyError:
                continue

            try:
                plugin_app = import_class(plugin_class)(options)
            except ImportError:
                cherrypy.log.error_log.error("Failed to import plugin %s" %
                                             plugin_class)
                continue

            # dynamically extend plugin config with custom data, if provided
            get_custom_conf = getattr(plugin_app, "get_custom_conf", None)
            if get_custom_conf is not None:
                plugin_config.update(get_custom_conf())

            # dynamically add tools.wokauth.on = True to extra plugin APIs
            if extra_auth:
                try:
                    authed_apis = import_class(
                        ('plugins.%s.%s' % (plugin_name, extra_auth)))
                except ImportError:
                    cherrypy.log.error_log.error("Failed to import subnodes "
                                                 "for plugin %s" %
                                                 plugin_class)
                    continue

                urlSubNodes = {}
                for ident, node in authed_apis.items():
                    if node.url_auth:
                        ident = "/%s" % ident
                        urlSubNodes[ident] = {'tools.wokauth.on': True}

                plugin_config.update(urlSubNodes)

            cherrypy.tree.mount(plugin_app, script_name, plugin_config)
Exemplo n.º 3
0
    def _load_plugins(self, options):
        for plugin_name, plugin_config in get_enabled_plugins():
            try:
                plugin_class = ('plugins.%s.%s' %
                                (plugin_name,
                                 plugin_name[0].upper() + plugin_name[1:]))
                script_name = plugin_config['wok']['uri']
                del plugin_config['wok']

                plugin_config.update(PluginConfig(plugin_name))
            except KeyError:
                continue

            try:
                plugin_app = import_class(plugin_class)(options)
            except ImportError, e:
                cherrypy.log.error_log.error(
                    "Failed to import plugin %s, "
                    "error: %s" % (plugin_class, e.message)
                )
                continue

            # dynamically extend plugin config with custom data, if provided
            get_custom_conf = getattr(plugin_app, "get_custom_conf", None)
            if get_custom_conf is not None:
                plugin_config.update(get_custom_conf())

            # dynamically add tools.wokauth.on = True to extra plugin APIs
            try:
                sub_nodes = import_class('plugins.%s.control.sub_nodes' %
                                         plugin_name)

                urlSubNodes = {}
                for ident, node in sub_nodes.items():
                    if node.url_auth:
                        ident = "/%s" % ident
                        urlSubNodes[ident] = {'tools.wokauth.on': True}

                    plugin_config.update(urlSubNodes)

            except ImportError, e:
                cherrypy.log.error_log.error(
                    "Failed to import subnodes for plugin %s, "
                    "error: %s" % (plugin_class, e.message)
                )
Exemplo n.º 4
0
    def _load_plugins(self, options):
        for plugin_name, plugin_config in get_enabled_plugins():
            try:
                plugin_class = ('plugins.%s.%s' %
                                (plugin_name,
                                 plugin_name[0].upper() + plugin_name[1:]))
                del plugin_config['wok']
                plugin_config.update(PluginConfig(plugin_name))
            except KeyError:
                continue

            try:
                plugin_app = import_class(plugin_class)(options)
            except (ImportError, Exception), e:
                cherrypy.log.error_log.error(
                    "Failed to import plugin %s, "
                    "error: %s" % (plugin_class, e.message)
                )
                continue

            # dynamically extend plugin config with custom data, if provided
            get_custom_conf = getattr(plugin_app, "get_custom_conf", None)
            if get_custom_conf is not None:
                plugin_config.update(get_custom_conf())

            # dynamically add tools.wokauth.on = True to extra plugin APIs
            try:
                sub_nodes = import_class('plugins.%s.control.sub_nodes' %
                                         plugin_name)

                urlSubNodes = {}
                for ident, node in sub_nodes.items():
                    if node.url_auth:
                        ident = "/%s" % ident
                        urlSubNodes[ident] = {'tools.wokauth.on': True}

                    plugin_config.update(urlSubNodes)

            except ImportError, e:
                cherrypy.log.error_log.error(
                    "Failed to import subnodes for plugin %s, "
                    "error: %s" % (plugin_class, e.message)
                )