summaryrefslogtreecommitdiff
path: root/service/pixelated/maintenance.py
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2015-09-25 17:30:00 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-09-25 17:30:00 +0200
commit6eba069fdb566fd006fa48b8b9c5d5b44085f524 (patch)
treef2b4e5f58db35c659b33095b331905a5d282ed5b /service/pixelated/maintenance.py
parentcbf8c2208da4e2cf9f4ae9d5551b0ceaa1de4ea9 (diff)
Add repair to pixelated maintenance
- Issue #468 - Call with: pixelated-maintenance repair
Diffstat (limited to 'service/pixelated/maintenance.py')
-rw-r--r--service/pixelated/maintenance.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/service/pixelated/maintenance.py b/service/pixelated/maintenance.py
index ae320049..41e749d7 100644
--- a/service/pixelated/maintenance.py
+++ b/service/pixelated/maintenance.py
@@ -18,6 +18,7 @@ import logging
from mailbox import Maildir
from twisted.internet import reactor, defer
from twisted.internet.threads import deferToThread
+from pixelated.adapter.mailstore.maintenance import SoledadMaintenance
from pixelated.config.leap import initialize_leap
from pixelated.config import logger, arguments
@@ -36,7 +37,8 @@ def initialize():
args.leap_provider_cert_fingerprint,
args.credentials_file,
organization_mode=False,
- leap_home=args.leap_home)
+ leap_home=args.leap_home,
+ initial_sync=False)
execute_command(args, leap_session)
@@ -91,6 +93,9 @@ def add_command_callback(args, prepareDeferred, finalizeDeferred):
elif args.command == 'sync':
# nothing to do here, sync is already part of the chain
prepareDeferred.chainDeferred(finalizeDeferred)
+ elif args.command == 'repair':
+ prepareDeferred.addCallback(repair)
+ prepareDeferred.chainDeferred(finalizeDeferred)
else:
print 'Unsupported command: %s' % args.command
prepareDeferred.chainDeferred(finalizeDeferred)
@@ -176,6 +181,15 @@ def dump_soledad(args):
defer.returnValue(args)
+@defer.inlineCallbacks
+def repair(args):
+ leap_session, soledad = args
+
+ yield SoledadMaintenance(soledad).repair()
+
+ defer.returnValue(args)
+
+
def shutdown(args):
# time.sleep(30)
reactor.stop()