From b6a436f76177c0180af3e0e70a88d3f974ac717d Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 4 Apr 2014 13:26:02 -0400 Subject: [PATCH] Add infrastructure to delete plugin data by id Signed-off-by: Simo Sorce --- ipsilon/util/data.py | 17 +++++++++++++++++ ipsilon/util/plugin.py | 3 +++ 2 files changed, 20 insertions(+) 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) -- 2.20.1