def add_processing_module(self, module): m = get_class(module['path'], module['class']) if m: m.info = module self._modules['Processing'][module['name']] = m self._add_module_options(module) self._add_module_permissions(module) # Add module to transform if 'generates' is defined if module['generates']: self._add_transforms(module) # Add module to triggers if 'triggered_by' is defined if module['triggered_by']: self._add_module_triggers(module) # Otherwise, add to general purpose modules else: self._general.append(module['name']) # Also, if module acts on specific file type, add a specific trigger if module['acts_on']: for source_type in iterify(module['acts_on']): self._add_trigger(self._triggers, "_generated_file(%s)" % source_type, module)
def add_module(self, module): m = get_class(module['path'], module['class']) if m: m.info = module try: m = m() if m and m.initialize(): self._modules[module['type']].append(m) except Exception, e: print "Could not initialize module '{0}': {1}".format( module['name'], e)
def enable(self, id): """Enable a module .. :quickref: Module; Enable a module Requires the `manage_modules` permission. If successful, will return the module in ``module``. Otherwise, errors will be available in ``errors``. :param id: id of the module to enable. """ module = ModuleInfo(get_or_404(ModuleInfo.get_collection(), _id=id)) if 'error' in module: flash( "Cannot enable '{}' because of errors installing dependencies." .format(module['name']), 'danger') return validation_error(url_for('ModulesView:index')) # See if module is properly configured module_class = get_class(module['path'], module['class']) module_class.info = module try: module_class() except MissingConfiguration as e: if e.name: flash( "You must configure '{}' before trying to enable '{}'". format(e.name, module['name']), 'warning') return validation_error( url_for('ModulesView:configuration', id=e.id)) else: flash( "You must configure '{}' before trying to enable it.". format(module['name']), 'warning') return validation_error( url_for('ModulesView:configure', id=module['_id'])) module.update_value('enabled', True) dispatcher.reload() readme = module.get_readme() if readme: flash(readme, 'persistent') return redirect({'module': clean_modules(module)}, url_for('ModulesView:index'))
def add_filetype_module(self, module): def add_one(acts_on, module): if acts_on not in self._modules['Filetype']: self._modules['Filetype'][acts_on] = [] self._modules['Filetype'][acts_on].append(module) m = get_class(module['path'], module['class']) if m: m.info = module try: m = m() if m and m.initialize(): if len(module['acts_on']) == 0: add_one('*', m) else: for acts_on in module['acts_on']: add_one(acts_on, m) except Exception, e: print "Could not initialize module '{0}': {1}".format( module['name'], e)
def add_preloading_module(self, module): m = get_class(module['path'], module['class']) if m: m.info = module self._add_module_options(module) self._modules['Preloading'].append(m)
def add_virtualization_module(self, module): m = get_class(module['path'], module['class']) if m: m.info = module self._modules['Virtualization'].append(m)