[nanny] Monitoring external filters db
- From: Roberto Majadas <telemaco src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nanny] Monitoring external filters db
- Date: Mon, 1 Feb 2010 17:38:39 +0000 (UTC)
commit 059cf06b9f1feba03744a846f11e377fc430fa89
Author: Roberto Majadas <roberto majadas openshine com>
Date: Mon Feb 1 18:38:18 2010 +0100
Monitoring external filters db
daemon/src/FilterManager.py | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 42 insertions(+), 1 deletions(-)
---
diff --git a/daemon/src/FilterManager.py b/daemon/src/FilterManager.py
index 6893293..bf20877 100644
--- a/daemon/src/FilterManager.py
+++ b/daemon/src/FilterManager.py
@@ -176,7 +176,48 @@ class FilterManager (gobject.GObject) :
"users_info" : {}
}
self.__save_pkg_filters_conf()
-
+
+ gobject.timeout_add(5000, self.__check_external_dbs)
+
+ def __check_external_dbs(self):
+ ddbb = glob('/usr/share/nanny/pkg_filters/*/filters.db')
+ if len(ddbb) == 0 :
+ for db in self.pkg_filters_conf.keys() :
+ if db.startswith("/usr/share/nanny/pkg_filters/") :
+ print "Remove conf of pkg_list (%s)" % db
+ self.pkg_filters_conf.pop(db)
+ self.__save_pkg_filters_conf()
+
+ for db in self.db_pools.keys() :
+ if db.startswith("/usr/share/nanny/pkg_filters/"):
+ print "Closing database of pkg_list (%s)" % db
+ self.db_pools.pop(db).close()
+ else:
+ for db in self.pkg_filters_conf.keys() :
+ if db.startswith("/usr/share/nanny/pkg_filters/") and db not in ddbb :
+ print "Remove conf of pkg_list (%s)" % db
+ self.pkg_filters_conf.pop(db)
+ self.__save_pkg_filters_conf()
+
+ for db in self.db_pools.keys() :
+ if db.startswith("/usr/share/nanny/pkg_filters/") and db not in ddbb:
+ print "Closing database of pkg_list (%s)" % db
+ self.db_pools.pop(db).close()
+
+ for db in ddbb :
+ if db not in self.pkg_filters_conf.keys() :
+ print "Add missing conf of pkg_list (%s)" % db
+ self.pkg_filters_conf[db] = {"categories" : [],
+ "users_info" : {}
+ }
+ self.__save_pkg_filters_conf()
+
+ if db not in self.db_pools.keys():
+ print "Opening database of pkg_list (%s)" % db
+ self.db_pools[db] = adbapi.ConnectionPool('sqlite3', db,
+ check_same_thread=False,
+ cp_openfun=on_db_connect)
+ return True
def __save_pkg_filters_conf(self):
output = open("/var/lib/nanny/pkg_filters/conf", 'wb')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]