Branch 'pykolab-0.6' - pykolab/cli

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Tue Dec 30 11:18:29 CET 2014


 pykolab/cli/cmd_mailbox_cleanup.py |   25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

New commits:
commit 955f76c530b43fc9703a2879b63215c2673e08db
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Dec 30 11:17:34 2014 +0100

    Add an option --dry-run to kolab mailbox-cleanup

diff --git a/pykolab/cli/cmd_mailbox_cleanup.py b/pykolab/cli/cmd_mailbox_cleanup.py
index 8dee38b..c2e38ef 100644
--- a/pykolab/cli/cmd_mailbox_cleanup.py
+++ b/pykolab/cli/cmd_mailbox_cleanup.py
@@ -33,6 +33,16 @@ conf = pykolab.getConf()
 def __init__():
     commands.register('mailbox_cleanup', execute, description=description())
 
+def cli_options():
+    my_option_group = conf.add_cli_parser_option_group(_("CLI Options"))
+    my_option_group.add_option(
+            '--dry-run',
+            dest    = "dryrun",
+            action  = "store_true",
+            default = False,
+            help    = _("Do not actually delete mailboxes, but report what mailboxes would have been deleted.")
+        )
+
 def description():
     return _("Clean up mailboxes that do no longer have an owner.")
 
@@ -49,7 +59,7 @@ def execute(*args, **kw):
 
     folders = []
 
-    for domain,aliases in domains:
+    for domain in domains.keys():
         folders.extend(imap.lm("user/%%@%s" % (domain)))
 
     for folder in folders:
@@ -58,8 +68,11 @@ def execute(*args, **kw):
         recipient = auth.find_recipient(user)
 
         if len(recipient) == 0 or recipient == []:
-            log.info(_("Deleting folder 'user/%s'") % (user))
-            try:
-                imap.dm(folder)
-            except:
-                pass
\ No newline at end of file
+            if conf.dryrun:
+                log.info(_("Would have deleting folder 'user/%s' (dryrun)") % (user))
+            else:
+                log.info(_("Deleting folder 'user/%s'") % (user))
+                try:
+                    imap.dm(folder)
+                except:
+                    log.error(_("Error deleting folder 'user/%s'") 5 (user))




More information about the commits mailing list