| Index: chrome/common/extensions/docs/server2/github_file_system.py
|
| diff --git a/chrome/common/extensions/docs/server2/github_file_system.py b/chrome/common/extensions/docs/server2/github_file_system.py
|
| index deb1a6dc110f168eab7db8699908af022b7db7eb..4f328cd3bf985c8697a81983f3406031e623e7fa 100644
|
| --- a/chrome/common/extensions/docs/server2/github_file_system.py
|
| +++ b/chrome/common/extensions/docs/server2/github_file_system.py
|
| @@ -8,17 +8,17 @@ import os
|
|
|
| import appengine_blobstore as blobstore
|
| from appengine_wrappers import urlfetch
|
| -import object_store
|
| from file_system import FileSystem, StatInfo
|
| -from StringIO import StringIO
|
| from future import Future
|
| +from object_store_creator import ObjectStoreCreator
|
| +from StringIO import StringIO
|
| from zipfile import ZipFile, BadZipfile
|
|
|
| ZIP_KEY = 'zipball'
|
| USERNAME = None
|
| PASSWORD = None
|
|
|
| -def _MakeKey(version):
|
| +def _MakeBlobstoreKey(version):
|
| return ZIP_KEY + '.' + str(version)
|
|
|
| class _AsyncFetchFutureZip(object):
|
| @@ -45,7 +45,7 @@ class _AsyncFetchFutureZip(object):
|
| logging.error('Bad github zip file: %s' % e)
|
| return None
|
| if self._key_to_delete is not None:
|
| - self._blobstore.Delete(_MakeKey(self._key_to_delete),
|
| + self._blobstore.Delete(_MakeBlobstoreKey(self._key_to_delete),
|
| blobstore.BLOBSTORE_GITHUB)
|
| try:
|
| return_zip = ZipFile(StringIO(blob))
|
| @@ -53,7 +53,7 @@ class _AsyncFetchFutureZip(object):
|
| logging.error('Bad github zip file: %s' % e)
|
| return None
|
|
|
| - self._blobstore.Set(_MakeKey(self._key_to_set),
|
| + self._blobstore.Set(_MakeBlobstoreKey(self._key_to_set),
|
| blob,
|
| blobstore.BLOBSTORE_GITHUB)
|
| return return_zip
|
| @@ -61,20 +61,22 @@ class _AsyncFetchFutureZip(object):
|
| class GithubFileSystem(FileSystem):
|
| """FileSystem implementation which fetches resources from github.
|
| """
|
| - def __init__(self, fetcher, object_store, blobstore):
|
| + def __init__(self, fetcher, blobstore):
|
| self._fetcher = fetcher
|
| - self._object_store = object_store
|
| + self._stat_object_store = ObjectStoreCreator(GithubFileSystem).Create()
|
| self._blobstore = blobstore
|
| self._version = None
|
| self._GetZip(self.Stat(ZIP_KEY).version)
|
|
|
| def _GetZip(self, version):
|
| - blob = self._blobstore.Get(_MakeKey(version), blobstore.BLOBSTORE_GITHUB)
|
| + blob = self._blobstore.Get(_MakeBlobstoreKey(version),
|
| + blobstore.BLOBSTORE_GITHUB)
|
| if blob is not None:
|
| try:
|
| self._zip_file = Future(value=ZipFile(StringIO(blob)))
|
| except BadZipfile as e:
|
| - self._blobstore.Delete(_MakeKey(version), blobstore.BLOBSTORE_GITHUB)
|
| + self._blobstore.Delete(_MakeBlobstoreKey(version),
|
| + blobstore.BLOBSTORE_GITHUB)
|
| logging.error('Bad github zip file: %s' % e)
|
| self._zip_file = Future(value=None)
|
| else:
|
| @@ -130,11 +132,11 @@ class GithubFileSystem(FileSystem):
|
| def _DefaultStat(self, path):
|
| version = 0
|
| # Cache for a minute so we don't try to keep fetching bad data.
|
| - self._object_store.Set(path, version, object_store.GITHUB_STAT, time=60)
|
| + self._stat_object_store.Set(path, version, time=60)
|
| return StatInfo(version)
|
|
|
| def Stat(self, path):
|
| - version = self._object_store.Get(path, object_store.GITHUB_STAT).Get()
|
| + version = self._stat_object_store.Get(path).Get()
|
| if version is not None:
|
| return StatInfo(version)
|
| try:
|
| @@ -158,7 +160,7 @@ class GithubFileSystem(FileSystem):
|
| .get('sha', None))
|
| # Check if the JSON was valid, and set to 0 if not.
|
| if version is not None:
|
| - self._object_store.Set(path, version, object_store.GITHUB_STAT)
|
| + self._stat_object_store.Set(path, version)
|
| else:
|
| logging.warning('Problem fetching commit hash from github.')
|
| return self._DefaultStat(path)
|
|
|