From: Simo Sorce Date: Fri, 4 Apr 2014 17:26:02 +0000 (-0400) Subject: Add infrastructure to delete plugin data by id X-Git-Tag: v0.2.2~41 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=commitdiff_plain;h=b6a436f76177c0180af3e0e70a88d3f974ac717d;ds=inline Add infrastructure to delete plugin data by id Signed-off-by: Simo Sorce --- 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)