Example #1
0
    def enable_plugin(self, plugin_name):
        if plugin_name in self.plugins:
            log.warn("Cannot enable an already enabled plugin %s", plugin_name)
            return

        plugin_name = plugin_name.replace(' ', '-')
        egg = self.pkg_env[plugin_name][0]
        egg.activate()
        for name in egg.get_entry_map(self.entry_name):
            entry_point = egg.get_entry_info(self.entry_name, name)
            try:
                cls = entry_point.load()
                if not cls.enabled:
                    continue
                instance = cls(plugin_name.replace('-', '_'))
            except Exception as e:
                log.error("Unable to instantiate plugin %r from %r!", name,
                          egg.location)
                log.exception(e)
                continue
            instance.enable()
            if not instance.__module__.startswith("mirror.plugins."):
                log.warn("Wrong module for plugin: %s", name)

            component.start([instance.plugin.name])
            plugin_name = plugin_name.replace('-', ' ')
            self.plugins[plugin_name] = instance
            log.info("Plugin %s enabled...", plugin_name)
Example #2
0
    def __init__(self, options=None, args=None):
        self.event_manager = EventManager()
        self.plugin_manager = PluginManager("plugin.ini",
                                            "mirror.plugin.mirrorplugin")
        component.start()

        self.scheduler = Scheduler(options, args)
Example #3
0
    def enable_plugin(self, plugin_name):
        if plugin_name in self.plugins:
            log.warn("Cannot enable an already enabled plugin %s", plugin_name)
            return

        plugin_name = plugin_name.replace(' ', '-')
        egg         = self.pkg_env[plugin_name][0]
        egg.activate()
        for name in egg.get_entry_map(self.entry_name):
            entry_point = egg.get_entry_info(self.entry_name, name)
            try:
                cls      = entry_point.load()
                if not cls.enabled:
                    continue
                instance = cls(plugin_name.replace('-', '_'))
            except Exception as e:
                log.error("Unable to instantiate plugin %r from %r!",
                          name, egg.location)
                log.exception(e)
                continue
            instance.enable()
            if not instance.__module__.startswith("mirror.plugins."):
                log.warn("Wrong module for plugin: %s", name)

            component.start([instance.plugin.name])
            plugin_name = plugin_name.replace('-', ' ')
            self.plugins[plugin_name] = instance
            log.info("Plugin %s enabled...", plugin_name)
Example #4
0
    def __init__(self, options = None, args = None):
        self.event_manager  = EventManager()
        self.plugin_manager = PluginManager("plugin.ini", "mirror.plugin.mirrorplugin")
        component.start()

        self.scheduler = Scheduler(options, args)
        log.info("Starting mirror scheduler...")
        self.scheduler.start()