diff options
author | Folker Bernitt <fbernitt@thoughtworks.com> | 2015-07-14 17:24:00 +0200 |
---|---|---|
committer | Folker Bernitt <fbernitt@thoughtworks.com> | 2015-08-11 17:00:22 +0200 |
commit | 740547431f547dce775f0d2a737fd23f6df5f994 (patch) | |
tree | 5ab458312c115e34176d302bec46379ebd6b0d66 /service/pixelated/maintenance.py | |
parent | 7a86ea479898138da70a26b03dbb8759a5d50328 (diff) |
Temporary changes to make maintenance.py work with soledad 0.7.1.
Diffstat (limited to 'service/pixelated/maintenance.py')
-rw-r--r-- | service/pixelated/maintenance.py | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/service/pixelated/maintenance.py b/service/pixelated/maintenance.py index 69cd674b..868c9e5b 100644 --- a/service/pixelated/maintenance.py +++ b/service/pixelated/maintenance.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. +import logging from mailbox import Maildir from twisted.internet import reactor, defer from twisted.internet.threads import deferToThread @@ -22,6 +23,7 @@ from pixelated.config import logger, arguments from leap.mail.constants import MessageFlags import time +from twisted.mail import imap4 def initialize(): @@ -54,12 +56,21 @@ def create_execute_command(args, leap_session): return leap_session, soledad + @defer.inlineCallbacks def soledad_sync(args): leap_session, soledad = args + log = logging.getLogger('some logger') - soledad.sync() + log.warn('Before sync') - return args + yield soledad.sync() + + log.warn('after sync') + + defer.returnValue(args) + + # return args + return tearDown = defer.Deferred() @@ -109,11 +120,17 @@ def is_keep_file(mail): return mail['subject'] is None +@defer.inlineCallbacks def add_mail_folder(account, maildir, folder_name, deferreds): - if folder_name not in account.mailboxes: + try: + mbx = yield account.getMailbox(folder_name) + except imap4.MailboxException: account.addMailbox(folder_name) + mbx = yield account.getMailbox(folder_name) + # if folder_name not in account.mailboxes: + # account.addMailbox(folder_name) - mbx = account.getMailbox(folder_name) + mbx = yield account.getMailbox(folder_name) for mail in maildir: if is_keep_file(mail): continue @@ -124,7 +141,7 @@ def add_mail_folder(account, maildir, folder_name, deferreds): if 'R' in mail.get_flags(): flags = (MessageFlags.ANSWERED_FLAG,) + flags - deferreds.append(mbx.addMessage(mail.as_string(), flags=flags, notify_on_disk=False)) + deferreds.append(mbx.addMessage(mail.as_string(), flags=flags, notify_just_mdoc=False)) @defer.inlineCallbacks @@ -164,20 +181,21 @@ def flush_to_soledad(args, finalize): return args +@defer.inlineCallbacks def dump_soledad(args): leap_session, soledad = args - generation, docs = soledad.get_all_docs() + generation, docs = yield soledad.get_all_docs() for doc in docs: print doc print '\n' - return args + defer.returnValue(args) def shutdown(args): - time.sleep(30) + # time.sleep(30) reactor.stop() |