From: David E. Eisenstat Date: Mon, 30 Oct 2006 16:40:07 +0000 (+0000) Subject: Fixed a logic error that was killing records by mistake. X-Git-Tag: planetlab-4_0-rc1~75 X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=commitdiff_plain;h=de9814822774070f439479ad36397f3d36f6eb52 Fixed a logic error that was killing records by mistake. --- diff --git a/database.py b/database.py index d7ddf04..a49304f 100644 --- a/database.py +++ b/database.py @@ -71,13 +71,14 @@ class Database(dict): def deliver_record(self, rec): """A record is simply a dictionary with 'name' and 'timestamp' keys. We keep some persistent private data in the records under keys that start with '_'; thus record updates should not displace such keys.""" + if rec['timestamp'] < self._min_timestamp: return name = rec['name'] old_rec = self.get(name) - if old_rec != None and rec['timestamp'] > old_rec['timestamp']: + if old_rec == None: self[name] = rec + elif rec['timestamp'] > old_rec['timestamp']: for key in old_rec.keys(): if not key.startswith('_'): del old_rec[key] old_rec.update(rec) - elif rec['timestamp'] >= self._min_timestamp: self[name] = rec def set_min_timestamp(self, ts): """The ._min_timestamp member is the timestamp on the last comprehensive update. We use it to determine if a record is stale. This method should be called whenever new GetSlivers() data comes in."""