diff options
Diffstat (limited to 'src/olpc/datastore/backingstore.py')
-rw-r--r-- | src/olpc/datastore/backingstore.py | 16 |
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): |