summaryrefslogtreecommitdiffstats
path: root/src/util/data.py
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2014-01-23 15:00:51 +0100
committerPetr Vobornik <pvoborni@redhat.com>2014-01-24 19:07:05 +0100
commitefaed49f0c8069e3c3ddaf32be7bb8d26c8aae4c (patch)
tree91047b2a197bab1d613aab5028a6399ec67e3ff1 /src/util/data.py
parent96891701df4f1a3c2416663fcc84dde3de3e6bd7 (diff)
downloadipsilon-efaed49f0c8069e3c3ddaf32be7bb8d26c8aae4c.tar.gz
ipsilon-efaed49f0c8069e3c3ddaf32be7bb8d26c8aae4c.tar.xz
ipsilon-efaed49f0c8069e3c3ddaf32be7bb8d26c8aae4c.zip
Rename src package to ipsilon
Diffstat (limited to 'src/util/data.py')
-rwxr-xr-xsrc/util/data.py197
1 files changed, 0 insertions, 197 deletions
diff --git a/src/util/data.py b/src/util/data.py
deleted file mode 100755
index 3fda6d3..0000000
--- a/src/util/data.py
+++ /dev/null
@@ -1,197 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (C) 2013 Simo Sorce <simo@redhat.com>
-#
-# see file 'COPYING' for use and warranty information
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import sqlite3
-import cherrypy
-
-class Store(object):
-
- def __init__(self, path=None):
- if path is None:
- self._path = os.getcwd()
- else:
- self._path = path
- self._admin_dbname = self._get_admin_dbname()
- self._user_dbname = self._get_userprefs_dbname()
-
- def _get_admin_dbname(self):
- path = None
- if 'admin.config.db' in cherrypy.config:
- path = cherrypy.config['admin.config.db']
- if not path:
- path = os.path.join(self._path, 'adminconfig.sqlite')
- return path
-
- def _get_userprefs_dbname(self):
- path = None
- if 'user.prefs.db' in cherrypy.config:
- path = cherrypy.config['user.prefs.db']
- if not path:
- path = os.path.join(self._path, 'userprefs.sqlite')
- return path
-
- def _load_config(self, dbname):
- con = None
- rows = []
- try:
- con = sqlite3.connect(dbname)
- cur = con.cursor()
- cur.executescript("""
- CREATE TABLE IF NOT EXISTS config(name TEXT, value TEXT)
- """)
- cur.execute("SELECT * FROM config")
- rows = cur.fetchall()
- con.commit()
- except sqlite3.Error, e:
- if con:
- con.rollback()
- cherrypy.log.error("Failed to load config: [%s]" % e)
- finally:
- if con:
- con.close()
-
- conf = {}
- for row in rows:
- if row[0] in conf:
- # multivalued
- if conf[row[0]] is list:
- conf[row[0]].append(row[1])
- else:
- v = conf[row[0]]
- conf[row[0]] = [v, row[1]]
- else:
- conf[row[0]] = row[1]
-
- return conf
-
- def get_admin_config(self):
- return self._load_config(self._admin_dbname)
-
- def _load_user_prefs(self, dbname, user):
- con = None
- rows = []
- try:
- con = sqlite3.connect(dbname)
- cur = con.cursor()
- cur.executescript("""
- CREATE TABLE IF NOT EXISTS users(name TEXT,
- option TEXT,
- value TEXT)
- """)
- cur.execute("SELECT option, value FROM users "
- "where name = '%s'" % user)
- rows = cur.fetchall()
- con.commit()
- except sqlite3.Error, e:
- if con:
- con.rollback()
- cherrypy.log.error("Failed to load %s's prefs from "
- "%s: [%s]" % ( user, dbname, e))
- finally:
- if con:
- con.close()
-
- conf = {}
- for row in rows:
- conf[row[0]] = row[1]
-
- return conf
-
- def _get_user_preferences(self, user):
- return self._load_user_prefs(self._user_dbname, user)
-
- def _load_login_config(self, dbname):
- con = None
- rows = []
- try:
- con = sqlite3.connect(dbname)
- cur = con.cursor()
- cur.executescript("""
- CREATE TABLE IF NOT EXISTS login_config(name TEXT,
- option TEXT,
- value TEXT)
- """)
- cur.execute("SELECT * FROM login_config")
- rows = cur.fetchall()
- con.commit()
- except sqlite3.Error, e:
- if con:
- con.rollback()
- cherrypy.log.error("Failed to load config: [%s]" % e)
- finally:
- if con:
- con.close()
-
- lpo = []
- plco = dict()
- for row in rows:
- if row[0] == 'global':
- if row[1] == 'order':
- lpo = row[2].split(',')
- continue
- if row[0] not in plco:
- # one dict per provider
- plco[row[0]] = dict()
-
- conf = plco[row[0]]
- if row[1] in conf:
- if conf[row[1]] is list:
- conf[row[1]].append(row[2])
- else:
- v = conf[row[1]]
- conf[row[1]] = [v, row[2]]
- else:
- conf[row[1]] = row[2]
-
- return (lpo, plco);
-
- def get_login_config(self):
- return self._load_login_config(self._admin_dbname)
-
- def save_login_plugin_config(self, name, options):
- con = None
- try:
- con = sqlite3.connect(self._admin_dbname)
- cur = con.cursor()
- curvals = dict()
- for row in cur.execute(
- "SELECT option, value FROM login_config WHERE name=?",
- (name,)):
- curvals[row[0]] = row[1]
-
- for o in options:
- if o in curvals:
- cur.execute(
- "UPDATE login_config SET value=? WHERE name=? AND option=?",
- (options[o], name, o))
- else:
- cur.execute(
- "INSERT INTO login_config VALUES(?,?,?)",
- (name, o, options[o]))
-
- con.commit()
- except sqlite3.Error, e:
- if con:
- con.rollback()
- cherrypy.log.error("Failed to store config: [%s]" % e)
- raise
- finally:
- if con:
- con.close()