914ef27c63
Will now recognize warnings as a status. Returns proper HTTP status codes for the most common errors now. Will be more strict when checking build status data (no newlines in bot names). Prepared cron scripts. Prepared dashboard for production use. BUG= TEST= Review URL: https://webrtc-codereview.appspot.com/404003 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1772 4adac7df-926f-26a2-2b94-8c16560cd09d
58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
#-*- coding: utf-8 -*-
|
|
# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
"""Implements the quality tracker dashboard and reporting facilities."""
|
|
|
|
__author__ = 'phoglund@webrtc.org (Patrik Höglund)'
|
|
|
|
from google.appengine.ext.webapp import template
|
|
import webapp2
|
|
|
|
import add_build_status_data
|
|
import add_coverage_data
|
|
import load_build_status
|
|
import load_coverage
|
|
|
|
|
|
class ShowDashboard(webapp2.RequestHandler):
|
|
"""Shows the dashboard page.
|
|
|
|
The page is shown by grabbing data we have stored previously
|
|
in the App Engine database using the AddCoverageData handler.
|
|
"""
|
|
|
|
def get(self):
|
|
build_status_loader = load_build_status.BuildStatusLoader()
|
|
build_status_data = build_status_loader.load_build_status_data()
|
|
last_updated_at = build_status_loader.load_last_modified_at()
|
|
if last_updated_at is None:
|
|
self._show_error_page("No data has yet been uploaded to the dashboard.")
|
|
return
|
|
|
|
last_updated_at = last_updated_at.strftime("%Y-%m-%d %H:%M")
|
|
lkgr = build_status_loader.compute_lkgr()
|
|
|
|
coverage_loader = load_coverage.CoverageDataLoader()
|
|
coverage_json_data = coverage_loader.load_coverage_json_data()
|
|
|
|
page_template_filename = 'templates/dashboard_template.html'
|
|
self.response.write(template.render(page_template_filename, vars()))
|
|
|
|
def _show_error_page(self, error_message):
|
|
self.response.write('<html><body>%s</body></html>' % error_message)
|
|
|
|
|
|
app = webapp2.WSGIApplication([('/', ShowDashboard),
|
|
('/add_coverage_data',
|
|
add_coverage_data.AddCoverageData),
|
|
('/add_build_status_data',
|
|
add_build_status_data.AddBuildStatusData)],
|
|
debug=True)
|