From: Ed Bartosh Date: Sun, 10 Aug 2014 21:14:47 +0000 (+0300) Subject: Fix setting hash values X-Git-Tag: 1.0~89 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dadcc6993dfe5074e21784f831c992e3c449eeaf;p=services%2Fjenkins-scripts.git Fix setting hash values As hmset call doesn't remove old values this fuctionality worked incorrectly and old values were not removed. For example, removing 'PrereleaseDir' from repos.yaml and loading it to the database was not removing this field in Redis. Fixes: #2070 Change-Id: Ida42bd2a24a128b0f82f67bcc2a3b3905ff49920 Signed-off-by: Ed Bartosh --- diff --git a/common/backenddb.py b/common/backenddb.py index 9690270..fee8cd3 100644 --- a/common/backenddb.py +++ b/common/backenddb.py @@ -92,6 +92,11 @@ class Entity(object): key = "%s%s" % (self._prefix, key) if isinstance(value, dict): mvalue = deepcopy(value) + # delete fields which are not present in new value + for field in self._db.hgetall(key).keys(): + if field not in mvalue: + self._db.hdel(key, field) + # dump jsoned fields for field in self.jsoned: mvalue[field] = json.dumps(value[field]) self._db.hmset(key, mvalue)