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

Side by Side Diff: chrome/common/extensions/docs/server2/refresh_servlet.py

Issue 660383002: Docserver: Persist stat cache for versioned file systems (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import traceback 5 import traceback
6 6
7 from app_yaml_helper import AppYamlHelper 7 from app_yaml_helper import AppYamlHelper
8 from appengine_wrappers import IsDeadlineExceededError, logservice 8 from appengine_wrappers import IsDeadlineExceededError, logservice
9 from branch_utility import BranchUtility 9 from branch_utility import BranchUtility
10 from compiled_file_system import CompiledFileSystem 10 from compiled_file_system import CompiledFileSystem
11 from custom_logger import CustomLogger 11 from custom_logger import CustomLogger
12 from data_source_registry import CreateDataSource 12 from data_source_registry import CreateDataSource
13 from environment import GetAppVersion 13 from environment import GetAppVersion
14 from file_system import IsFileSystemThrottledError 14 from file_system import IsFileSystemThrottledError
15 from future import Future 15 from future import Future
16 from gcs_file_system_provider import CloudStorageFileSystemProvider 16 from gcs_file_system_provider import CloudStorageFileSystemProvider
17 from github_file_system_provider import GithubFileSystemProvider 17 from github_file_system_provider import GithubFileSystemProvider
18 from host_file_system_provider import HostFileSystemProvider 18 from host_file_system_provider import HostFileSystemProvider
19 from object_store_creator import ObjectStoreCreator 19 from object_store_creator import ObjectStoreCreator
20 from server_instance import ServerInstance 20 from server_instance import ServerInstance
21 from servlet import Servlet, Request, Response 21 from servlet import Servlet, Request, Response
22 from timer import Timer, TimerClosure 22 from timer import Timer, TimerClosure
23 23
24 24
25 25
26 _log = CustomLogger('refresh') 26 _log = CustomLogger('refresh')
27 27
28 28
29
30 class _InstanceMasterCommitUpdater(object):
31 def __init__(self, commit):
32 self._commit = commit
33
34 def Refresh(self, path):
35 if self._commit is None:
36 raise ValueError('Refusing to set instance master without a commit ID')
37 creator = ObjectStoreCreator(start_empty=False)
38 store = creator.Create(str, category='commits')
not at google - send to devlin 2014/10/20 21:06:58 Ok - I see why you use str. Maybe you should pull
Ken Rockot(use gerrit already) 2014/10/22 03:19:54 Done.
39 store.SetMulti({ 'master': self._commit })
40 return Future(callback=lambda: None)
41
42
43
29 class RefreshServlet(Servlet): 44 class RefreshServlet(Servlet):
30 '''Servlet which refreshes a single data source. 45 '''Servlet which refreshes a single data source.
31 ''' 46 '''
32 def __init__(self, request, delegate_for_test=None): 47 def __init__(self, request, delegate_for_test=None):
33 Servlet.__init__(self, request) 48 Servlet.__init__(self, request)
34 self._delegate = delegate_for_test or RefreshServlet.Delegate() 49 self._delegate = delegate_for_test or RefreshServlet.Delegate()
35 50
36 class Delegate(object): 51 class Delegate(object):
37 '''RefreshServlet's runtime dependencies. Override for testing. 52 '''RefreshServlet's runtime dependencies. Override for testing.
38 ''' 53 '''
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 'This is probably NOT what you want.') 100 'This is probably NOT what you want.')
86 commit = None 101 commit = None
87 102
88 server_instance = self._CreateServerInstance(commit) 103 server_instance = self._CreateServerInstance(commit)
89 success = True 104 success = True
90 try: 105 try:
91 if source_name == 'platform_bundle': 106 if source_name == 'platform_bundle':
92 data_source = server_instance.platform_bundle 107 data_source = server_instance.platform_bundle
93 elif source_name == 'content_providers': 108 elif source_name == 'content_providers':
94 data_source = server_instance.content_providers 109 data_source = server_instance.content_providers
110 elif source_name == 'instance_master':
111 data_source = _InstanceMasterCommitUpdater(commit)
95 else: 112 else:
96 data_source = CreateDataSource(source_name, server_instance) 113 data_source = CreateDataSource(source_name, server_instance)
97 114
98 class_name = data_source.__class__.__name__ 115 class_name = data_source.__class__.__name__
99 refresh_future = data_source.Refresh(source_path) 116 refresh_future = data_source.Refresh(source_path)
100 assert isinstance(refresh_future, Future), ( 117 assert isinstance(refresh_future, Future), (
101 '%s.Refresh() did not return a Future' % class_name) 118 '%s.Refresh() did not return a Future' % class_name)
102 timer = Timer() 119 timer = Timer()
103 try: 120 try:
104 refresh_future.Get() 121 refresh_future.Get()
(...skipping 29 matching lines...) Expand all
134 github_file_system_provider = self._delegate.CreateGithubFileSystemProvider( 151 github_file_system_provider = self._delegate.CreateGithubFileSystemProvider(
135 object_store_creator) 152 object_store_creator)
136 gcs_file_system_provider = self._delegate.CreateGCSFileSystemProvider( 153 gcs_file_system_provider = self._delegate.CreateGCSFileSystemProvider(
137 object_store_creator) 154 object_store_creator)
138 return ServerInstance(object_store_creator, 155 return ServerInstance(object_store_creator,
139 CompiledFileSystem.Factory(object_store_creator), 156 CompiledFileSystem.Factory(object_store_creator),
140 branch_utility, 157 branch_utility,
141 host_file_system_provider, 158 host_file_system_provider,
142 github_file_system_provider, 159 github_file_system_provider,
143 gcs_file_system_provider) 160 gcs_file_system_provider)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698