From f0f4311be9226e71e9e0945dd98713efae0bc23d Mon Sep 17 00:00:00 2001 From: Antoine Millet Date: Fri, 13 May 2011 17:44:45 +0200 Subject: [PATCH] Fixed persistency bug with cache and con & ip tags. --- ccserver/ccserver.py | 2 +- ccserver/objectsdb.py | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ccserver/ccserver.py b/ccserver/ccserver.py index 4eaa570..3ff55be 100644 --- a/ccserver/ccserver.py +++ b/ccserver/ccserver.py @@ -94,7 +94,7 @@ class CCServer(object): for login in to_register: conf = self.conf.show(login) obj = TqlObject(id=login, r=conf['role'], a=login) - self.objects.register(obj, cleanable=('ip', 'con')) + self.objects.register(obj) for login in to_unregister: self.objects.unregister(login) diff --git a/ccserver/objectsdb.py b/ccserver/objectsdb.py index 2c01297..2cbb204 100644 --- a/ccserver/objectsdb.py +++ b/ccserver/objectsdb.py @@ -267,7 +267,11 @@ class ObjectsDB(object): else: # The client is connected: if parent is None: - obj.update(client.get_tags()) + serv_tags = client.get_tags() + obj.update(serv_tags) + # Add an infinite ttl to server defined tags: + for tag in serv_tags: + self._ttls[(obj['id'], tag)] = datetime.max # First, check if each tag is not already cached: now = datetime.now() @@ -314,15 +318,13 @@ class ObjectsDB(object): ''' return self._objects[oid] - def register(self, obj, cleanable=()): + def register(self, obj): ''' Populate the database with the specified object. All the tags specified in the passed object are not declared in cache and will never be cleaned. :param obj: the object to register - :param clenable: the optionnal list of tags to declare as cleanable when - the cache is cleaned ''' with self._lock: @@ -332,8 +334,6 @@ class ObjectsDB(object): raise AlreadyRegistered('The object is already registered') else: self._objects[obj['id']] = obj - for tag in cleanable: - self._ttls[(obj['id'], tag)] = datetime.max def unregister(self, obj_id): ''' -- GitLab