Changeset View
Changeset View
Standalone View
Standalone View
pykolab/imap/cyrus.py
Show First 20 Lines • Show All 462 Lines • ▼ Show 20 Lines | def undelete_mailfolder( | ||||
log.info( | log.info( | ||||
_("Undeleting %s to %s") % ( | _("Undeleting %s to %s") % ( | ||||
undelete_folder, | undelete_folder, | ||||
target_folder | target_folder | ||||
) | ) | ||||
) | ) | ||||
target_server = self.find_mailfolder_server(target_folder) | target_server = self.find_mailfolder_server(target_folder) | ||||
source_server = self.find_mailfolder_server(undelete_folder) | |||||
if hasattr(conf, 'dry_run') and not conf.dry_run: | if hasattr(conf, 'dry_run') and not conf.dry_run: | ||||
if target_server is not self.server: | undelete_folder = self.folder_utf7(undelete_folder) | ||||
target_folder = self.folder_utf7(target_folder) | |||||
if not target_server == source_server: | |||||
vanmeeuwen: Why not move this up to outside the dry-run clause, and use the same `if not target_server ==… | |||||
Not Done Inline ActionsI missed that part, will fix it machniak: I missed that part, will fix it | |||||
self.xfer(undelete_folder, target_server) | self.xfer(undelete_folder, target_server) | ||||
self.rename(undelete_folder, target_folder) | self.rename(undelete_folder, target_folder) | ||||
else: | else: | ||||
if not target_server == self.server: | if not target_server == source_server: | ||||
print >> sys.stdout, \ | print >> sys.stdout, \ | ||||
_("Would have transferred %s from %s to %s") % ( | _("Would have transferred %s from %s to %s") % ( | ||||
undelete_folder, | undelete_folder, | ||||
self.server, | source_server, | ||||
target_server | target_server | ||||
) | ) | ||||
print >> sys.stdout, \ | print >> sys.stdout, \ | ||||
_("Would have renamed %s to %s") % ( | _("Would have renamed %s to %s") % ( | ||||
undelete_folder, | undelete_folder, | ||||
target_folder | target_folder | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | def _find_deleted_folder(self, mbox): | ||||
} | } | ||||
if mbox['domain'] is not None: | if mbox['domain'] is not None: | ||||
deleted_folder_search = "%s@%s" % ( | deleted_folder_search = "%s@%s" % ( | ||||
deleted_folder_search, | deleted_folder_search, | ||||
mbox['domain'] | mbox['domain'] | ||||
) | ) | ||||
folders = self.lm(deleted_folder_search) | folders = self.lm(self.folder_utf7(deleted_folder_search)) | ||||
# The folders we have found at this stage include virtdomain folders. | # The folders we have found at this stage include virtdomain folders. | ||||
# | # | ||||
# For example, having searched for user/userid, it will also find | # For example, having searched for user/userid, it will also find | ||||
# user/userid@example.org | # user/userid@example.org | ||||
# | # | ||||
# Here, we explicitly remove any virtdomain folders. | # Here, we explicitly remove any virtdomain folders. | ||||
if mbox['domain'] is None: | if mbox['domain'] is None: | ||||
_folders = [] | _folders = [] | ||||
for folder in folders: | for folder in folders: | ||||
if len(folder.split('@')) < 2: | if len(folder.split('@')) < 2: | ||||
_folders.append(folder) | _folders.append(folder) | ||||
folders = _folders | folders = _folders | ||||
return folders | return [self.folder_utf8(x) for x in folders] |
Why not move this up to outside the dry-run clause, and use the same if not target_server == source_server clause for the dry-run section?