gae storage implementation missing temp_storage method.

Tarashish Mishra avatarTarashish Mishra created an issue

Whoosh causes GAE to crash due to missing temp_storage method in the gae storage implementation. Here is the commit which introduced temporary files.

And here is the complete traceback

Traceback (most recent call last):
  File "/home/sunu/moin/support/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/sunu/moin/support/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/sunu/moin/support/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/sunu/moin/support/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/sunu/moin/MoinMoin/apps/frontend/views.py", line 463, in modify_item
    return item.do_modify()
  File "/home/sunu/moin/MoinMoin/items/__init__.py", line 659, in do_modify
    self.modify(meta, data, comment, contenttype_guessed, contenttype_qs)
  File "/home/sunu/moin/MoinMoin/items/__init__.py", line 356, in modify
    return self._save(meta, data, contenttype_guessed=contenttype_guessed, comment=comment)
  File "/home/sunu/moin/MoinMoin/items/__init__.py", line 439, in _save
    contenttype_guessed=contenttype_guessed,
  File "/home/sunu/moin/MoinMoin/storage/middleware/protecting.py", line 242, in store_revision
    rev = self.item.store_revision(meta, data, overwrite=overwrite, **kw)
  File "/home/sunu/moin/MoinMoin/storage/middleware/indexing.py", line 941, in store_revision
    self.indexer.index_revision(meta, content)
  File "/home/sunu/moin/MoinMoin/storage/middleware/indexing.py", line 418, in index_revision
    writer = AsyncWriter(self.ix[ALL_REVS])
  File "/home/sunu/moin/support/whoosh/writing.py", line 963, in __init__
    self.writer = self.index.writer(**self.writerargs)
  File "/home/sunu/moin/support/whoosh/index.py", line 466, in writer
    return SegmentWriter(self, **kwargs)
  File "/home/sunu/moin/support/whoosh/writing.py", line 511, in __init__
    self._tempstorage = self.storage.temp_storage("%s.tmp" % self.indexname)
  File "/home/sunu/moin/support/whoosh/filedb/filestore.py", line 306, in temp_storage
    raise NotImplementedError
NotImplementedError
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.