summaryrefslogtreecommitdiffstats
path: root/ipsilon/util
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-02-26 18:42:09 -0500
committerSimo Sorce <simo@redhat.com>2014-02-26 21:50:27 -0500
commit2926eb00f40d925549b14b86f73f8649df1e9c05 (patch)
treee750f5cbe339f2aa85257f35805a662a956c0b3f /ipsilon/util
parent87f1f56c157145e81efa6b58ec9b0d7f89facfc0 (diff)
downloadipsilon.git-2926eb00f40d925549b14b86f73f8649df1e9c05.tar.gz
ipsilon.git-2926eb00f40d925549b14b86f73f8649df1e9c05.tar.xz
ipsilon.git-2926eb00f40d925549b14b86f73f8649df1e9c05.zip
Add Service Provider class
This class allows to represent a service provider and its associated policy Signed-off-by: Simo Sorce <simo@redhat.com>
Diffstat (limited to 'ipsilon/util')
-rwxr-xr-xipsilon/util/data.py26
-rwxr-xr-xipsilon/util/plugin.py5
2 files changed, 27 insertions, 4 deletions
diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py
index cbd3b49..2a55bb2 100755
--- a/ipsilon/util/data.py
+++ b/ipsilon/util/data.py
@@ -189,21 +189,43 @@ class Store(object):
if con:
con.close()
- def get_data(self, plugin):
+ def get_data(self, plugin, idval=None, name=None, value=None):
con = None
rows = []
+ names = None
+ values = ()
+ if idval or name or value:
+ names = ""
+ if idval:
+ names += " id=?"
+ values = values + (idval,)
+ if name:
+ if len(names) != 0:
+ names += " AND"
+ names += " name=?"
+ values = values + (name,)
+ if value:
+ if len(names) != 0:
+ names += " AND"
+ names += " value=?"
+ values = values + (value,)
try:
con = sqlite3.connect(self._admin_dbname)
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS " +
plugin + "_data (id INTEGER, name TEXT, value TEXT)")
- cur.execute("SELECT * FROM " + plugin + "_data")
+ if not names:
+ cur.execute("SELECT * FROM " + plugin + "_data")
+ else:
+ cur.execute("SELECT * FROM " + plugin + "_data WHERE" +
+ names, values)
rows = cur.fetchall()
con.commit()
except sqlite3.Error, e:
if con:
con.rollback()
cherrypy.log.error("Failed to load %s data: [%s]" % (plugin, e))
+ cherrypy.log.error(repr([names, values]))
finally:
if con:
con.close()
diff --git a/ipsilon/util/plugin.py b/ipsilon/util/plugin.py
index 16a086a..045cc75 100755
--- a/ipsilon/util/plugin.py
+++ b/ipsilon/util/plugin.py
@@ -138,8 +138,9 @@ class PluginObject(object):
self._config = dict()
self._config[option] = value
- def get_data(self):
- return self._data.get_data(self.name)
+ def get_data(self, idval=None, name=None, value=None):
+ return self._data.get_data(self.name, idval=idval, name=name,
+ value=value)
def save_data(self, data):
self._data.save_data(self.name, data)