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:
authorBenjamin Saller <bcsaller@objectrealms.net>2007-06-29 09:07:58 (GMT)
committer Benjamin Saller <bcsaller@objectrealms.net>2007-06-29 09:07:58 (GMT)
commit251900b46bf2dc42dcacdd1cb8ae4c6447a03a27 (patch)
treedfd962fde88ac72999f3952f333b74161d4184bc /src/olpc/datastore/backingstore.py
parentd23ee8a383f9abd30f7f4f979d843c4d510033a4 (diff)
sanitize dbus input to methods by reducing it to base types
save mount options persistently factored out bits of model into a domain class to anticipate a xapian move
Diffstat (limited to 'src/olpc/datastore/backingstore.py')
-rw-r--r--src/olpc/datastore/backingstore.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/olpc/datastore/backingstore.py b/src/olpc/datastore/backingstore.py
index 27d1477..04a9fa8 100644
--- a/src/olpc/datastore/backingstore.py
+++ b/src/olpc/datastore/backingstore.py
@@ -161,11 +161,14 @@ class FileBackingStore(BackingStore):
fp = open(fn, 'r')
desc = pickle.load(fp)
fp.close()
- if 'id' not in kwargs: desc['id'] = utils.create_uid()
- if 'uri' not in kwargs: desc['uri'] = self.uri
- if not kwargs.get('title', ''): desc['title'] = self.uri
desc.update(kwargs)
+
+ if 'id' not in desc: desc['id'] = utils.create_uid()
+ 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()
@@ -199,7 +202,8 @@ class FileBackingStore(BackingStore):
# This will ensure the fulltext and so on are all assigned
qm.bind_to(self)
qm.prepare()
- self.create_descriptor(title=self.options.get('title', ''))
+
+ self.create_descriptor(**options)
self.querymanager = qm
def load(self):
@@ -208,12 +212,17 @@ class FileBackingStore(BackingStore):
# otherwise we will connect the global manager
# in load
index_name = os.path.join(self.base, self.INDEX_NAME)
+ options = utils.options_for(self.options, 'querymanager_')
if 'fulltext_repo' not in self.options:
- self.options['fulltext_repo'] = os.path.join(self.base,
- query.DefaultQueryManager.FULLTEXT_NAME)
-
- qm = query.DefaultQueryManager(index_name, **self.options)
+ options['fulltext_repo'] = os.path.join(self.base,
+ query.DefaultQueryManager.FULLTEXT_NAME)
+
+ qm = query.DefaultQueryManager(index_name, **options)
+ desc = utils.options_for(self.options,
+ 'querymanager_', invert=True)
+ if desc: self.create_descriptor(**desc)
+
# This will ensure the fulltext and so on are all assigned
qm.bind_to(self)
qm.prepare()