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

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

Issue 491653002: Docserver: Use GitilesFileSystem instead of SubversionFileSystem (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 logging 5 import logging
6 import posixpath 6 import posixpath
7 import traceback 7 import traceback
8 8
9 from app_yaml_helper import AppYamlHelper 9 from app_yaml_helper import AppYamlHelper
10 from appengine_wrappers import IsDeadlineExceededError, logservice 10 from appengine_wrappers import IsDeadlineExceededError, logservice
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 self._delegate = delegate_for_test or CronServlet.Delegate() 89 self._delegate = delegate_for_test or CronServlet.Delegate()
90 90
91 class Delegate(object): 91 class Delegate(object):
92 '''CronServlet's runtime dependencies. Override for testing. 92 '''CronServlet's runtime dependencies. Override for testing.
93 ''' 93 '''
94 def CreateBranchUtility(self, object_store_creator): 94 def CreateBranchUtility(self, object_store_creator):
95 return BranchUtility.Create(object_store_creator) 95 return BranchUtility.Create(object_store_creator)
96 96
97 def CreateHostFileSystemProvider(self, 97 def CreateHostFileSystemProvider(self,
98 object_store_creator, 98 object_store_creator,
99 max_trunk_revision=None): 99 pinned_commit=None):
100 return HostFileSystemProvider(object_store_creator, 100 return HostFileSystemProvider(object_store_creator, pinned_commit)
101 max_trunk_revision=max_trunk_revision)
102 101
103 def CreateGithubFileSystemProvider(self, object_store_creator): 102 def CreateGithubFileSystemProvider(self, object_store_creator):
104 return GithubFileSystemProvider(object_store_creator) 103 return GithubFileSystemProvider(object_store_creator)
105 104
106 def CreateGCSFileSystemProvider(self, object_store_creator): 105 def CreateGCSFileSystemProvider(self, object_store_creator):
107 return CloudStorageFileSystemProvider(object_store_creator) 106 return CloudStorageFileSystemProvider(object_store_creator)
108 107
109 def GetAppVersion(self): 108 def GetAppVersion(self):
110 return GetAppVersion() 109 return GetAppVersion()
111 110
(...skipping 21 matching lines...) Expand all
133 # little wasteful, but hopefully rendering is really fast (if it isn't we 132 # little wasteful, but hopefully rendering is really fast (if it isn't we
134 # have a problem). 133 # have a problem).
135 _cronlog.info('starting') 134 _cronlog.info('starting')
136 135
137 # This is returned every time RenderServlet wants to create a new 136 # This is returned every time RenderServlet wants to create a new
138 # ServerInstance. 137 # ServerInstance.
139 # 138 #
140 # TODO(kalman): IMPORTANT. This sometimes throws an exception, breaking 139 # TODO(kalman): IMPORTANT. This sometimes throws an exception, breaking
141 # everything. Need retry logic at the fetcher level. 140 # everything. Need retry logic at the fetcher level.
142 server_instance = self._GetSafeServerInstance() 141 server_instance = self._GetSafeServerInstance()
143 trunk_fs = server_instance.host_file_system_provider.GetTrunk() 142 trunk_fs = server_instance.host_file_system_provider.GetMaster()
144 143
145 def render(path): 144 def render(path):
146 request = Request(path, self._request.host, self._request.headers) 145 request = Request(path, self._request.host, self._request.headers)
147 delegate = _SingletonRenderServletDelegate(server_instance) 146 delegate = _SingletonRenderServletDelegate(server_instance)
148 return RenderServlet(request, delegate).Get() 147 return RenderServlet(request, delegate).Get()
149 148
150 def request_files_in_dir(path, prefix='', strip_ext=None): 149 def request_files_in_dir(path, prefix='', strip_ext=None):
151 '''Requests every file found under |path| in this host file system, with 150 '''Requests every file found under |path| in this host file system, with
152 a request prefix of |prefix|. |strip_ext| is an optional list of file 151 a request prefix of |prefix|. |strip_ext| is an optional list of file
153 extensions that should be stripped from paths before requesting. 152 extensions that should be stripped from paths before requesting.
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 return server_instance_near_head 254 return server_instance_near_head
256 255
257 # The version in app.yaml is greater than the currently running app's. 256 # The version in app.yaml is greater than the currently running app's.
258 # The safe version is the one before it changed. 257 # The safe version is the one before it changed.
259 safe_revision = app_yaml_handler.GetFirstRevisionGreaterThan( 258 safe_revision = app_yaml_handler.GetFirstRevisionGreaterThan(
260 delegate.GetAppVersion()) - 1 259 delegate.GetAppVersion()) - 1
261 260
262 _cronlog.info('app version %s is out of date, safe is %s', 261 _cronlog.info('app version %s is out of date, safe is %s',
263 delegate.GetAppVersion(), safe_revision) 262 delegate.GetAppVersion(), safe_revision)
264 263
264 # XXX(rockot): wat do?
265 return self._CreateServerInstance(safe_revision) 265 return self._CreateServerInstance(safe_revision)
266 266
267 def _GetMostRecentRevision(self): 267 def _GetMostRecentRevision(self):
268 '''Gets the revision of the most recent patch submitted to the host file 268 '''Gets the revision of the most recent patch submitted to the host file
269 system. This is similar to HEAD but it's a concrete revision so won't 269 system. This is similar to HEAD but it's a concrete revision so won't
270 change as the cron runs. 270 change as the cron runs.
271 ''' 271 '''
272 head_fs = ( 272 head_fs = (
273 self._CreateServerInstance(None).host_file_system_provider.GetTrunk()) 273 self._CreateServerInstance(None).host_file_system_provider.GetMaster())
274 return head_fs.Stat('').version 274 return head_fs.GetCommitID().Get()
275 275
276 def _CreateServerInstance(self, revision): 276 def _CreateServerInstance(self, commit):
277 '''Creates a ServerInstance pinned to |revision|, or HEAD if None. 277 '''Creates a ServerInstance pinned to |commit|, or HEAD if None.
278 NOTE: If passed None it's likely that during the cron run patches will be 278 NOTE: If passed None it's likely that during the cron run patches will be
279 submitted at HEAD, which may change data underneath the cron run. 279 submitted at HEAD, which may change data underneath the cron run.
280 ''' 280 '''
281 object_store_creator = ObjectStoreCreator(start_empty=True) 281 object_store_creator = ObjectStoreCreator(start_empty=True)
282 branch_utility = self._delegate.CreateBranchUtility(object_store_creator) 282 branch_utility = self._delegate.CreateBranchUtility(object_store_creator)
283 host_file_system_provider = self._delegate.CreateHostFileSystemProvider( 283 host_file_system_provider = self._delegate.CreateHostFileSystemProvider(
284 object_store_creator, max_trunk_revision=revision) 284 object_store_creator, pinned_commit=commit)
285 github_file_system_provider = self._delegate.CreateGithubFileSystemProvider( 285 github_file_system_provider = self._delegate.CreateGithubFileSystemProvider(
286 object_store_creator) 286 object_store_creator)
287 gcs_file_system_provider = self._delegate.CreateGCSFileSystemProvider( 287 gcs_file_system_provider = self._delegate.CreateGCSFileSystemProvider(
288 object_store_creator) 288 object_store_creator)
289 return ServerInstance(object_store_creator, 289 return ServerInstance(object_store_creator,
290 CompiledFileSystem.Factory(object_store_creator), 290 CompiledFileSystem.Factory(object_store_creator),
291 branch_utility, 291 branch_utility,
292 host_file_system_provider, 292 host_file_system_provider,
293 github_file_system_provider, 293 github_file_system_provider,
294 gcs_file_system_provider) 294 gcs_file_system_provider)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698