From: Simo Sorce Date: Wed, 19 Mar 2014 22:41:56 +0000 (-0400) Subject: Add functions to wipe and save plugin config data X-Git-Tag: v0.2.2~65 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=commitdiff_plain;h=90dabd2d3e2509b20b2df104d73157ba02128bbe Add functions to wipe and save plugin config data This way all is needed is to instantiate a proper PluginObject from any provider and just call its functions Signed-off-by: Simo Sorce --- diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py index 2a55bb2..70e7d74 100755 --- a/ipsilon/util/data.py +++ b/ipsilon/util/data.py @@ -189,6 +189,25 @@ class Store(object): if con: con.close() + def wipe_plugin_config(self, facility, plugin): + # Try to backup old data first, just in case ? + try: + con = sqlite3.connect(self._admin_dbname) + cur = con.cursor() + cur.execute("CREATE TABLE IF NOT EXISTS " + + facility + " (name TEXT,option TEXT,value TEXT)") + cur.execute("DELETE FROM " + facility + " WHERE name=?", + (plugin,)) + con.commit() + except sqlite3.Error, e: + if con: + con.rollback() + cherrypy.log.error("Failed to wipe %s config: [%s]" % (plugin, e)) + raise + finally: + if con: + con.close() + def get_data(self, plugin, idval=None, name=None, value=None): con = None rows = [] @@ -276,3 +295,21 @@ class Store(object): finally: if con: con.close() + + def wipe_data(self, plugin): + # Try to backup old data first, just in case + try: + con = sqlite3.connect(self._admin_dbname) + cur = con.cursor() + cur.execute("DROP TABLE IF EXISTS " + plugin + "_data") + cur.execute("CREATE TABLE " + plugin + "_data" + "(id INTEGER, name TEXT, value TEXT)") + con.commit() + except sqlite3.Error, e: + if con: + con.rollback() + cherrypy.log.error("Failed to wipe %s data: [%s]" % (plugin, e)) + raise + finally: + if con: + con.close() diff --git a/ipsilon/util/plugin.py b/ipsilon/util/plugin.py index fce058d..9ffa131 100755 --- a/ipsilon/util/plugin.py +++ b/ipsilon/util/plugin.py @@ -144,9 +144,18 @@ class PluginObject(object): self._config = dict() self._config[option] = value + def save_plugin_config(self, facility): + self._data.save_plugin_config(facility, self.name, self._config) + 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) + + def wipe_config_values(self, facility): + self._data.wipe_plugin_config(facility, self.name) + + def wipe_data(self): + self._data.wipe_data(self.name)