def get_available_plugins(namespace): """Return names of the available / installed plugins for a given namespace. """ from stevedore.extension import ExtensionManager manager = ExtensionManager(namespace=namespace, invoke_on_load=False) return manager.names()
def get_available_backends(): """ Return names of the available / installed authentication backends. :rtype: ``list`` of ``str`` """ manager = ExtensionManager(namespace=BACKENDS_NAMESPACE, invoke_on_load=False) return manager.names()
def get_scripts_by_name(namespace): scripts_by_name = defaultdict(list) extension_manager = ExtensionManager(namespace, invoke_on_load=True) for name, extension in zip(extension_manager.names(), extension_manager.extensions): scripts_by_name[name].append(extension.obj) for name, scripts in scripts_by_name.items(): scripts_by_name[name] = sorted(scripts, key=lambda x: x.priority) return scripts_by_name
def __init__(self, loader): super(YamlTestLoader, self).__init__() self._loader = loader assertions = ExtensionManager( namespace='usagi.assertions', ) test_parameters = ExtensionManager( namespace='usagi.parameters' ) self._assertions_map = dict( (name, assertions[name].plugin) for name in assertions.names() ) self._test_parameters = dict( (name, test_parameters[name].plugin) for name in test_parameters.names() )
def get_available_backends(): """ Return names of the available / installed action runners. :rtype: ``list`` of ``str`` """ from stevedore.extension import ExtensionManager manager = ExtensionManager(namespace=BACKENDS_NAMESPACE, invoke_on_load=False) return manager.names()
def __init__(self, filename): super(VarLoader, self).__init__() self.filename = filename loaders = ExtensionManager( namespace='usagi.var_loaders', ) self.loaders = dict( (name, loaders[name].plugin) for name in loaders.names() ) self.loader_keys = set(self.loaders.keys())
def get_available_plugins(cls, namespace=None): """ Returns a dict of all the plugins that have been made available through the platform. """ # Note: we're creating the extension manager lazily to ensure that the Python path # has been correctly set up. Trying to create this statically will fail, unfortunately. plugins = OrderedDict() extension_manager = ExtensionManager(namespace=namespace or cls.NAMESPACE) # pylint: disable=no-member for plugin_name in extension_manager.names(): plugins[plugin_name] = extension_manager[plugin_name].plugin return plugins
def get_available_backends(namespace, invoke_on_load=False): """ Return names of the available / installed backends. :rtype: ``list`` of ``str`` """ # NOTE: We use lazy import because importing from stevedore adds significat import time # overhead to other modules which don't need this package (stevedore needs to inspect various # entrypoint files on disk for all the installed Python packages which is slow) from stevedore.extension import ExtensionManager manager = ExtensionManager(namespace=namespace, invoke_on_load=invoke_on_load) return manager.names()
def get_available_backends(namespace, invoke_on_load=False): """ Return names of the available / installed backends. :rtype: ``list`` of ``str`` """ # NOTE: We use lazy import because importing from stevedore adds significat import time # overhead to other modules which don't need this package (stevedore needs to inspect various # entrypoint files on disk for all the installed Python packages which is slow) from stevedore.extension import ExtensionManager manager = ExtensionManager(namespace=namespace, invoke_on_load=invoke_on_load) return manager.names()
def get_available_plugins(cls, namespace=None): """ Returns a dict of all the plugins that have been made available. """ # Note: we're creating the extension manager lazily to ensure that the Python path # has been correctly set up. Trying to create this statically will fail, unfortunately. plugins = OrderedDict() # pylint: disable=no-member extension_manager = ExtensionManager( namespace=namespace or cls.NAMESPACE ) for plugin_name in extension_manager.names(): plugins[plugin_name] = extension_manager[plugin_name].plugin return plugins
class Upload(CommonLogic, Menu): def __init__(self, helpers): self.unpack_helpers(helpers) header = u'Upload' message = (u'Make sure updates are in "new" folder ' 'then press "1" to start.') options = self.make_plugin_options() super(Upload, self).__init__(header, options, message) def make_plugin_options(self): plugin_options = [] self.mgr = ExtensionManager(u'pyiupdater.uploaders') plugin_names = self.mgr.names() log.debug(u'Plugin names: {}'.format(plugin_names)) for pgn in plugin_names: # passing none as a place holder for logic in # cli.ui.menu for processing of plugin menu creation # Logic will pass this to else since its len is # more then 2 log.debug(u'Plugin name: {}'.format(pgn)) option = (pgn, self.upload, None) plugin_options.append(option) plugin_options.append((u'Main Menu', self.done)) return plugin_options def upload(self, name): # Load plugin & invoke upload method self.uploader.set_uploader(name) self.display_menu_header(u'{} Uploader'.format(name)) try: self.uploader.upload() time.sleep(3) except Exception as e: msg = (u'Looks like you forgot to add USERNAME, PASSWORD ' 'and/or REMOTE_DIR') self.display_msg(msg) log.debug(str(e), exc_info=True) input()
def register_runners(experimental=False, fail_on_failure=True): """ Register runners """ LOG.debug('Start : register runners') runner_count = 0 manager = ExtensionManager(namespace=RUNNERS_NAMESPACE, invoke_on_load=False) extension_names = manager.names() for name in extension_names: LOG.debug('Found runner "%s"' % (name)) manager = DriverManager(namespace=RUNNERS_NAMESPACE, invoke_on_load=False, name=name) runner_metadata = manager.driver.get_metadata() runner_count += register_runner(runner_metadata, experimental) LOG.debug('End : register runners') return runner_count
def register_runners(experimental=False, fail_on_failure=True): """ Register runners """ LOG.debug('Start : register runners') runner_count = 0 manager = ExtensionManager(namespace=RUNNERS_NAMESPACE, invoke_on_load=False) extension_names = manager.names() for name in extension_names: LOG.debug('Found runner "%s"' % (name)) manager = DriverManager(namespace=RUNNERS_NAMESPACE, invoke_on_load=False, name=name) runner_metadata = manager.driver.get_metadata() runner_count += register_runner(runner_metadata, experimental) LOG.debug('End : register runners') return runner_count
def get_available_plugins(namespace): """Return names of the available / installed plugins for a given namespace.""" from stevedore.extension import ExtensionManager manager = ExtensionManager(namespace=namespace, invoke_on_load=False) return manager.names()
def builder_names(ext_mgr=None): if not ext_mgr: ext_mgr = ExtensionManager(BUILDER_DRIVER_NAMESPACE) return ext_mgr.names()
# the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from stevedore.driver import DriverManager from stevedore.extension import ExtensionManager from st2common import config config.parse_args() manager = ExtensionManager(namespace='st2common.runners.runner', invoke_on_load=False) extension_names = manager.names() print('Available / installed action runners:') for name in extension_names: manager = DriverManager(namespace='st2common.runners.runner', invoke_on_load=False, name=name) runner_instance = manager.driver.get_runner() runner_metadata = manager.driver.get_metadata()[0] print('- %s (runner_module=%s,cls=%s)' % (name, runner_metadata['runner_module'], runner_instance.__class__))
def get_data_type_by_name(): data_type_by_name = {} x_manager = ExtensionManager('crosscompute.types') for data_type_name, x in zip(x_manager.names(), x_manager.extensions): data_type_by_name[data_type_name] = x.plugin return data_type_by_name
def builder_names(ext_mgr=None): if not ext_mgr: ext_mgr = ExtensionManager(BUILDER_DRIVER_NAMESPACE) return ext_mgr.names()