aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-11-22 15:07:17 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-11-22 15:07:17 +0100
commit97aa259615d7b50a18f9b32a99d6dad9ffbb5cab (patch)
tree7dd9a9e8d2c582edf4b3a976518707b76201aa6e /dashboard
parent79d9c3191f93ed4f3691987fde1cdadd7701e09c (diff)
dashboard/app: show managers per namespaces
End users are interested for managers only for a single namespace. So show them per-namespace.
Diffstat (limited to 'dashboard')
-rw-r--r--dashboard/app/main.go16
-rw-r--r--dashboard/app/main.html55
-rw-r--r--dashboard/app/templates.html56
3 files changed, 72 insertions, 55 deletions
diff --git a/dashboard/app/main.go b/dashboard/app/main.go
index 6a8c19f1e..aee82ed8a 100644
--- a/dashboard/app/main.go
+++ b/dashboard/app/main.go
@@ -44,6 +44,7 @@ type uiMain struct {
}
type uiManager struct {
+ Now time.Time
Namespace string
Name string
Link string
@@ -86,6 +87,7 @@ type uiBugNamespace struct {
Caption string
FixedLink string
FixedCount int
+ Managers []*uiManager
Groups []*uiBugGroup
}
@@ -162,9 +164,9 @@ func handleMain(c context.Context, w http.ResponseWriter, r *http.Request) error
var errorLog []byte
var managers []*uiManager
var jobs []*uiJob
+ accessLevel := accessLevel(c, r)
if r.FormValue("fixed") == "" {
var err error
- accessLevel := accessLevel(c, r)
managers, err = loadManagers(c, accessLevel)
if err != nil {
return err
@@ -184,14 +186,23 @@ func handleMain(c context.Context, w http.ResponseWriter, r *http.Request) error
if err != nil {
return err
}
+ for _, ns := range bugNamespaces {
+ for _, mgr := range managers {
+ if ns.Name == mgr.Namespace {
+ ns.Managers = append(ns.Managers, mgr)
+ }
+ }
+ }
data := &uiMain{
Header: commonHeader(c, r),
Now: timeNow(c),
Log: errorLog,
- Managers: managers,
Jobs: jobs,
BugNamespaces: bugNamespaces,
}
+ if accessLevel == AccessAdmin {
+ data.Managers = managers
+ }
return serveTemplate(w, "main.html", data)
}
@@ -757,6 +768,7 @@ func loadManagers(c context.Context, accessLevel AccessLevel) ([]*uiManager, err
link = ""
}
results = append(results, &uiManager{
+ Now: timeNow(c),
Namespace: mgr.Namespace,
Name: mgr.Name,
Link: link,
diff --git a/dashboard/app/main.html b/dashboard/app/main.html
index 46a8884a3..8b349acbb 100644
--- a/dashboard/app/main.html
+++ b/dashboard/app/main.html
@@ -24,59 +24,7 @@ Main page.
<br><br>
{{end}}
- {{if $.Managers}}
- <table class="list_table">
- <caption id="managers"><a class="plain" href="#managers">Managers:</a></caption>
- <tr>
- <th>Name</th>
- <th>Active</th>
- <th>Uptime</th>
- <th>Build</th>
- <th>Kernel</th>
- <th>Syzkaller</th>
- <th>Corpus</th>
- <th>Coverage</th>
- <th>Crashes</th>
- <th>Execs</th>
- <th>Failed Build</th>
- </tr>
- {{range $mgr := $.Managers}}
- <tr>
- <td>
- {{if $mgr.Link}}<a href="{{$mgr.Link}}">{{end}}
- {{$mgr.Namespace}}/{{$mgr.Name}}
- {{if $mgr.Link}}</a>{{end}}
- </td>
- <td class="stat {{if $mgr.LastActiveBad}}bad{{end}}">{{formatLateness $.Now $mgr.LastActive}}</td>
- <td class="stat">{{formatDuration $mgr.CurrentUpTime}}</td>
- {{if $mgr.CurrentBuild}}
- <td class="stat">{{formatLateness $.Now $mgr.CurrentBuild.Time}}</td>
- <td class="stat" title="{{$mgr.CurrentBuild.KernelAlias}} {{$mgr.CurrentBuild.KernelCommit}}
-{{formatTime $mgr.CurrentBuild.KernelCommitDate}}">{{formatShortHash $mgr.CurrentBuild.KernelCommit}}</td>
- <td class="stat" title="{{$mgr.CurrentBuild.SyzkallerCommit}}">{{formatShortHash $mgr.CurrentBuild.SyzkallerCommit}}</td>
- {{else}}
- <td></td>
- <td></td>
- <td></td>
- {{end}}
- <td class="stat">{{formatStat $mgr.MaxCorpus}}</td>
- <td class="stat">
- {{if $mgr.CoverLink}}
- <a href="{{$mgr.CoverLink}}" target="_blank">
- {{end}}
- {{formatStat $mgr.MaxCover}}
- {{if $mgr.CoverLink}}
- </a>
- {{end}}
- </td>
- <td class="stat">{{formatStat $mgr.TotalCrashes}}</td>
- <td class="stat">{{formatStat $mgr.TotalExecs}}</td>
- <td class="stat">{{if $mgr.FailedBuildBugLink}}<a href="{{$mgr.FailedBuildBugLink}}" class="bad">bug</a>{{end}}</td>
- </tr>
- {{end}}
- </table>
- <br><br>
- {{end}}
+ {{template "manager_list" $.Managers}}
{{if $.Jobs}}
<table class="list_table">
@@ -132,6 +80,7 @@ Main page.
{{if $ns.FixedLink}}
<a href="{{$ns.FixedLink}}">fixed bugs ({{$ns.FixedCount}})</a>
{{end}}
+ {{template "manager_list" $ns.Managers}}
{{range $group := $ns.Groups}}
{{template "bug_list" $group}}
{{end}}
diff --git a/dashboard/app/templates.html b/dashboard/app/templates.html
index cc93e7637..2047db570 100644
--- a/dashboard/app/templates.html
+++ b/dashboard/app/templates.html
@@ -102,3 +102,59 @@ Use of this source code is governed by Apache 2 LICENSE that can be found in the
{{end}}
{{end}}
{{end}}
+
+{{/* List of managers, invoked with []*uiManager */}}
+{{define "manager_list"}}
+{{if .}}
+<table class="list_table">
+ <caption id="managers"><a class="plain" href="#managers">Managers:</a></caption>
+ <tr>
+ <th>Name</th>
+ <th>Active</th>
+ <th>Uptime</th>
+ <th>Build</th>
+ <th>Kernel</th>
+ <th>Syzkaller</th>
+ <th>Corpus</th>
+ <th>Coverage</th>
+ <th>Crashes</th>
+ <th>Execs</th>
+ <th>Failed Build</th>
+ </tr>
+ {{range $mgr := .}}
+ <tr>
+ <td>
+ {{if $mgr.Link}}<a href="{{$mgr.Link}}">{{end}}
+ {{$mgr.Namespace}}/{{$mgr.Name}}
+ {{if $mgr.Link}}</a>{{end}}
+ </td>
+ <td class="stat {{if $mgr.LastActiveBad}}bad{{end}}">{{formatLateness $mgr.Now $mgr.LastActive}}</td>
+ <td class="stat">{{formatDuration $mgr.CurrentUpTime}}</td>
+ {{if $mgr.CurrentBuild}}
+ <td class="stat">{{formatLateness $mgr.Now $mgr.CurrentBuild.Time}}</td>
+ <td class="stat" title="{{$mgr.CurrentBuild.KernelAlias}} {{$mgr.CurrentBuild.KernelCommit}}
+{{formatTime $mgr.CurrentBuild.KernelCommitDate}}">{{formatShortHash $mgr.CurrentBuild.KernelCommit}}</td>
+ <td class="stat" title="{{$mgr.CurrentBuild.SyzkallerCommit}}">{{formatShortHash $mgr.CurrentBuild.SyzkallerCommit}}</td>
+ {{else}}
+ <td></td>
+ <td></td>
+ <td></td>
+ {{end}}
+ <td class="stat">{{formatStat $mgr.MaxCorpus}}</td>
+ <td class="stat">
+ {{if $mgr.CoverLink}}
+ <a href="{{$mgr.CoverLink}}" target="_blank">
+ {{end}}
+ {{formatStat $mgr.MaxCover}}
+ {{if $mgr.CoverLink}}
+ </a>
+ {{end}}
+ </td>
+ <td class="stat">{{formatStat $mgr.TotalCrashes}}</td>
+ <td class="stat">{{formatStat $mgr.TotalExecs}}</td>
+ <td class="stat">{{if $mgr.FailedBuildBugLink}}<a href="{{$mgr.FailedBuildBugLink}}" class="bad">bug</a>{{end}}</td>
+ </tr>
+ {{end}}
+</table>
+{{end}}
+{{end}}