# HG changeset patch # User Paul Boddie # Date 1444082018 -7200 # Node ID edb6009315183983ba26c33a7617677b4c32b2e1 # Parent a28e6b149b4487ad2f54ff31f9fe3dc2800fb58e Preserve counter-proposals when dequeuing requests: counter-proposal removal should be done explicitly. Changed exists usage to isdir and isfile. diff -r a28e6b149b44 -r edb600931518 imip_store.py --- a/imip_store.py Mon Oct 05 20:10:38 2015 +0200 +++ b/imip_store.py Mon Oct 05 23:53:38 2015 +0200 @@ -25,7 +25,7 @@ from imiptools.dates import format_datetime, get_datetime, to_timezone from imiptools.filesys import fix_permissions, FileBase from imiptools.period import FreeBusyPeriod -from os.path import exists, isfile, join +from os.path import isdir, isfile, join from os import listdir, remove, rmdir from time import sleep import codecs @@ -213,7 +213,7 @@ "Return a list of event identifiers." filename = self.get_object_in_store(user, "objects") - if not filename or not exists(filename): + if not filename or not isdir(filename): return None return [name for name in listdir(filename) if isfile(join(filename, name))] @@ -258,7 +258,7 @@ """ filename = self.get_event_filename(user, uid, recurrenceid) - if not filename or not exists(filename): + if not filename or not isfile(filename): return None return filename and self._get_object(user, filename) @@ -283,7 +283,7 @@ "Get the event for the given 'user' with the given 'uid'." filename = self.get_complete_event_filename(user, uid) - if not filename or not exists(filename): + if not filename or not isfile(filename): return None return filename and self._get_object(user, filename) @@ -355,7 +355,7 @@ """ filename = self.get_object_in_store(user, "recurrences", uid) - if not filename or not exists(filename): + if not filename or not isdir(filename): return [] return [name for name in listdir(filename) if isfile(join(filename, name))] @@ -368,7 +368,7 @@ """ filename = self.get_object_in_store(user, "cancellations", "recurrences", uid) - if not filename or not exists(filename): + if not filename or not isdir(filename): return [] return [name for name in listdir(filename) if isfile(join(filename, name))] @@ -396,7 +396,7 @@ """ filename = self.get_recurrence_filename(user, uid, recurrenceid) - if not filename or not exists(filename): + if not filename or not isfile(filename): return None return filename and self._get_object(user, filename) @@ -452,7 +452,7 @@ """ filename = self.get_object_in_store(user, "freebusy-providers") - if not filename or not exists(filename): + if not filename or not isfile(filename): return None # Attempt to read providers, with a declaration of the datetime @@ -560,7 +560,7 @@ "Get free/busy details for the given 'user'." filename = self.get_object_in_store(user, name or "freebusy") - if not filename or not exists(filename): + if not filename or not isfile(filename): return [] else: return map(lambda t: FreeBusyPeriod(*t), @@ -571,7 +571,7 @@ "For the given 'user', get free/busy details for the 'other' user." filename = self.get_object_in_store(user, "freebusy-other", other) - if not filename or not exists(filename): + if not filename or not isfile(filename): return [] else: return map(lambda t: FreeBusyPeriod(*t), @@ -642,7 +642,7 @@ "Get requests for the given 'user' from the given 'queue'." filename = self.get_object_in_store(user, queue) - if not filename or not exists(filename): + if not filename or not isfile(filename): return None return self._get_table_atomic(user, filename, [(1, None), (2, None)]) @@ -733,15 +733,7 @@ result = [] for request in requests: - if request[:2] == (uid, recurrenceid): - - # Remove associated objects. - - type = request[2] - if type == "COUNTER": - self.remove_counters(user, uid, recurrenceid) - - else: + if request[:2] != (uid, recurrenceid): result.append(request) self.set_requests(user, result) @@ -774,7 +766,7 @@ """ filename = self.get_event_filename(user, uid, recurrenceid, "counters") - if not filename or not exists(filename): + if not filename or not isdir(filename): return False return [name for name in listdir(filename) if isfile(join(filename, name))] @@ -814,7 +806,7 @@ """ filename = self.get_event_filename(user, uid, recurrenceid, "counters") - if not filename: + if not filename or not isdir(filename): return False removed = False @@ -833,7 +825,7 @@ """ filename = self.get_event_filename(user, uid, recurrenceid, "counters", other) - if not filename: + if not filename or not isfile(filename): return False return self._remove_object(filename) @@ -851,7 +843,7 @@ filename = self.get_event_filename(user, uid, recurrenceid) cancelled_filename = self.get_event_filename(user, uid, recurrenceid, "cancellations") - if filename and cancelled_filename and exists(filename): + if filename and cancelled_filename and isfile(filename): return self.move_object(filename, cancelled_filename) return False @@ -885,7 +877,7 @@ filename = self.get_event_filename(user, uid, recurrenceid, "cancellations") - if filename and exists(filename): + if filename and isfile(filename): return self._remove_object(filename) return False