Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <sascha-pgp@silbe.org>2010-08-30 11:46:42 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2010-08-30 11:46:42 (GMT)
commitcd88faaf2cffdb0755d5d14e09834a08a82137ad (patch)
tree5d6b76dfe4a44c5a4793e9db04a52c904feb285d
parent9882d3d0145d34043d6717fd7a2855c51e3fb936 (diff)
set DBus timeouts, the default is way too short for us
-rw-r--r--restore.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/restore.py b/restore.py
index 8b163e5..2e4518a 100644
--- a/restore.py
+++ b/restore.py
@@ -55,6 +55,8 @@ DS_DBUS_INTERFACE1 = "org.laptop.sugar.DataStore"
DS_DBUS_PATH1 = "/org/laptop/sugar/DataStore"
DS_DBUS_INTERFACE2 = "org.laptop.sugar.DataStore2"
DS_DBUS_PATH2 = "/org/laptop/sugar/DataStore2"
+DS_DBUS_SIMPLE_FIND_TIMEOUT = 60
+DS_DBUS_SAVE_TIMEOUT = 5*60
CTIME_FORMAT = '%Y-%m-%dT%H:%M:%S'
@@ -393,7 +395,7 @@ class AsyncRestore(gobject.GObject):
self._data_store = dbus.Interface(bus.get_object(DS_DBUS_SERVICE,
DS_DBUS_PATH2), DS_DBUS_INTERFACE2)
self._data_store.find({'tree_id': 'invalid'},
- {'metadata': ['tree_id']})
+ {'metadata': ['tree_id']}, timeout=DS_DBUS_SIMPLE_FIND_TIMEOUT)
logging.info('Data store with version support found')
return
@@ -402,7 +404,8 @@ class AsyncRestore(gobject.GObject):
self._data_store = dbus.Interface(bus.get_object(DS_DBUS_SERVICE,
DS_DBUS_PATH1), DS_DBUS_INTERFACE1)
- self._data_store.find({'uid': 'invalid'}, ['uid'])
+ self._data_store.find({'uid': 'invalid'}, ['uid'],
+ timeout=DS_DBUS_SIMPLE_FIND_TIMEOUT)
logging.info('Data store without version support found')
def _save_entry(self, metadata, data_path):
@@ -418,7 +421,7 @@ class AsyncRestore(gobject.GObject):
# FIXME: cannot restore version_id
self._data_store.save(tree_id, parent_id, metadata, data_path,
- True)
+ True, timeout=DS_DBUS_SAVE_TIMEOUT)
else:
uid = metadata.get('uid') or metadata['tree_id']
timestamp = metadata.get('timestamp') or \
@@ -432,16 +435,19 @@ class AsyncRestore(gobject.GObject):
logging.info('Skipping outdated entry for %r', uid)
return
- self._data_store.update(uid, metadata, data_path, True)
+ self._data_store.update(uid, metadata, data_path, True,
+ timeout=DS_DBUS_SAVE_TIMEOUT)
else:
- self._data_store.create(metadata, data_path, True)
+ self._data_store.create(metadata, data_path, True,
+ timeout=DS_DBUS_SAVE_TIMEOUT)
def _find_entry_v1(self, uid):
"""Retrieve given entry from v1 data store if it exists.
"""
try:
- return self._data_store.get_properties(uid)
+ return self._data_store.get_properties(uid,
+ timeout=DS_DBUS_SIMPLE_FIND_TIMEOUT)
except dbus.DBusException, exception:
exception_name = exception.get_dbus_name()
@@ -457,7 +463,8 @@ class AsyncRestore(gobject.GObject):
if version_id:
query['version_id'] = version_id
- entries = self._data_store.find(query,{}, byte_arrays=True)[0]
+ entries = self._data_store.find(query, {}, byte_arrays=True,
+ timeout=DS_DBUS_SIMPLE_FIND_TIMEOUT)[0]
if entries:
return entries[0]
return None