diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-11-22 15:07:17 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-11-22 15:07:17 +0100 |
| commit | 97aa259615d7b50a18f9b32a99d6dad9ffbb5cab (patch) | |
| tree | 7dd9a9e8d2c582edf4b3a976518707b76201aa6e /dashboard | |
| parent | 79d9c3191f93ed4f3691987fde1cdadd7701e09c (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.go | 16 | ||||
| -rw-r--r-- | dashboard/app/main.html | 55 | ||||
| -rw-r--r-- | dashboard/app/templates.html | 56 |
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}} |
