Changeset 114460 in webkit
- Timestamp:
- Apr 17, 2012, 4:08:05 PM (13 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r114451 r114460 1 2012-04-17 Ojan Vafai <ojan@chromium.org> 2 3 Add caching to the flakiness dashboard json files 4 https://bugs.webkit.org/show_bug.cgi?id=84198 5 6 Reviewed by Dirk Pranke. 7 8 * TestResultServer/handlers/testfilehandler.py: 9 (GetFile._get_file_list): 10 (GetFile._get_file_content): 11 (GetFile._get_file_content_from_key): 12 (GetFile._get_test_list_json): 13 (GetFile._serve_json): 14 Add a Last-Modified header and handle If-Modified-Since headers. 15 (GetFile.get): 16 1 17 2012-04-17 Anders Carlsson <andersca@apple.com> 2 18 -
trunk/Tools/TestResultServer/handlers/testfilehandler.py
r100865 r114460 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 29 import time 29 30 import logging 30 31 import re … … 111 112 if callback_name: 112 113 json = template.render("templates/showfilelist.jsonp", template_values) 113 self._serve_json(_replace_jsonp_callback(json, callback_name) )114 self._serve_json(_replace_jsonp_callback(json, callback_name), files[0].date) 114 115 return 115 116 self.response.out.write(template.render("templates/showfilelist.html", … … 130 131 logging.info("File not found, master %s, builder: %s, test_type: %s, name: %s.", 131 132 master, builder, test_type, name) 132 return None 133 134 return files[0].data 133 return None, None 134 135 return files[0].data, files[0].date 135 136 136 137 def _get_file_content_from_key(self, key): … … 142 143 143 144 file.load_data() 144 return file.data 145 return file.data, file.date 145 146 146 147 def _get_test_list_json(self, master, builder, test_type): … … 153 154 """ 154 155 155 json = self._get_file_content(master, builder, test_type, "results.json")156 json, date = self._get_file_content(master, builder, test_type, "results.json") 156 157 if not json: 157 158 return None 158 159 159 return JsonResults.get_test_list(builder, json) 160 161 def _serve_json(self, json ):160 return JsonResults.get_test_list(builder, json), date 161 162 def _serve_json(self, json, modified_date): 162 163 if json: 164 if "If-Modified-Since" in self.request.headers: 165 old_date = self.request.headers["If-Modified-Since"] 166 if time.strptime(old_date, '%a, %d %b %Y %H:%M:%S %Z') == modified_date.utctimetuple(): 167 self.response.set_status(304) 168 return 169 170 # The appengine datetime objects are naive, so they lack a timezone. 171 # In practice, appengine seems to use GMT. 172 self.response.headers["Last-Modified"] = modified_date.strftime('%a, %d %b %Y %H:%M:%S') + ' GMT' 163 173 self.response.headers["Content-Type"] = "application/json" 164 174 self.response.out.write(json) … … 188 198 189 199 if key: 190 json = self._get_file_content_from_key(key)200 json, date = self._get_file_content_from_key(key) 191 201 elif name == "results.json" and test_list_json: 192 json = self._get_test_list_json(master, builder, test_type)202 json, date = self._get_test_list_json(master, builder, test_type) 193 203 else: 194 json = self._get_file_content(master, builder, test_type, name)195 196 self._serve_json(_replace_jsonp_callback(json, callback_name) )204 json, date = self._get_file_content(master, builder, test_type, name) 205 206 self._serve_json(_replace_jsonp_callback(json, callback_name), date) 197 207 198 208
Note:
See TracChangeset
for help on using the changeset viewer.