Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7154)

Unified Diff: chrome/common/extensions/docs/server2/github_file_system.py

Issue 10871002: Extensions Docs Server: Testing GithubFileSystem and cron jobs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: small changes Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 ed8be5081b54b758d7f3b0615c60b965e34e28aa..fa632fc8e7633c847fff1be2b783b3ae3bbc47de 100644
--- a/chrome/common/extensions/docs/server2/github_file_system.py
+++ b/chrome/common/extensions/docs/server2/github_file_system.py
@@ -18,19 +18,20 @@ def _MakeKey(version):
return ZIP_KEY + '.' + str(version)
class _AsyncFetchFutureZip(object):
- def __init__(self, fetcher, blobstore, new_version, old_version):
+ def __init__(self, fetcher, blobstore, key_to_set, key_to_delete=None):
self._fetch = fetcher.FetchAsync(ZIP_KEY)
self._blobstore = blobstore
- self._new_version = new_version
- self._old_version = old_version
+ self._key_to_set = key_to_set
+ self._key_to_delete = key_to_delete
def Get(self):
blob = self._fetch.Get().content
- self._blobstore.Set(_MakeKey(self._new_version),
+ self._blobstore.Set(_MakeKey(self._key_to_set),
blob,
blobstore.BLOBSTORE_GITHUB)
- self._blobstore.Delete(_MakeKey(self._old_version),
- blobstore.BLOBSTORE_GITHUB)
+ if self._key_to_delete is not None:
+ self._blobstore.Delete(_MakeKey(self._key_to_delete),
+ blobstore.BLOBSTORE_GITHUB)
return ZipFile(StringIO(blob))
class GithubFileSystem(FileSystem):
@@ -40,18 +41,19 @@ class GithubFileSystem(FileSystem):
self._fetcher = fetcher
self._object_store = object_store
self._blobstore = blobstore
- self._version = self.Stat(ZIP_KEY).version
- self._GetZip(self._version)
+ self._version = None
+ self._GetZip(self.Stat(ZIP_KEY).version)
def _GetZip(self, version):
blob = self._blobstore.Get(_MakeKey(version), blobstore.BLOBSTORE_GITHUB)
if blob is not None:
- self._zip_file = Future(value=ZipFile(BytesIO(blob)))
+ self._zip_file = Future(value=ZipFile(StringIO(blob)))
else:
- self._zip_file = Future(delegate=_AsyncFetchFutureZip(self._fetcher,
- self._blobstore,
- version,
- self._version))
+ self._zip_file = Future(
+ delegate=_AsyncFetchFutureZip(self._fetcher,
+ self._blobstore,
+ version,
+ key_to_delete=self._version))
self._version = version
def _ReadFile(self, path):
@@ -82,7 +84,7 @@ class GithubFileSystem(FileSystem):
return Future(value=result)
def Stat(self, path):
- version = self._object_store.Get(path, object_store.GITHUB_STAT)
+ version = self._object_store.Get(path, object_store.GITHUB_STAT).Get()
if version is not None:
return StatInfo(version)
version = json.loads(

Powered by Google App Engine
This is Rietveld 408576698