[nanny] UpdatePkgFilter exported to dbus
- From: Roberto Majadas <telemaco src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nanny] UpdatePkgFilter exported to dbus
- Date: Mon, 1 Feb 2010 15:25:31 +0000 (UTC)
commit 03552aaa3264217e39dd179ecfb24b9bf9a776de
Author: Roberto Majadas <roberto majadas openshine com>
Date: Mon Feb 1 15:57:47 2010 +0100
UpdatePkgFilter exported to dbus
daemon/src/FilterManager.py | 26 +++++++++++++++++++++++---
daemon/src/NannyDBus.py | 5 +++++
2 files changed, 28 insertions(+), 3 deletions(-)
---
diff --git a/daemon/src/FilterManager.py b/daemon/src/FilterManager.py
index d076cd5..025f988 100644
--- a/daemon/src/FilterManager.py
+++ b/daemon/src/FilterManager.py
@@ -228,18 +228,38 @@ class FilterManager (gobject.GObject) :
def __copy_pkg_filter(self, orig, dest):
try:
print "Coping %s" % orig
+ if os.path.exists(dest) :
+ print "Making Backup file"
+ gio.File(dest).move(gio.File(dest + ".bak"))
+
gio.File(orig).copy(gio.File(dest))
print "Copied %s in %s" % (orig, dest)
+
+ if os.path.exists(dest + ".bak") :
+ print "Removing Backup file"
+ os.unlink(dest + ".bak")
return True
except:
print "Copy failed! (%s, %s)" % (orig, dest)
+ if os.path.exists(dest + ".bak") :
+ print "Revert to backup file"
+ gio.File(dest + ".bak").move(gio.File(dest))
return False
- def remove_pkg_filter(self):
+ def remove_pkg_filter(self, pkg_id):
pass
- def update_pkg_filter(self):
- pass
+ def update_pkg_filter(self, pkg_id, new_db):
+ for id, ro in self.list_pkg_filter() :
+ if id == pkg_id and ro == False:
+ d = threads.deferToThread(self.__copy_pkg_filter, new_db, pkg_id)
+ block_d = BlockingDeferred(d)
+ qr = block_d.blockOn()
+ if qr == True :
+ return True
+ else:
+ return False
+ return False
def list_pkg_filter(self):
ret = []
diff --git a/daemon/src/NannyDBus.py b/daemon/src/NannyDBus.py
index 8623dc9..3c2c52a 100644
--- a/daemon/src/NannyDBus.py
+++ b/daemon/src/NannyDBus.py
@@ -135,6 +135,11 @@ class NannyDBus(dbus.service.Object):
in_signature='sss', out_signature='b')
def AddPkgFilter(self, name, description, path):
return self.quarterback.filter_manager.add_pkg_filter(name, description, path)
+
+ @dbus.service.method("org.gnome.Nanny.WebDatabase",
+ in_signature='ss', out_signature='b')
+ def UpdatePkgFilter(self, pkg_id, new_db_path):
+ return self.quarterback.filter_manager.update_pkg_filter(pkg_id, new_db_path)
@dbus.service.method("org.gnome.Nanny.WebDatabase",
in_signature='', out_signature='a(sb)')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]