| OLD | NEW |
| 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_data_source import APIDataSource | 5 from api_data_source import APIDataSource |
| 6 from api_list_data_source import APIListDataSource | 6 from api_list_data_source import APIListDataSource |
| 7 from compiled_file_system import CompiledFileSystem | 7 from compiled_file_system import CompiledFileSystem |
| 8 from content_providers import ContentProviders | 8 from content_providers import ContentProviders |
| 9 from document_renderer import DocumentRenderer | 9 from document_renderer import DocumentRenderer |
| 10 from empty_dir_file_system import EmptyDirFileSystem | 10 from empty_dir_file_system import EmptyDirFileSystem |
| 11 from environment import IsDevServer | 11 from environment import IsDevServer |
| 12 from gcs_file_system_provider import CloudStorageFileSystemProvider | 12 from gcs_file_system_provider import CloudStorageFileSystemProvider |
| 13 from github_file_system_provider import GithubFileSystemProvider | |
| 14 from host_file_system_iterator import HostFileSystemIterator | 13 from host_file_system_iterator import HostFileSystemIterator |
| 15 from host_file_system_provider import HostFileSystemProvider | 14 from host_file_system_provider import HostFileSystemProvider |
| 16 from object_store_creator import ObjectStoreCreator | 15 from object_store_creator import ObjectStoreCreator |
| 17 from platform_bundle import PlatformBundle | 16 from platform_bundle import PlatformBundle |
| 18 from samples_data_source import SamplesDataSource | 17 from samples_data_source import SamplesDataSource |
| 19 from table_of_contents_renderer import TableOfContentsRenderer | 18 from table_of_contents_renderer import TableOfContentsRenderer |
| 20 from template_renderer import TemplateRenderer | 19 from template_renderer import TemplateRenderer |
| 21 from test_branch_utility import TestBranchUtility | 20 from test_branch_utility import TestBranchUtility |
| 22 from test_object_store import TestObjectStore | 21 from test_object_store import TestObjectStore |
| 23 | 22 |
| 24 | 23 |
| 25 class ServerInstance(object): | 24 class ServerInstance(object): |
| 26 | 25 |
| 27 def __init__(self, | 26 def __init__(self, |
| 28 object_store_creator, | 27 object_store_creator, |
| 29 compiled_fs_factory, | 28 compiled_fs_factory, |
| 30 branch_utility, | 29 branch_utility, |
| 31 host_file_system_provider, | 30 host_file_system_provider, |
| 32 github_file_system_provider, | |
| 33 gcs_file_system_provider, | 31 gcs_file_system_provider, |
| 34 base_path='/'): | 32 base_path='/'): |
| 35 ''' | 33 ''' |
| 36 |object_store_creator| | 34 |object_store_creator| |
| 37 The ObjectStoreCreator used to create almost all caches. | 35 The ObjectStoreCreator used to create almost all caches. |
| 38 |compiled_fs_factory| | 36 |compiled_fs_factory| |
| 39 Factory used to create CompiledFileSystems, a higher-level cache type | 37 Factory used to create CompiledFileSystems, a higher-level cache type |
| 40 than ObjectStores. This can usually be derived from just | 38 than ObjectStores. This can usually be derived from just |
| 41 |object_store_creator| but under special circumstances a different | 39 |object_store_creator| but under special circumstances a different |
| 42 implementation needs to be passed in. | 40 implementation needs to be passed in. |
| 43 |branch_utility| | 41 |branch_utility| |
| 44 Has knowledge of Chrome branches, channels, and versions. | 42 Has knowledge of Chrome branches, channels, and versions. |
| 45 |host_file_system_provider| | 43 |host_file_system_provider| |
| 46 Creates FileSystem instances which host the server at alternative | 44 Creates FileSystem instances which host the server at alternative |
| 47 revisions. | 45 revisions. |
| 48 |github_file_system_provider| | |
| 49 Creates FileSystem instances backed by GitHub. | |
| 50 |base_path| | 46 |base_path| |
| 51 The path which all HTML is generated relative to. Usually this is / | 47 The path which all HTML is generated relative to. Usually this is / |
| 52 but some servlets need to override this. | 48 but some servlets need to override this. |
| 53 ''' | 49 ''' |
| 54 self.object_store_creator = object_store_creator | 50 self.object_store_creator = object_store_creator |
| 55 | 51 |
| 56 self.compiled_fs_factory = compiled_fs_factory | 52 self.compiled_fs_factory = compiled_fs_factory |
| 57 | 53 |
| 58 self.host_file_system_provider = host_file_system_provider | 54 self.host_file_system_provider = host_file_system_provider |
| 59 host_fs_at_master = host_file_system_provider.GetMaster() | 55 host_fs_at_master = host_file_system_provider.GetMaster() |
| 60 | 56 |
| 61 self.github_file_system_provider = github_file_system_provider | |
| 62 self.gcs_file_system_provider = gcs_file_system_provider | 57 self.gcs_file_system_provider = gcs_file_system_provider |
| 63 | 58 |
| 64 assert base_path.startswith('/') and base_path.endswith('/') | 59 assert base_path.startswith('/') and base_path.endswith('/') |
| 65 self.base_path = base_path | 60 self.base_path = base_path |
| 66 | 61 |
| 67 self.host_file_system_iterator = HostFileSystemIterator( | 62 self.host_file_system_iterator = HostFileSystemIterator( |
| 68 host_file_system_provider, | 63 host_file_system_provider, |
| 69 branch_utility) | 64 branch_utility) |
| 70 | 65 |
| 71 self.platform_bundle = PlatformBundle( | 66 self.platform_bundle = PlatformBundle( |
| 72 branch_utility, | 67 branch_utility, |
| 73 self.compiled_fs_factory, | 68 self.compiled_fs_factory, |
| 74 host_fs_at_master, | 69 host_fs_at_master, |
| 75 self.host_file_system_iterator, | 70 self.host_file_system_iterator, |
| 76 self.object_store_creator, | 71 self.object_store_creator, |
| 77 self.base_path) | 72 self.base_path) |
| 78 | 73 |
| 79 self.content_providers = ContentProviders( | 74 self.content_providers = ContentProviders( |
| 80 object_store_creator, | 75 object_store_creator, |
| 81 self.compiled_fs_factory, | 76 self.compiled_fs_factory, |
| 82 host_fs_at_master, | 77 host_fs_at_master, |
| 83 self.github_file_system_provider, | |
| 84 self.gcs_file_system_provider) | 78 self.gcs_file_system_provider) |
| 85 | 79 |
| 86 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry, | 80 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry, |
| 87 # then factor out the DataSource creation into a factory method, so that | 81 # then factor out the DataSource creation into a factory method, so that |
| 88 # the entire ServerInstance doesn't need to be passed in here. | 82 # the entire ServerInstance doesn't need to be passed in here. |
| 89 self.template_renderer = TemplateRenderer(self) | 83 self.template_renderer = TemplateRenderer(self) |
| 90 | 84 |
| 91 # TODO(kalman): It may be better for |document_renderer| to construct a | 85 # TODO(kalman): It may be better for |document_renderer| to construct a |
| 92 # TemplateDataSource itself rather than depending on template_renderer, but | 86 # TemplateDataSource itself rather than depending on template_renderer, but |
| 93 # for that the above todo should be addressed. | 87 # for that the above todo should be addressed. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 107 raise ValueError('Only one of |file_system| and |file_system_provider| ' | 101 raise ValueError('Only one of |file_system| and |file_system_provider| ' |
| 108 'can be specified') | 102 'can be specified') |
| 109 if file_system_provider is None: | 103 if file_system_provider is None: |
| 110 file_system_provider = HostFileSystemProvider.ForTest( | 104 file_system_provider = HostFileSystemProvider.ForTest( |
| 111 file_system, | 105 file_system, |
| 112 object_store_creator) | 106 object_store_creator) |
| 113 return ServerInstance(object_store_creator, | 107 return ServerInstance(object_store_creator, |
| 114 CompiledFileSystem.Factory(object_store_creator), | 108 CompiledFileSystem.Factory(object_store_creator), |
| 115 TestBranchUtility.CreateWithCannedData(), | 109 TestBranchUtility.CreateWithCannedData(), |
| 116 file_system_provider, | 110 file_system_provider, |
| 117 GithubFileSystemProvider.ForEmpty(), | |
| 118 CloudStorageFileSystemProvider(object_store_creator), | 111 CloudStorageFileSystemProvider(object_store_creator), |
| 119 base_path=base_path) | 112 base_path=base_path) |
| 120 | 113 |
| 121 @staticmethod | 114 @staticmethod |
| 122 def ForLocal(): | 115 def ForLocal(): |
| 123 object_store_creator = ObjectStoreCreator(start_empty=False, | 116 object_store_creator = ObjectStoreCreator(start_empty=False, |
| 124 store_type=TestObjectStore) | 117 store_type=TestObjectStore) |
| 125 host_file_system_provider = HostFileSystemProvider.ForLocal( | 118 host_file_system_provider = HostFileSystemProvider.ForLocal( |
| 126 object_store_creator) | 119 object_store_creator) |
| 127 return ServerInstance( | 120 return ServerInstance( |
| 128 object_store_creator, | 121 object_store_creator, |
| 129 CompiledFileSystem.Factory(object_store_creator), | 122 CompiledFileSystem.Factory(object_store_creator), |
| 130 TestBranchUtility.CreateWithCannedData(), | 123 TestBranchUtility.CreateWithCannedData(), |
| 131 host_file_system_provider, | 124 host_file_system_provider, |
| 132 GithubFileSystemProvider.ForEmpty(), | |
| 133 CloudStorageFileSystemProvider(object_store_creator)) | 125 CloudStorageFileSystemProvider(object_store_creator)) |
| OLD | NEW |