OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 | 2 |
3 """ | 3 """ |
4 Copyright 2013 Google Inc. | 4 Copyright 2013 Google Inc. |
5 | 5 |
6 Use of this source code is governed by a BSD-style license that can be | 6 Use of this source code is governed by a BSD-style license that can be |
7 found in the LICENSE file. | 7 found in the LICENSE file. |
8 | 8 |
9 HTTP server for our HTML rebaseline viewer. | 9 HTTP server for our HTML rebaseline viewer. |
10 """ | 10 """ |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 'png': 'image/png', | 58 'png': 'image/png', |
59 'js': 'application/javascript', | 59 'js': 'application/javascript', |
60 'json': 'application/json' | 60 'json': 'application/json' |
61 } | 61 } |
62 | 62 |
63 # Keys that server.py uses to create the toplevel content header. | 63 # Keys that server.py uses to create the toplevel content header. |
64 # NOTE: Keep these in sync with static/constants.js | 64 # NOTE: Keep these in sync with static/constants.js |
65 KEY__EDITS__MODIFICATIONS = 'modifications' | 65 KEY__EDITS__MODIFICATIONS = 'modifications' |
66 KEY__EDITS__OLD_RESULTS_HASH = 'oldResultsHash' | 66 KEY__EDITS__OLD_RESULTS_HASH = 'oldResultsHash' |
67 KEY__EDITS__OLD_RESULTS_TYPE = 'oldResultsType' | 67 KEY__EDITS__OLD_RESULTS_TYPE = 'oldResultsType' |
68 URL_KEY__SCHEMA_VERSION = 'urlSchemaVersion' | |
69 URL_VALUE__SCHEMA_VERSION__CURRENT = 0 | |
70 # always interpret as then-current schema version; | |
71 # used for toplevel links on index page | |
72 URL_VALUE__SCHEMA_VERSION__ALWAYS_CURRENT = 'current' | |
73 | 68 |
74 DEFAULT_ACTUALS_DIR = results_mod.DEFAULT_ACTUALS_DIR | 69 DEFAULT_ACTUALS_DIR = results_mod.DEFAULT_ACTUALS_DIR |
75 DEFAULT_GM_SUMMARIES_BUCKET = download_actuals.GM_SUMMARIES_BUCKET | 70 DEFAULT_GM_SUMMARIES_BUCKET = download_actuals.GM_SUMMARIES_BUCKET |
76 DEFAULT_JSON_FILENAME = download_actuals.DEFAULT_JSON_FILENAME | 71 DEFAULT_JSON_FILENAME = download_actuals.DEFAULT_JSON_FILENAME |
77 DEFAULT_PORT = 8888 | 72 DEFAULT_PORT = 8888 |
78 | 73 |
79 PARENT_DIRECTORY = os.path.dirname(os.path.realpath(__file__)) | 74 PARENT_DIRECTORY = os.path.dirname(os.path.realpath(__file__)) |
80 TRUNK_DIRECTORY = os.path.dirname(os.path.dirname(PARENT_DIRECTORY)) | 75 TRUNK_DIRECTORY = os.path.dirname(os.path.dirname(PARENT_DIRECTORY)) |
81 # Directory, relative to PARENT_DIRECTORY, within which the server will serve | 76 # Directory, relative to PARENT_DIRECTORY, within which the server will serve |
82 # out live results (not static files). | 77 # out live results (not static files). |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 with open(file_path, 'w') as file_handle: | 157 with open(file_path, 'w') as file_handle: |
163 file_handle.write( | 158 file_handle.write( |
164 '<!DOCTYPE html><html>' | 159 '<!DOCTYPE html><html>' |
165 '<head><title>rebaseline_server</title></head>' | 160 '<head><title>rebaseline_server</title></head>' |
166 '<body><ul>') | 161 '<body><ul>') |
167 if SUMMARY_TYPES: | 162 if SUMMARY_TYPES: |
168 file_handle.write('<li>Expectations vs Actuals</li><ul>') | 163 file_handle.write('<li>Expectations vs Actuals</li><ul>') |
169 for summary_type in SUMMARY_TYPES: | 164 for summary_type in SUMMARY_TYPES: |
170 file_handle.write( | 165 file_handle.write( |
171 '<li><a href="/{static_subdir}/view.html#/view.html?' | 166 '<li><a href="/{static_subdir}/view.html#/view.html?' |
172 '{version_key}={version_value}&' | |
173 'resultsToLoad=/{results_subdir}/{summary_type}">' | 167 'resultsToLoad=/{results_subdir}/{summary_type}">' |
174 '{summary_type}</a></li>'.format( | 168 '{summary_type}</a></li>'.format( |
175 results_subdir=RESULTS_SUBDIR, | 169 results_subdir=RESULTS_SUBDIR, |
176 static_subdir=STATIC_CONTENTS_SUBDIR, | 170 static_subdir=STATIC_CONTENTS_SUBDIR, |
177 summary_type=summary_type, | 171 summary_type=summary_type)) |
178 version_key=URL_KEY__SCHEMA_VERSION, | |
179 version_value=URL_VALUE__SCHEMA_VERSION__ALWAYS_CURRENT)) | |
180 file_handle.write('</ul>') | 172 file_handle.write('</ul>') |
181 if config_pairs: | 173 if config_pairs: |
182 file_handle.write('<li>Comparing configs within actual results</li><ul>') | 174 file_handle.write('<li>Comparing configs within actual results</li><ul>') |
183 for config_pair in config_pairs: | 175 for config_pair in config_pairs: |
184 file_handle.write('<li>%s vs %s:' % config_pair) | 176 file_handle.write('<li>%s vs %s:' % config_pair) |
185 for summary_type in SUMMARY_TYPES: | 177 for summary_type in SUMMARY_TYPES: |
186 file_handle.write( | 178 file_handle.write( |
187 ' <a href="/%s/view.html#/view.html?' | 179 ' <a href="/%s/view.html#/view.html?' |
188 'resultsToLoad=/%s/%s/%s-vs-%s_%s.json">%s</a>' % ( | 180 'resultsToLoad=/%s/%s/%s-vs-%s_%s.json">%s</a>' % ( |
189 STATIC_CONTENTS_SUBDIR, STATIC_CONTENTS_SUBDIR, | 181 STATIC_CONTENTS_SUBDIR, STATIC_CONTENTS_SUBDIR, |
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 json_filename=args.json_filename, | 693 json_filename=args.json_filename, |
702 gm_summaries_bucket=args.gm_summaries_bucket, | 694 gm_summaries_bucket=args.gm_summaries_bucket, |
703 port=args.port, export=args.export, editable=args.editable, | 695 port=args.port, export=args.export, editable=args.editable, |
704 reload_seconds=args.reload, config_pairs=config_pairs, | 696 reload_seconds=args.reload, config_pairs=config_pairs, |
705 builder_regex_list=args.builders) | 697 builder_regex_list=args.builders) |
706 _SERVER.run() | 698 _SERVER.run() |
707 | 699 |
708 | 700 |
709 if __name__ == '__main__': | 701 if __name__ == '__main__': |
710 main() | 702 main() |
OLD | NEW |