Source code for luci.plugins

# -*- coding: utf-8 -*-

# python 3 compatibility
from __future__ import absolute_import, division, print_function, unicode_literals

import logging
import sys

from stevedore import driver, extension

log = logging.getLogger("lucify")


# extensions
# ------------------------------------------------------------------------
[docs]def load_dictlet_finder_extension(name, init_params=None): """Loading a dictlet finder extension. Args: name (str): the registered name of the extension init_params (dict): the parameters to initialize the extension object Returns: DictletFinder: the extension object """ if init_params is None: init_params = {} log2 = logging.getLogger("stevedore") out_hdlr = logging.StreamHandler(sys.stdout) out_hdlr.setFormatter( logging.Formatter("dictlet_finder plugin error -> %(message)s") ) out_hdlr.setLevel(logging.DEBUG) log2.addHandler(out_hdlr) log2.setLevel(logging.INFO) log.debug("Loading dictlet_finder...") mgr = driver.DriverManager( namespace="luci.dictlet_finders", name=name, invoke_on_load=True, invoke_kwds=init_params, ) log.debug( "Registered dictlet_finder: {}".format( ", ".join(ext.name for ext in mgr.extensions) ) ) return mgr.driver
[docs]def load_dictlet_reader_extension(name, init_params=None): """Loading a processor extension. Args: name (str): the registered name of the extension Returns: DictletReader: the extension object """ log2 = logging.getLogger("stevedore") out_hdlr = logging.StreamHandler(sys.stdout) out_hdlr.setFormatter( logging.Formatter("dictlet_reader plugin error -> %(message)s") ) out_hdlr.setLevel(logging.DEBUG) log2.addHandler(out_hdlr) log2.setLevel(logging.INFO) log.debug("Loading dictlet_reader...") mgr = driver.DriverManager( namespace="luci.dictlet_readers", name=name, invoke_on_load=True, invoke_kwds=init_params, ) log.debug( "Registered dictlet_reader: {}".format( ", ".join(ext.name for ext in mgr.extensions) ) ) return mgr.driver
[docs]def get_lucifier_extensions(): """Loading all extensions. """ log2 = logging.getLogger("stevedore") out_hdlr = logging.StreamHandler(sys.stdout) out_hdlr.setFormatter(logging.Formatter("lucifier plugin error -> %(message)s")) out_hdlr.setLevel(logging.DEBUG) log2.addHandler(out_hdlr) log2.setLevel(logging.INFO) # log2.setLevel(logging.DEBUG) log.debug("Loading lucifiers...") mgr = extension.ExtensionManager( namespace="luci.lucifiers", invoke_on_load=False, # invoke_args=(parsed_args.width,), ) # mgr = stevedore.driver.DriverManager( # namespace='luci.lucifiers', # name=name, # invoke_on_load=True, # invoke_args=(init_params,)) # log.debug("Registered plugins: {}".format(", ".join( # ext.name for ext in mgr.extensions))) return mgr
[docs]def get_plugin_names(): """Get all plugin names. """ return lucifier_extension_mgr.entry_points_names()
[docs]def get_plugin_details(): """Get plugin details.""" result = {} for ext in lucifier_extension_mgr.extensions: details = {"name": ext.name, "class": ext.plugin} result[ext.name] = details return result
lucifier_extension_mgr = get_lucifier_extensions() extension_details = get_plugin_details()