diff options
author | Sascha 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) |
commit | cd88faaf2cffdb0755d5d14e09834a08a82137ad (patch) | |
tree | 5d6b76dfe4a44c5a4793e9db04a52c904feb285d | |
parent | 9882d3d0145d34043d6717fd7a2855c51e3fb936 (diff) |
set DBus timeouts, the default is way too short for us
-rw-r--r-- | restore.py | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -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 |