diff options
author | Simo Sorce <simo@redhat.com> | 2014-10-02 19:51:34 -0400 |
---|---|---|
committer | Patrick Uiterwijk <puiterwijk@redhat.com> | 2014-10-06 19:53:33 +0200 |
commit | 99a8dce084c178ad9d1c46aa6b8e8d1def76e754 (patch) | |
tree | dc8e4f92e75d8554757d53865c2af9db05032d15 /ipsilon/util/trans.py | |
parent | 7605a4263263fb399176a0d9eea49ab7ecc81274 (diff) | |
download | ipsilon-99a8dce084c178ad9d1c46aa6b8e8d1def76e754.tar.gz ipsilon-99a8dce084c178ad9d1c46aa6b8e8d1def76e754.tar.xz ipsilon-99a8dce084c178ad9d1c46aa6b8e8d1def76e754.zip |
Make Transaction code more robust
Avoid raising exceptions when transactions are not found, just return
no cookies or empty dicts with no transactions in them.
Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Diffstat (limited to 'ipsilon/util/trans.py')
-rwxr-xr-x | ipsilon/util/trans.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/ipsilon/util/trans.py b/ipsilon/util/trans.py index 8208d4a..05d538e 100755 --- a/ipsilon/util/trans.py +++ b/ipsilon/util/trans.py @@ -25,7 +25,7 @@ class Transaction(Log): data = self.retrieve() if data and 'provider' in data: self.provider = data['provider'] - self._get_cookie() + self._get_cookie(data) else: data = {'provider': self.provider, 'origintime': str(datetime.now())} @@ -41,9 +41,10 @@ class Transaction(Log): data = {self.transaction_id: cookiedata} self._ts.save_unique_data(TRANSTABLE, data) - def _get_cookie(self): - data = self.retrieve() - if 'cookie' not in data: + def _get_cookie(self, data=None): + if data is None: + data = self.retrieve() + if data is None or 'cookie' not in data: raise ValueError('Cookie name not available') self.cookie = SecureCookie(data['cookie']) self.cookie.receive() @@ -51,7 +52,8 @@ class Transaction(Log): raise ValueError('Missing or invalid cookie') def _del_cookie(self): - self.cookie.delete() + if self.cookie: + self.cookie.delete() def wipe(self): if not self.transaction_id: @@ -67,7 +69,7 @@ class Transaction(Log): def retrieve(self): data = self._ts.get_unique_data(TRANSTABLE, uuidval=self.transaction_id) - return data.get(self.transaction_id) + return data.get(self.transaction_id) or dict() def get_GET_arg(self): return "%s=%s" % (TRANSID, self.transaction_id) |