summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2015-04-01 14:13:41 -0400
committerSimo Sorce <simo@redhat.com>2015-04-01 20:21:33 -0400
commitce33244e99c311856b405aa36acbd7f35db393ab (patch)
tree1df2c3fa6aea1091fa9a30fd5358e7509fa22bad
parent531f83b91ddfe5c811bad5b1aebfc9beb9fca1b1 (diff)
downloadcustodia-ce33244e99c311856b405aa36acbd7f35db393ab.tar.gz
custodia-ce33244e99c311856b405aa36acbd7f35db393ab.tar.xz
custodia-ce33244e99c311856b405aa36acbd7f35db393ab.zip
Fix sqlite store bugs
Use print statement that works in python3 Create table so that keys are unique. Return directly the bare value associated with the key, if any.
-rw-r--r--custodia/store/sqlite.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/custodia/store/sqlite.py b/custodia/store/sqlite.py
index f5908d0..9373ada 100644
--- a/custodia/store/sqlite.py
+++ b/custodia/store/sqlite.py
@@ -1,5 +1,6 @@
# Copyright (C) 2015 Custodia Project Contributors - see LICENSE file
+from __future__ import print_function
from custodia.store.interface import CSStore, CSStoreError
import os
import sqlite3
@@ -7,7 +8,7 @@ import sys
def log_error(error):
- print >> sys.stderr, error
+ print(error, file=sys.stderr)
class SqliteStore(CSStore):
@@ -26,15 +27,19 @@ class SqliteStore(CSStore):
try:
conn = sqlite3.connect(self.dburi)
c = conn.cursor()
- r = c.execute(query, (key))
+ r = c.execute(query, (key,))
value = r.fetchall()
except sqlite3.Error as err:
log_error("Error fetching key %s: [%r]" % (key, repr(err)))
raise CSStoreError('Error occurred while trying to get key')
- return value
+ if len(value) > 0:
+ return value[0][0]
+ else:
+ return None
def _create(self, cur):
- create = "CREATE TABLE IF NOT EXISTS %s (key, value)" % self.table
+ create = "CREATE TABLE IF NOT EXISTS %s " \
+ "(key PRIMARY KEY UNIQUE, value)" % self.table
cur.execute(create)
def set(self, key, value):