summaryrefslogtreecommitdiff
path: root/mailman/pipeline (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-08-07Ignore plugin started subprocesses in master main loop.J08nY1-0/+7
2017-08-07Add new logger which plugins can use.J08nY3-0/+6
2017-08-07Don't fail when plugins pre_hook or post_hook fails.J08nY2-13/+36
- Catches all exceptions raised when running a plugins (pre|post) _hooks. If its pre_hook raises an exception, the plugin is disabled and removed, so its post_hook will not be run and its components will not be loaded. If its post_hook raises an exception we just continue and hope for the best.
2017-08-07Make config.plugin_configs yield a dict with plugin names.J08nY4-11/+13
- Allows to better loop over pluging configs and their names.
2017-08-07Add optional external configuration to plugins.J08nY4-1/+12
- Adds an optional 'conriguration' option similar to the one in [mta] which plugins can use to load their specific configs from.
2017-08-07Add REST-ability to plugins.J08nY7-2/+322
- Adds the rest_object method to the IPlugin interface. This method is called by the REST api to route requests to the plugin's REST api. All attributes are proxied, so the object becomes a true REST object in the ObjectRouter hierarchy. For example see the RESTExample and ExamplePlugin classes in mailman.testing.plugin. The plugin might return None from this method, in which case all calls to it's REST api route will return 404 NotFound. - Adds new routes to the REST api. For version >= 3.1: - /3.1/plugins Returns a dictionary with plugin names as keys, and their configs as values. - /3.1/plugins/<plugin_name> Proxies everything to plugin's rest_object, if plugin with such name exists and provides a non-null rest_object, else NotFound.
2017-08-07Pretty print dicts in dump_json.J08nY1-0/+10
- Makes dump_json documentation helper recursively print dicts with indentation. So for example {'name': {'a':1, 'b':2}, 'other': test} becomes: name: a: 1 b: 2 other: test
2017-08-07Add per-plugin hooks, add docs about plugins.J08nY11-87/+250
- Removes pre_hook, post_hook and ext_dir. With the latter being unused. Warns on startup if the hooks are present in config. - Adds IPlugin interface with pre_hook and post_hook methods. - Adds 'class' config parameter to plugins, which can be set to a class implementing the IPlugin interface, it will be initialized once on Mailman's startup, then before the DB setup the pre_hook will be run, after DB and other components the post_hook will be run. Plugin instances are stored in the config.plugins dict, with keys being their configuration section names.
2017-08-07Add pluggable components.J08nY13-42/+132
- Adds the notion of a 'plugin'. - A plugin has a package path and a flag specifying whether it's enabled or not. - Adds a find_pluggable_components function similar to the find_components one. This one dynamically searches not only the mailman package but all of plugins. - e.g. find_pluggable_components('rules', IRule) finds all IRule components in mailman.rules but also in example_plugin.rules for plugin names example_plugin. - Uses the find_pluggable_components function in place of find_components when searching for Rules, Handlers, Chains, EmailCommands, and Styles.
2017-08-04Rename metadata key for clarityBarry Warsaw27-115/+355
2017-07-27Set a timeout on the lock acquisitionBarry Warsaw1-1/+2
2017-07-26Ensure all holds/rejects have a reason.Mark Sapiro33-45/+619
2017-07-22Convert to click for CLI optionsBarry Warsaw81-4101/+4217
2017-07-13Python 3.4 no more!Barry Warsaw4-7/+11
2017-06-30Added a rule to discard messages with no valid sender address.Mark Sapiro8-8/+117
2017-06-30Fixed an AttributeError in subject prefixing.Mark Sapiro3-2/+25
2017-06-30Ignore syntactically invalid sender addresses.Mark Sapiro3-2/+20
2017-06-24IListManager.get() now accepts both List-IDs and FQDN list names.Barry Warsaw6-43/+97
2017-06-17Minor typo.Barry Warsaw1-1/+1
2017-06-17Move pipelines to their own package, instantiate them dynamically.pipelines-dynamical-instantiationJ08nY5-79/+144
2017-06-17Provide a better way to avoid instantiating some componentsBarry Warsaw9-70/+214
2017-06-15Did some reformatting and added tests.Mark Sapiro2-15/+62
2017-06-13Catch FileNotFoundError and PermissionError on html_to_plain_text_command.Mark Sapiro3-1/+35
2017-06-09Bump the code name.Barry Warsaw1-1/+1
2017-06-04Name and version bump for 3.2.Barry Warsaw2-1/+5
2017-05-253.1.0 final!Barry Warsaw2-4/+4
2017-05-253.1rc2Barry Warsaw1-2/+2
2017-05-24Ensure the held message subject is a string.Mark Sapiro1-1/+2
2017-05-24Refactor Header object test to create the message without cheating.Mark Sapiro1-10/+5
2017-05-24Fixup ref spacing.Stephen J. Turnbull1-1/+1