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 fnmatch import fnmatch | 5 from fnmatch import fnmatch |
6 import logging | |
7 import mimetypes | 6 import mimetypes |
8 import traceback | 7 import traceback |
9 import os | 8 import os |
10 | 9 |
11 from api_data_source import APIDataSource | 10 from api_data_source import APIDataSource |
12 from api_list_data_source import APIListDataSource | 11 from api_list_data_source import APIListDataSource |
13 from appengine_url_fetcher import AppEngineUrlFetcher | 12 from appengine_url_fetcher import AppEngineUrlFetcher |
14 from appengine_wrappers import GetAppVersion, IsDevServer | 13 from appengine_wrappers import GetAppVersion, IsDevServer |
14 from availability_data_source import AvailabilityDataSource | |
15 from branch_utility import BranchUtility | 15 from branch_utility import BranchUtility |
16 from caching_file_system import CachingFileSystem | 16 from caching_file_system import CachingFileSystem |
17 from chrome_version_utility import ChromeVersionUtility | |
17 from compiled_file_system import CompiledFileSystem | 18 from compiled_file_system import CompiledFileSystem |
18 from empty_dir_file_system import EmptyDirFileSystem | 19 from empty_dir_file_system import EmptyDirFileSystem |
19 from example_zipper import ExampleZipper | 20 from example_zipper import ExampleZipper |
20 from file_system import FileNotFoundError | 21 from file_system import FileNotFoundError |
21 from github_file_system import GithubFileSystem | 22 from github_file_system import GithubFileSystem |
22 from intro_data_source import IntroDataSource | 23 from intro_data_source import IntroDataSource |
23 from local_file_system import LocalFileSystem | 24 from local_file_system import LocalFileSystem |
24 from object_store_creator import ObjectStoreCreator | 25 from object_store_creator import ObjectStoreCreator |
25 from offline_file_system import OfflineFileSystem | 26 from offline_file_system import OfflineFileSystem |
26 from path_canonicalizer import PathCanonicalizer | 27 from path_canonicalizer import PathCanonicalizer |
27 from reference_resolver import ReferenceResolver | 28 from reference_resolver import ReferenceResolver |
28 from samples_data_source import SamplesDataSource | 29 from samples_data_source import SamplesDataSource |
29 from sidenav_data_source import SidenavDataSource | 30 from sidenav_data_source import SidenavDataSource |
30 from subversion_file_system import SubversionFileSystem | |
31 import svn_constants | 31 import svn_constants |
32 from template_data_source import TemplateDataSource | 32 from template_data_source import TemplateDataSource |
33 from test_file_system import TestFileSystem | |
33 from test_object_store import TestObjectStore | 34 from test_object_store import TestObjectStore |
34 from third_party.json_schema_compiler.model import UnixName | 35 from third_party.json_schema_compiler.model import UnixName |
35 import url_constants | 36 import url_constants |
36 | 37 |
37 class ServerInstance(object): | 38 class ServerInstance(object): |
38 def __init__(self, | 39 def __init__(self, |
39 channel, | 40 channel, |
40 object_store_creator, | 41 object_store_creator, |
41 host_file_system, | 42 host_file_system, |
42 app_samples_file_system): | 43 app_samples_file_system, |
44 file_system_creator): | |
43 self.channel = channel | 45 self.channel = channel |
44 | 46 |
45 self.object_store_creator = object_store_creator | 47 self.object_store_creator = object_store_creator |
46 | 48 |
47 self.host_file_system = host_file_system | 49 self.host_file_system = host_file_system |
48 | 50 |
49 self.app_samples_file_system = app_samples_file_system | 51 self.app_samples_file_system = app_samples_file_system |
50 | 52 |
51 self.compiled_host_fs_factory = CompiledFileSystem.Factory( | 53 self.compiled_host_fs_factory = CompiledFileSystem.Factory( |
52 host_file_system, | 54 host_file_system, |
53 object_store_creator) | 55 object_store_creator) |
54 | 56 |
57 self.chrome_version_utility = ChromeVersionUtility( | |
58 url_constants.OMAHA_DEV_HISTORY, | |
59 AppEngineUrlFetcher(), | |
60 object_store_creator) | |
61 | |
62 self.availability_data_source_factory = AvailabilityDataSource.Factory( | |
63 self.chrome_version_utility, | |
64 object_store_creator, | |
65 file_system_creator) | |
66 | |
55 self.api_list_data_source_factory = APIListDataSource.Factory( | 67 self.api_list_data_source_factory = APIListDataSource.Factory( |
56 self.compiled_host_fs_factory, | 68 self.compiled_host_fs_factory, |
57 svn_constants.API_PATH, | 69 svn_constants.API_PATH, |
58 svn_constants.PUBLIC_TEMPLATE_PATH) | 70 svn_constants.PUBLIC_TEMPLATE_PATH) |
59 | 71 |
60 self.api_data_source_factory = APIDataSource.Factory( | 72 self.api_data_source_factory = APIDataSource.Factory( |
61 self.compiled_host_fs_factory, | 73 self.compiled_host_fs_factory, |
62 svn_constants.API_PATH) | 74 svn_constants.API_PATH, |
75 self.availability_data_source_factory, | |
76 file_system_creator) | |
not at google - send to devlin
2013/05/13 21:26:41
I don't think you need to pass it in here
| |
63 | 77 |
64 self.ref_resolver_factory = ReferenceResolver.Factory( | 78 self.ref_resolver_factory = ReferenceResolver.Factory( |
65 self.api_data_source_factory, | 79 self.api_data_source_factory, |
66 self.api_list_data_source_factory, | 80 self.api_list_data_source_factory, |
67 object_store_creator) | 81 object_store_creator) |
68 | 82 |
69 self.api_data_source_factory.SetReferenceResolverFactory( | 83 self.api_data_source_factory.SetReferenceResolverFactory( |
70 self.ref_resolver_factory) | 84 self.ref_resolver_factory) |
71 | 85 |
72 # Note: samples are super slow in the dev server because it doesn't support | 86 # Note: samples are super slow in the dev server because it doesn't support |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
118 self.compiled_host_fs_factory) | 132 self.compiled_host_fs_factory) |
119 | 133 |
120 self.content_cache = self.compiled_host_fs_factory.CreateIdentity( | 134 self.content_cache = self.compiled_host_fs_factory.CreateIdentity( |
121 ServerInstance) | 135 ServerInstance) |
122 | 136 |
123 @staticmethod | 137 @staticmethod |
124 def ForTest(file_system): | 138 def ForTest(file_system): |
125 return ServerInstance('test', | 139 return ServerInstance('test', |
126 ObjectStoreCreator.ForTest(), | 140 ObjectStoreCreator.ForTest(), |
127 file_system, | 141 file_system, |
128 EmptyDirFileSystem()) | 142 EmptyDirFileSystem(), |
143 lambda branch: file_system) | |
129 | 144 |
130 @staticmethod | 145 @staticmethod |
131 def ForLocal(): | 146 def ForLocal(): |
132 channel = 'trunk' | 147 channel = 'trunk' |
133 object_store_creator = ObjectStoreCreator(channel, | 148 object_store_creator = ObjectStoreCreator(channel, |
134 start_empty=False, | 149 start_empty=False, |
135 store_type=TestObjectStore) | 150 store_type=TestObjectStore) |
151 def file_system_creator(branch): | |
152 object_store_creator = ObjectStoreCreator(branch, | |
not at google - send to devlin
2013/05/13 21:26:41
why do you need a different object store creator?j
epeterson
2013/05/15 07:38:34
Done.
| |
153 start_empty=False, | |
154 store_type=TestObjectStore) | |
155 return CachingFileSystem(LocalFileSystem.Create(), object_store_creator) | |
136 return ServerInstance( | 156 return ServerInstance( |
137 channel, | 157 channel, |
138 object_store_creator, | 158 object_store_creator, |
139 CachingFileSystem(LocalFileSystem.Create(), object_store_creator), | 159 CachingFileSystem(LocalFileSystem.Create(), object_store_creator), |
not at google - send to devlin
2013/05/13 21:26:41
for that matter, use the above function to constru
epeterson
2013/05/15 07:38:34
Done.
| |
140 EmptyDirFileSystem()) | 160 EmptyDirFileSystem(), |
161 file_system_creator) | |
OLD | NEW |