From bb3929f368076e5a27779361fc1853290c7f42a9 Mon Sep 17 00:00:00 2001 From: J08nY Date: Mon, 19 Jun 2017 21:42:44 +0200 Subject: Make transaction() convenient. --- src/mailman_pgp/database/__init__.py | 4 ++-- src/mailman_pgp/plugin.py | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src/mailman_pgp') diff --git a/src/mailman_pgp/database/__init__.py b/src/mailman_pgp/database/__init__.py index 5ea8f94..e700ad9 100644 --- a/src/mailman_pgp/database/__init__.py +++ b/src/mailman_pgp/database/__init__.py @@ -31,9 +31,9 @@ class Database: @contextmanager def transaction(): try: - yield + yield config.db.session except: - config.db.session.abort() + config.db.session.rollback() raise else: config.db.session.commit() diff --git a/src/mailman_pgp/plugin.py b/src/mailman_pgp/plugin.py index 033c46d..3ef771c 100644 --- a/src/mailman_pgp/plugin.py +++ b/src/mailman_pgp/plugin.py @@ -1,4 +1,5 @@ """A PGP plugin for GNU Mailman.""" + from mailman.interfaces.listmanager import ListDeletedEvent from mailman.interfaces.plugin import IPlugin from public import public @@ -35,5 +36,6 @@ def on_delete(mlist): encrypted_list = config.db.session.query(EncryptedMailingList).filter_by( list_id=mlist.list_id).first() if encrypted_list: - with transaction(): - config.db.session.delete(encrypted_list) + with transaction() as session: + # TODO shred the list key + session.delete(encrypted_list) -- cgit v1.2.3-70-g09d2