Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/olpc/datastore/backingstore.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/olpc/datastore/backingstore.py')
-rw-r--r--src/olpc/datastore/backingstore.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/olpc/datastore/backingstore.py b/src/olpc/datastore/backingstore.py
index 12dc582..e900649 100644
--- a/src/olpc/datastore/backingstore.py
+++ b/src/olpc/datastore/backingstore.py
@@ -22,6 +22,8 @@ import threading
import errno
import shutil
import urllib
+import traceback
+import sys
import dbus
import xapian
@@ -267,11 +269,15 @@ class FileBackingStore(BackingStore):
if 'uri' not in desc: desc['uri'] = self.uri
if 'title' not in desc: desc['title'] = self.uri
-
- fp = open(fn, 'w')
- pickle.dump(desc, fp)
- fp.close()
-
+ # TODO: Would be better to check if the device is present and
+ # don't try to update the descriptor file if it's not.
+ try:
+ fp = open(fn, 'w')
+ pickle.dump(desc, fp)
+ fp.close()
+ except IOError, e:
+ logging.error('Unable to write descriptor:\n' + \
+ ''.join(traceback.format_exception(*sys.exc_info())))
@staticmethod
def parse(uri):