def activate_plugin_with_version_check(name, config): pta_item = simplePluginManager.getPluginByName(name, 'bots') if pta_item is None: logging.warning('Could not activate %s') return None obj = pta_item.plugin_object min_version, max_version = obj.min_err_version, obj.max_err_version logging.info('Activating %s with min_err_version = %s and max_version = %s' % (name, min_version, max_version)) current_version = version2array(VERSION) if min_version and version2array(min_version) > current_version: raise IncompatiblePluginException('The plugin %s asks for err with a minimal version of %s while err is version %s' % (name, min_version, VERSION)) if max_version and version2array(max_version) < current_version: raise IncompatiblePluginException('The plugin %s asks for err with a maximal version of %s while err is version %s' % (name, max_version, VERSION)) try: if obj.get_configuration_template() is not None and config is not None: logging.debug('Checking configuration for %s...' % name) obj.check_configuration(config) logging.debug('Configuration for %s checked OK.' % name) obj.configure(config) # even if it is None we pass it on except Exception as e: logging.exception('Something is wrong with the configuration of the plugin %s' % name) obj.config = None raise PluginConfigurationException(str(e)) add_plugin_templates_path(pta_item.path) populate_doc(pta_item) try: return simplePluginManager.activatePluginByName(name, "bots") except Exception as _: remove_plugin_templates_path(pta_item.path) raise
def deactivate_plugin_by_name(name): pta_item = simplePluginManager.getPluginByName(name, "bots") remove_plugin_templates_path(pta_item.path) try: return simplePluginManager.deactivatePluginByName(name, "bots") except Exception as _: add_plugin_templates_path(pta_item.path) raise
def deactivate_plugin_by_name(name): pta_item = simplePluginManager.getPluginByName(name, 'bots') remove_plugin_templates_path(pta_item.path) try: return simplePluginManager.deactivatePluginByName(name, "bots") except Exception as _: add_plugin_templates_path(pta_item.path) raise
def activate_plugin_with_version_check(name, config): pta_item = simplePluginManager.getPluginByName(name, 'bots') if pta_item is None: logging.warning('Could not activate %s' % name) return None try: python_version = pta_item.details.get("Python", "Version") except NoSectionError: logging.warning('Plugin %s has no section [Python]. Assuming this plugin is runnning only under python 2.' % name) python_version = '2' if python_version not in ('2', '2+', '3'): logging.warning('Plugin %s has an invalid Version specified in section [Python]. The Version can only be 2, 2+ and 3' % name) return None if python_version == '2' and PY3: logging.error('\nPlugin %s is made for python 2 only and you are running err under python 3.\n\n' 'If the plugin can be run on python 2 and 3 please add this section to its .plug descriptor :\n[Python]\nVersion=2+\n\n' 'Or if the plugin is Python 3 only:\n[Python]\nVersion=3\n\n' % name) return None if python_version == '3' and PY2: logging.error('\nPlugin %s is made for python 3 and you are running err under python 2.') return None obj = pta_item.plugin_object min_version, max_version = obj.min_err_version, obj.max_err_version logging.info('Activating %s with min_err_version = %s and max_version = %s' % (name, min_version, max_version)) current_version = version2array(VERSION) if min_version and version2array(min_version) > current_version: raise IncompatiblePluginException('The plugin %s asks for err with a minimal version of %s while err is version %s' % (name, min_version, VERSION)) if max_version and version2array(max_version) < current_version: raise IncompatiblePluginException('The plugin %s asks for err with a maximal version of %s while err is version %s' % (name, max_version, VERSION)) try: if obj.get_configuration_template() is not None and config is not None: logging.debug('Checking configuration for %s...' % name) obj.check_configuration(config) logging.debug('Configuration for %s checked OK.' % name) obj.configure(config) # even if it is None we pass it on except Exception as e: logging.exception('Something is wrong with the configuration of the plugin %s' % name) obj.config = None raise PluginConfigurationException(str(e)) add_plugin_templates_path(pta_item.path) populate_doc(pta_item) try: return simplePluginManager.activatePluginByName(name, "bots") except Exception as _: pta_item.activated = False # Yapsy doesn't revert this in case of error remove_plugin_templates_path(pta_item.path) logging.error("Plugin %s failed at activation stage, deactivating it..." % name) simplePluginManager.deactivatePluginByName(name, "bots") raise
def activate_plugin_with_version_check(name, config): pta_item = simplePluginManager.getPluginByName(name, 'bots') if pta_item is None: logging.warning('Could not activate %s') return None obj = pta_item.plugin_object min_version, max_version = obj.min_err_version, obj.max_err_version logging.info( 'Activating %s with min_err_version = %s and max_version = %s' % (name, min_version, max_version)) current_version = version2array(VERSION) if min_version and version2array(min_version) > current_version: raise IncompatiblePluginException( 'The plugin %s asks for err with a minimal version of %s while err is version %s' % (name, min_version, VERSION)) if max_version and version2array(max_version) < current_version: raise IncompatiblePluginException( 'The plugin %s asks for err with a maximal version of %s while err is version %s' % (name, max_version, VERSION)) try: if obj.get_configuration_template() is not None and config is not None: logging.debug('Checking configuration for %s...' % name) obj.check_configuration(config) logging.debug('Configuration for %s checked OK.' % name) obj.configure(config) # even if it is None we pass it on except Exception as e: logging.exception( 'Something is wrong with the configuration of the plugin %s' % name) obj.config = None raise PluginConfigurationException(str(e)) add_plugin_templates_path(pta_item.path) populate_doc(pta_item) try: return simplePluginManager.activatePluginByName(name, "bots") except Exception as _: pta_item.activated = False # Yapsy doesn't revert this in case of error remove_plugin_templates_path(pta_item.path) logging.error( "Plugin %s failed at activation stage, deactivating it..." % name) simplePluginManager.deactivatePluginByName(name, "bots") raise
def activate_plugin_with_version_check(name, config): pta_item = simplePluginManager.getPluginByName(name, 'bots') if pta_item is None: logging.warning('Could not activate %s' % name) return None try: python_version = pta_item.details.get("Python", "Version") except NoSectionError: logging.warning( 'Plugin %s has no section [Python]. Assuming this plugin is runnning only under python 2.' % name) python_version = '2' if python_version not in ('2', '2+', '3'): logging.warning( 'Plugin %s has an invalid Version specified in section [Python]. The Version can only be 2, 2+ and 3' % name) return None if python_version == '2' and PY3: logging.error( '\nPlugin %s is made for python 2 only and you are running err under python 3.\n\n' 'If the plugin can be run on python 2 and 3 please add this section to its .plug descriptor :\n[Python]\nVersion=2+\n\n' 'Or if the plugin is Python 3 only:\n[Python]\nVersion=3\n\n' % name) return None if python_version == '3' and PY2: logging.error( '\nPlugin %s is made for python 3 and you are running err under python 2.' ) return None obj = pta_item.plugin_object min_version, max_version = obj.min_err_version, obj.max_err_version logging.info( 'Activating %s with min_err_version = %s and max_version = %s' % (name, min_version, max_version)) current_version = version2array(VERSION) if min_version and version2array(min_version) > current_version: raise IncompatiblePluginException( 'The plugin %s asks for err with a minimal version of %s while err is version %s' % (name, min_version, VERSION)) if max_version and version2array(max_version) < current_version: raise IncompatiblePluginException( 'The plugin %s asks for err with a maximal version of %s while err is version %s' % (name, max_version, VERSION)) try: if obj.get_configuration_template() is not None and config is not None: logging.debug('Checking configuration for %s...' % name) obj.check_configuration(config) logging.debug('Configuration for %s checked OK.' % name) obj.configure(config) # even if it is None we pass it on except Exception as e: logging.exception( 'Something is wrong with the configuration of the plugin %s' % name) obj.config = None raise PluginConfigurationException(str(e)) add_plugin_templates_path(pta_item.path) populate_doc(pta_item) try: return simplePluginManager.activatePluginByName(name, "bots") except Exception as _: pta_item.activated = False # Yapsy doesn't revert this in case of error remove_plugin_templates_path(pta_item.path) logging.error( "Plugin %s failed at activation stage, deactivating it..." % name) simplePluginManager.deactivatePluginByName(name, "bots") raise
logging.debug('Checking configuration for %s...' % name) obj.check_configuration(config) logging.debug('Configuration for %s checked OK.' % name) obj.configure(config) # even if it is None we pass it on except Exception, e: logging.exception( 'Something is wrong with the configuration of the plugin %s' % name) obj.config = None raise PluginConfigurationException(str(e)) add_plugin_templates_path(pta_item.path) populate_doc(pta_item) try: return simplePluginManager.activatePluginByName(name, "bots") except Exception as e: remove_plugin_templates_path(pta_item.path) raise def deactivatePluginByName(name): pta_item = simplePluginManager.getPluginByName(name, 'bots') remove_plugin_templates_path(pta_item.path) try: return simplePluginManager.deactivatePluginByName(name, "bots") except Exception as e: add_plugin_templates_path(pta_item.path) raise def update_plugin_places(list): for entry in chain(BUILTINS, list):
try: if obj.get_configuration_template() is not None and config is not None: logging.debug('Checking configuration for %s...' % name) obj.check_configuration(config) logging.debug('Configuration for %s checked OK.' % name) obj.configure(config) # even if it is None we pass it on except Exception, e: logging.exception('Something is wrong with the configuration of the plugin %s' % name) obj.config = None raise PluginConfigurationException(str(e)) add_plugin_templates_path(pta_item.path) populate_doc(pta_item) try: return simplePluginManager.activatePluginByName(name, "bots") except Exception as _: remove_plugin_templates_path(pta_item.path) raise def deactivatePluginByName(name): pta_item = simplePluginManager.getPluginByName(name, 'bots') remove_plugin_templates_path(pta_item.path) try: return simplePluginManager.deactivatePluginByName(name, "bots") except Exception as _: add_plugin_templates_path(pta_item.path) raise def update_plugin_places(list): for entry in chain(BUILTINS, list):