| Index: chrome/common/extensions/docs/server2/refresh_servlet.py
|
| diff --git a/chrome/common/extensions/docs/server2/refresh_servlet.py b/chrome/common/extensions/docs/server2/refresh_servlet.py
|
| index eb8c0642a7a67ccf66f876cd8f9d379da6115f47..cf536bd4db74cb5d585dda221d4db970e58b23e5 100644
|
| --- a/chrome/common/extensions/docs/server2/refresh_servlet.py
|
| +++ b/chrome/common/extensions/docs/server2/refresh_servlet.py
|
| @@ -5,8 +5,9 @@
|
| import traceback
|
|
|
| from app_yaml_helper import AppYamlHelper
|
| -from appengine_wrappers import IsDeadlineExceededError, logservice
|
| +from appengine_wrappers import IsDeadlineExceededError, logservice, taskqueue
|
| from branch_utility import BranchUtility
|
| +from commit_tracker import CommitTracker
|
| from compiled_file_system import CompiledFileSystem
|
| from custom_logger import CustomLogger
|
| from data_source_registry import CreateDataSource
|
| @@ -17,12 +18,12 @@ from gcs_file_system_provider import CloudStorageFileSystemProvider
|
| from github_file_system_provider import GithubFileSystemProvider
|
| from host_file_system_provider import HostFileSystemProvider
|
| from object_store_creator import ObjectStoreCreator
|
| +from refresh_tracker import RefreshTracker
|
| from server_instance import ServerInstance
|
| from servlet import Servlet, Request, Response
|
| from timer import Timer, TimerClosure
|
|
|
|
|
| -
|
| _log = CustomLogger('refresh')
|
|
|
|
|
| @@ -86,6 +87,9 @@ class RefreshServlet(Servlet):
|
| commit = None
|
|
|
| server_instance = self._CreateServerInstance(commit)
|
| + commit_tracker = CommitTracker(server_instance.object_store_creator)
|
| + refresh_tracker = RefreshTracker(server_instance.object_store_creator)
|
| +
|
| success = True
|
| try:
|
| if source_name == 'platform_bundle':
|
| @@ -102,6 +106,16 @@ class RefreshServlet(Servlet):
|
| timer = Timer()
|
| try:
|
| refresh_future.Get()
|
| +
|
| + # Mark this (commit, task) pair as completed and then see if this
|
| + # concludes the full cache refresh. The list of tasks required to
|
| + # complete a cache refresh is registered (and keyed on commit ID) by the
|
| + # CronServlet before kicking off all the refresh tasks.
|
| + (refresh_tracker.MarkTaskComplete(commit, path)
|
| + .Then(lambda _: refresh_tracker.GetRefreshComplete(commit))
|
| + .Then(lambda is_complete:
|
| + commit_tracker.Set('master', commit) if is_complete else None)
|
| + .Get())
|
| except Exception as e:
|
| _log.error('%s: error %s' % (class_name, traceback.format_exc()))
|
| success = False
|
|
|