X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Futil%2Fdata.py;h=8d6ae11c6ee4b8febc384dca3e6ff35a55b3431f;hp=70e7d741882390caddcdeb03fcb15c9383295b3c;hb=a7b29aa585a5ec515514f88167688b0e6deb8f62;hpb=f14fc0dfd23d33ccb801da79b80c65ec8291e5c6 diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py index 70e7d74..8d6ae11 100755 --- a/ipsilon/util/data.py +++ b/ipsilon/util/data.py @@ -161,6 +161,41 @@ class Store(object): return (lpo, plco) + def get_plugin_config(self, facility, plugin): + con = None + rows = [] + 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("SELECT option, value FROM " + + facility + " WHERE name=?", (plugin,)) + rows = cur.fetchall() + con.commit() + except sqlite3.Error, e: + if con: + con.rollback() + fpe = (facility, plugin, e) + cherrypy.log.error("Failed to get %s/%s config: [%s]" % fpe) + raise + finally: + if con: + con.close() + + res = dict() + for (option, value) in rows: + if option in res: + if res[option] is list: + res[option].append(value) + else: + v = res[option] + res[option] = [v, value] + else: + res[option] = value + + return res + def save_plugin_config(self, facility, plugin, options): SELECT = "SELECT option, value FROM %s WHERE name=?" % facility UPDATE = "UPDATE %s SET value=? WHERE name=? AND option=?" % facility @@ -169,6 +204,8 @@ class Store(object): try: con = sqlite3.connect(self._admin_dbname) cur = con.cursor() + cur.execute("CREATE TABLE IF NOT EXISTS " + + facility + " (name TEXT,option TEXT,value TEXT)") curvals = dict() for row in cur.execute(SELECT, (plugin,)): curvals[row[0]] = row[1]