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

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

Issue 139303023: add GCS support to docs server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bumped versions Created 6 years, 11 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 (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 from api_categorizer import APICategorizer 5 from api_categorizer import APICategorizer
6 from api_data_source import APIDataSource 6 from api_data_source import APIDataSource
7 from api_list_data_source import APIListDataSource 7 from api_list_data_source import APIListDataSource
8 from api_models import APIModels 8 from api_models import APIModels
9 from availability_finder import AvailabilityFinder 9 from availability_finder import AvailabilityFinder
10 from compiled_file_system import CompiledFileSystem 10 from compiled_file_system import CompiledFileSystem
11 from content_providers import ContentProviders 11 from content_providers import ContentProviders
12 from document_renderer import DocumentRenderer 12 from document_renderer import DocumentRenderer
13 from empty_dir_file_system import EmptyDirFileSystem 13 from empty_dir_file_system import EmptyDirFileSystem
14 from environment import IsDevServer 14 from environment import IsDevServer
15 from features_bundle import FeaturesBundle 15 from features_bundle import FeaturesBundle
16 from github_file_system_provider import GithubFileSystemProvider 16 from github_file_system_provider import GithubFileSystemProvider
17 from host_file_system_iterator import HostFileSystemIterator
17 from host_file_system_provider import HostFileSystemProvider 18 from host_file_system_provider import HostFileSystemProvider
18 from host_file_system_iterator import HostFileSystemIterator
19 from object_store_creator import ObjectStoreCreator 19 from object_store_creator import ObjectStoreCreator
20 from path_canonicalizer import PathCanonicalizer 20 from path_canonicalizer import PathCanonicalizer
21 from reference_resolver import ReferenceResolver 21 from reference_resolver import ReferenceResolver
22 from samples_data_source import SamplesDataSource 22 from samples_data_source import SamplesDataSource
23 from table_of_contents_renderer import TableOfContentsRenderer 23 from table_of_contents_renderer import TableOfContentsRenderer
24 from template_renderer import TemplateRenderer 24 from template_renderer import TemplateRenderer
25 from test_branch_utility import TestBranchUtility 25 from test_branch_utility import TestBranchUtility
26 from test_object_store import TestObjectStore 26 from test_object_store import TestObjectStore
27 from gcs_file_system_provider import CloudStorageFileSystemProvider
27 28
28 29
29 class ServerInstance(object): 30 class ServerInstance(object):
30 31
31 def __init__(self, 32 def __init__(self,
32 object_store_creator, 33 object_store_creator,
33 compiled_fs_factory, 34 compiled_fs_factory,
34 branch_utility, 35 branch_utility,
35 host_file_system_provider, 36 host_file_system_provider,
36 github_file_system_provider, 37 github_file_system_provider,
38 gcs_file_system_provider,
37 base_path='/'): 39 base_path='/'):
38 ''' 40 '''
39 |object_store_creator| 41 |object_store_creator|
40 The ObjectStoreCreator used to create almost all caches. 42 The ObjectStoreCreator used to create almost all caches.
41 |compiled_fs_factory| 43 |compiled_fs_factory|
42 Factory used to create CompiledFileSystems, a higher-level cache type 44 Factory used to create CompiledFileSystems, a higher-level cache type
43 than ObjectStores. This can usually be derived from just 45 than ObjectStores. This can usually be derived from just
44 |object_store_creator| but under special circumstances a different 46 |object_store_creator| but under special circumstances a different
45 implementation needs to be passed in. 47 implementation needs to be passed in.
46 |branch_utility| 48 |branch_utility|
47 Has knowledge of Chrome branches, channels, and versions. 49 Has knowledge of Chrome branches, channels, and versions.
48 |host_file_system_provider| 50 |host_file_system_provider|
49 Creates FileSystem instances which host the server at alternative 51 Creates FileSystem instances which host the server at alternative
50 revisions. 52 revisions.
51 |github_file_system_provider| 53 |github_file_system_provider|
52 Creates FileSystem instances backed by GitHub. 54 Creates FileSystem instances backed by GitHub.
53 |base_path| 55 |base_path|
54 The path which all HTML is generated relative to. Usually this is / 56 The path which all HTML is generated relative to. Usually this is /
55 but some servlets need to override this. 57 but some servlets need to override this.
56 ''' 58 '''
57 self.object_store_creator = object_store_creator 59 self.object_store_creator = object_store_creator
58 60
59 self.compiled_fs_factory = compiled_fs_factory 61 self.compiled_fs_factory = compiled_fs_factory
60 62
61 self.host_file_system_provider = host_file_system_provider 63 self.host_file_system_provider = host_file_system_provider
62 host_fs_at_trunk = host_file_system_provider.GetTrunk() 64 host_fs_at_trunk = host_file_system_provider.GetTrunk()
63 65
64 self.github_file_system_provider = github_file_system_provider 66 self.github_file_system_provider = github_file_system_provider
67 self.gcs_file_system_provider = gcs_file_system_provider
65 68
66 assert base_path.startswith('/') and base_path.endswith('/') 69 assert base_path.startswith('/') and base_path.endswith('/')
67 self.base_path = base_path 70 self.base_path = base_path
68 71
69 self.host_file_system_iterator = HostFileSystemIterator( 72 self.host_file_system_iterator = HostFileSystemIterator(
70 host_file_system_provider, 73 host_file_system_provider,
71 branch_utility) 74 branch_utility)
72 75
73 self.features_bundle = FeaturesBundle( 76 self.features_bundle = FeaturesBundle(
74 host_fs_at_trunk, 77 host_fs_at_trunk,
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 self.api_data_source_factory.SetSamplesDataSourceFactory( 137 self.api_data_source_factory.SetSamplesDataSourceFactory(
135 self.samples_data_source_factory) 138 self.samples_data_source_factory)
136 139
137 self.path_canonicalizer = PathCanonicalizer( 140 self.path_canonicalizer = PathCanonicalizer(
138 self.compiled_fs_factory, 141 self.compiled_fs_factory,
139 host_fs_at_trunk) 142 host_fs_at_trunk)
140 143
141 self.content_providers = ContentProviders( 144 self.content_providers = ContentProviders(
142 self.compiled_fs_factory, 145 self.compiled_fs_factory,
143 host_fs_at_trunk, 146 host_fs_at_trunk,
144 self.github_file_system_provider) 147 self.github_file_system_provider,
148 self.gcs_file_system_provider)
145 149
146 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry, 150 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry,
147 # then factor out the DataSource creation into a factory method, so that 151 # then factor out the DataSource creation into a factory method, so that
148 # the entire ServerInstance doesn't need to be passed in here. 152 # the entire ServerInstance doesn't need to be passed in here.
149 self.template_renderer = TemplateRenderer(self) 153 self.template_renderer = TemplateRenderer(self)
150 154
151 # TODO(kalman): It may be better for |document_renderer| to construct a 155 # TODO(kalman): It may be better for |document_renderer| to construct a
152 # TemplateDataSource itself rather than depending on template_renderer, but 156 # TemplateDataSource itself rather than depending on template_renderer, but
153 # for that the above todo should be addressed. 157 # for that the above todo should be addressed.
154 self.document_renderer = DocumentRenderer(TableOfContentsRenderer( 158 self.document_renderer = DocumentRenderer(TableOfContentsRenderer(
(...skipping 12 matching lines...) Expand all
167 'can be specified') 171 'can be specified')
168 if file_system_provider is None: 172 if file_system_provider is None:
169 file_system_provider = HostFileSystemProvider.ForTest( 173 file_system_provider = HostFileSystemProvider.ForTest(
170 file_system, 174 file_system,
171 object_store_creator) 175 object_store_creator)
172 return ServerInstance(object_store_creator, 176 return ServerInstance(object_store_creator,
173 CompiledFileSystem.Factory(object_store_creator), 177 CompiledFileSystem.Factory(object_store_creator),
174 TestBranchUtility.CreateWithCannedData(), 178 TestBranchUtility.CreateWithCannedData(),
175 file_system_provider, 179 file_system_provider,
176 GithubFileSystemProvider.ForEmpty(), 180 GithubFileSystemProvider.ForEmpty(),
181 CloudStorageFileSystemProvider(object_store_creator),
177 base_path=base_path) 182 base_path=base_path)
178 183
179 @staticmethod 184 @staticmethod
180 def ForLocal(): 185 def ForLocal():
181 object_store_creator = ObjectStoreCreator(start_empty=False, 186 object_store_creator = ObjectStoreCreator(start_empty=False,
182 store_type=TestObjectStore) 187 store_type=TestObjectStore)
183 host_file_system_provider = HostFileSystemProvider.ForLocal( 188 host_file_system_provider = HostFileSystemProvider.ForLocal(
184 object_store_creator) 189 object_store_creator)
185 return ServerInstance( 190 return ServerInstance(
186 object_store_creator, 191 object_store_creator,
187 CompiledFileSystem.Factory(object_store_creator), 192 CompiledFileSystem.Factory(object_store_creator),
188 TestBranchUtility.CreateWithCannedData(), 193 TestBranchUtility.CreateWithCannedData(),
189 host_file_system_provider, 194 host_file_system_provider,
190 GithubFileSystemProvider.ForEmpty()) 195 GithubFileSystemProvider.ForEmpty(),
196 CloudStorageFileSystemProvider(object_store_creator))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698