Changeset View
Changeset View
Standalone View
Standalone View
pykolab/imap/cyrus.py
Show First 20 Lines • Show All 240 Lines • ▼ Show 20 Lines | def find_mailfolder_server(self, mailfolder): | ||||
max_tries = 20 | max_tries = 20 | ||||
num_try = 0 | num_try = 0 | ||||
ann_path = "/vendor/cmu/cyrus-imapd/server" | ann_path = "/vendor/cmu/cyrus-imapd/server" | ||||
s_ann_path = "/shared%s" % (ann_path) | s_ann_path = "/shared%s" % (ann_path) | ||||
while 1: | while 1: | ||||
num_try += 1 | num_try += 1 | ||||
annotations = self._getannotation( | annotations = self._getmetadata( | ||||
'"%s"' % (mailfolder), | '"%s"' % (mailfolder), | ||||
ann_path | ann_path | ||||
) | ) | ||||
if mailfolder in annotations: | if mailfolder in annotations: | ||||
if s_ann_path in annotations[mailfolder]: | if s_ann_path in annotations[mailfolder]: | ||||
break | break | ||||
▲ Show 20 Lines • Show All 100 Lines • ▼ Show 20 Lines | def _rename(self, from_mailfolder, to_mailfolder, partition=None): | ||||
) | ) | ||||
self.m.rename( | self.m.rename( | ||||
self.folder_utf7(from_mailfolder), | self.folder_utf7(from_mailfolder), | ||||
self.folder_utf7(to_mailfolder), | self.folder_utf7(to_mailfolder), | ||||
partition | partition | ||||
) | ) | ||||
def _getannotation(self, *args, **kw): | def _getmetadata(self, *args, **kw): | ||||
return self.getannotation(*args, **kw) | return self.getmetadata(*args, **kw) | ||||
def _setannotation(self, mailfolder, annotation, value, shared=False): | def _setmetadata(self, mailfolder, metadata, value, shared=False): | ||||
""" | """ | ||||
Login to the actual backend server, then set annotation. | Login to the actual backend server, then set metadata. | ||||
""" | """ | ||||
try: | try: | ||||
server = self.find_mailfolder_server(mailfolder) | server = self.find_mailfolder_server(mailfolder) | ||||
except: | except: | ||||
server = self.server | server = self.server | ||||
log.debug( | log.debug( | ||||
_("Setting annotation %s on folder %s") % ( | _("Setting metadata %s on folder %s") % ( | ||||
annotation, | metadata, | ||||
mailfolder | mailfolder | ||||
), | ), | ||||
level=8 | level=8 | ||||
) | ) | ||||
try: | try: | ||||
self.setannotation(mailfolder, annotation, value, shared) | self.setmetadata(mailfolder, metadata, value, shared) | ||||
except cyruslib.CYRUSError as errmsg: | except cyruslib.CYRUSError as errmsg: | ||||
log.error( | log.error( | ||||
_("Could not set annotation %r on mail folder %r: %r") % ( | _("Could not set metadata %r on mail folder %r: %r") % ( | ||||
annotation, | metadata, | ||||
mailfolder, | mailfolder, | ||||
errmsg | errmsg | ||||
) | ) | ||||
) | ) | ||||
# Use metadata instead of annotations | |||||
def _getannotation(self, *args, **kw): | |||||
return self._getmetadata(*args, **kw) | |||||
# Use metadata instead of annotations | |||||
def _setannotation(self, *args, **kw): | |||||
return self._setmetadata(*args, **kw) | |||||
def _xfer(self, mailfolder, current_server, new_server): | def _xfer(self, mailfolder, current_server, new_server): | ||||
self.connect(self.uri.replace(self.server, current_server)) | self.connect(self.uri.replace(self.server, current_server)) | ||||
log.debug( | log.debug( | ||||
_("Transferring folder %s from %s to %s") % ( | _("Transferring folder %s from %s to %s") % ( | ||||
mailfolder, | mailfolder, | ||||
current_server, | current_server, | ||||
new_server | new_server | ||||
), | ), | ||||
▲ Show 20 Lines • Show All 230 Lines • Show Last 20 Lines |