From 24afff8b6460f41b80967ed469ae5cb3f57f118a Mon Sep 17 00:00:00 2001 From: Lin Yang Date: Mon, 1 Jul 2013 16:18:52 +0800 Subject: [PATCH] Add more specific exception for backenddb Entity Change-Id: Ie232a034c1fc753d3c07d83b4a612a51ac395890 Signed-off-by: Lin Yang --- common/backenddb.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/common/backenddb.py b/common/backenddb.py index 3c7c4af..97b8653 100644 --- a/common/backenddb.py +++ b/common/backenddb.py @@ -20,6 +20,10 @@ import yaml import json from copy import deepcopy +class EntityError(Exception): + """Entity custom exception.""" + pass + class BackendDBError(Exception): """BackendDB custom exception.""" pass @@ -76,6 +80,12 @@ class Entity(object): value = self._db.get(key) if self.jsoned: value = json.loads(value) + elif self._db.type(key) == 'none': + raise EntityError("[Error] key %s don't exist in redis" % key) + else: + raise EntityError("[Error] don't support \"%s\" data in redis" \ + % self._db.type(key)) + return value def __setitem__(self, key, value): @@ -91,8 +101,11 @@ class Entity(object): mvalue[i] = json.dumps(mvalue[i]) for item in mvalue: self._db.rpush(key, item) - else: + elif isinstance(value, str): self._db.set(key, value) + else: + raise EntityError("[Error] don't support \"%s\" data in redis" \ + % type(value)) def delete(self, key): """Remove key starting with the prefix from the db.""" -- 2.7.4