summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-04-04 13:26:02 -0400
committerSimo Sorce <simo@redhat.com>2014-04-04 13:33:09 -0400
commitb6a436f76177c0180af3e0e70a88d3f974ac717d (patch)
treed689c9dae9a91426de992914942bb8101f8e084b
parente3547ec9148642659c3708db8a54fb008b1d9995 (diff)
downloadipsilon-b6a436f76177c0180af3e0e70a88d3f974ac717d.tar.gz
ipsilon-b6a436f76177c0180af3e0e70a88d3f974ac717d.tar.xz
ipsilon-b6a436f76177c0180af3e0e70a88d3f974ac717d.zip
Add infrastructure to delete plugin data by id
Signed-off-by: Simo Sorce <simo@redhat.com>
-rwxr-xr-xipsilon/util/data.py17
-rwxr-xr-xipsilon/util/plugin.py3
2 files changed, 20 insertions, 0 deletions
diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py
index 52dfa78..7d0e0ff 100755
--- a/ipsilon/util/data.py
+++ b/ipsilon/util/data.py
@@ -396,6 +396,23 @@ class Store(object):
if con:
con.close()
+ def del_datum(self, plugin, idval):
+ DELETE = "DELETE FROM %s_data WHERE id=?" % plugin
+ con = None
+ try:
+ con = sqlite3.connect(self._admin_dbname)
+ cur = con.cursor()
+ cur.execute(DELETE, (idval,))
+ con.commit()
+ except sqlite3.Error, e:
+ if con:
+ con.rollback()
+ cherrypy.log.error("Failed to delete %s data: [%s]" % (plugin, e))
+ raise
+ finally:
+ if con:
+ con.close()
+
def wipe_data(self, plugin):
# Try to backup old data first, just in case
try:
diff --git a/ipsilon/util/plugin.py b/ipsilon/util/plugin.py
index cdf997e..c57cb29 100755
--- a/ipsilon/util/plugin.py
+++ b/ipsilon/util/plugin.py
@@ -160,6 +160,9 @@ class PluginObject(object):
def new_datum(self, datum):
self._data.new_datum(self.name, datum)
+ def del_datum(self, idval):
+ self._data.del_datum(self.name, idval)
+
def wipe_config_values(self, facility):
self._data.wipe_plugin_config(facility, self.name)