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

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

Issue 18323018: Linking AvailabilityFinder with APIDataSource and intro-table templates. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: HostFileSystemCreator, Intro Table data structure changes Created 7 years, 5 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/instance_servlet.py
diff --git a/chrome/common/extensions/docs/server2/instance_servlet.py b/chrome/common/extensions/docs/server2/instance_servlet.py
index 11848f549ff31199cc8ad086bd9bedc296dd4854..6b8f1de92f41cb57fe55c8f4da237646f35a3f8f 100644
--- a/chrome/common/extensions/docs/server2/instance_servlet.py
+++ b/chrome/common/extensions/docs/server2/instance_servlet.py
@@ -4,17 +4,15 @@
from appengine_wrappers import IsDevServer
from branch_utility import BranchUtility
-from caching_file_system import CachingFileSystem
from compiled_file_system import CompiledFileSystem
from empty_dir_file_system import EmptyDirFileSystem
from github_file_system import GithubFileSystem
+from host_file_system_creator import HostFileSystemCreator
+from subversion_file_system import SubversionFileSystem
from third_party.json_schema_compiler.memoize import memoize
-from offline_file_system import OfflineFileSystem
from render_servlet import RenderServlet
-from subversion_file_system import SubversionFileSystem
from object_store_creator import ObjectStoreCreator
from server_instance import ServerInstance
-from servlet import Servlet
class _OfflineRenderServletDelegate(RenderServlet.Delegate):
'''AppEngine instances should never need to call out to SVN. That should only
@@ -37,11 +35,14 @@ class _OfflineRenderServletDelegate(RenderServlet.Delegate):
@memoize
def CreateServerInstanceForChannel(self, channel):
object_store_creator = ObjectStoreCreator(channel, start_empty=False)
- branch = (self._delegate.CreateBranchUtility(object_store_creator)
- .GetChannelInfo(channel).branch)
- host_file_system = CachingFileSystem(
- OfflineFileSystem(self._delegate.CreateHostFileSystemForBranch(branch)),
- object_store_creator)
+ branch_utility = self._delegate.CreateBranchUtility(object_store_creator)
+ host_file_system_creator = HostFileSystemCreator(
+ branch_utility,
+ self._delegate.CreateHostFileSystem,
+ object_store_creator,
+ offline=True)
+ branch = branch_utility.GetChannelInfo(channel).branch
+ host_file_system = host_file_system_creator.CreateAtBranch(branch)
app_samples_file_system = self._delegate.CreateAppSamplesFileSystem(
object_store_creator)
compiled_host_fs_factory = CompiledFileSystem.Factory(
@@ -52,7 +53,9 @@ class _OfflineRenderServletDelegate(RenderServlet.Delegate):
host_file_system,
app_samples_file_system,
'' if channel == 'stable' else '/%s' % channel,
- compiled_host_fs_factory)
+ compiled_host_fs_factory,
+ branch_utility,
+ host_file_system_creator)
class InstanceServlet(object):
'''Servlet for running on normal AppEngine instances.
@@ -65,15 +68,15 @@ class InstanceServlet(object):
def CreateBranchUtility(self, object_store_creator):
return BranchUtility.Create(object_store_creator)
- def CreateHostFileSystemForBranch(self, branch):
- return SubversionFileSystem.Create(branch)
-
def CreateAppSamplesFileSystem(self, object_store_creator):
# TODO(kalman): OfflineServerInstance wrapper for GithubFileSystem, but
# the cron job doesn't crawl the samples yet.
return (EmptyDirFileSystem() if IsDevServer() else
GithubFileSystem.Create(object_store_creator))
+ def CreateHostFileSystem(self, branch):
+ return SubversionFileSystem.Create(branch)
+
@staticmethod
def GetConstructor(delegate_for_test=None):
render_servlet_delegate = _OfflineRenderServletDelegate(

Powered by Google App Engine
This is Rietveld 408576698