From 97aa259615d7b50a18f9b32a99d6dad9ffbb5cab Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 22 Nov 2018 15:07:17 +0100 Subject: dashboard/app: show managers per namespaces End users are interested for managers only for a single namespace. So show them per-namespace. --- dashboard/app/main.go | 16 +++++++++++-- dashboard/app/main.html | 55 ++----------------------------------------- dashboard/app/templates.html | 56 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 55 deletions(-) (limited to 'dashboard') 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.

{{end}} - {{if $.Managers}} - - - - - - - - - - - - - - - - {{range $mgr := $.Managers}} - - - - - {{if $mgr.CurrentBuild}} - - - - {{else}} - - - - {{end}} - - - - - - - {{end}} -
Managers:
NameActiveUptimeBuildKernelSyzkallerCorpusCoverageCrashesExecsFailed Build
- {{if $mgr.Link}}{{end}} - {{$mgr.Namespace}}/{{$mgr.Name}} - {{if $mgr.Link}}{{end}} - {{formatLateness $.Now $mgr.LastActive}}{{formatDuration $mgr.CurrentUpTime}}{{formatLateness $.Now $mgr.CurrentBuild.Time}}{{formatShortHash $mgr.CurrentBuild.KernelCommit}}{{formatShortHash $mgr.CurrentBuild.SyzkallerCommit}}{{formatStat $mgr.MaxCorpus}} - {{if $mgr.CoverLink}} - - {{end}} - {{formatStat $mgr.MaxCover}} - {{if $mgr.CoverLink}} - - {{end}} - {{formatStat $mgr.TotalCrashes}}{{formatStat $mgr.TotalExecs}}{{if $mgr.FailedBuildBugLink}}bug{{end}}
-

- {{end}} + {{template "manager_list" $.Managers}} {{if $.Jobs}} @@ -132,6 +80,7 @@ Main page. {{if $ns.FixedLink}} fixed bugs ({{$ns.FixedCount}}) {{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 .}} +
+ + + + + + + + + + + + + + + {{range $mgr := .}} + + + + + {{if $mgr.CurrentBuild}} + + + + {{else}} + + + + {{end}} + + + + + + + {{end}} +
Managers:
NameActiveUptimeBuildKernelSyzkallerCorpusCoverageCrashesExecsFailed Build
+ {{if $mgr.Link}}{{end}} + {{$mgr.Namespace}}/{{$mgr.Name}} + {{if $mgr.Link}}{{end}} + {{formatLateness $mgr.Now $mgr.LastActive}}{{formatDuration $mgr.CurrentUpTime}}{{formatLateness $mgr.Now $mgr.CurrentBuild.Time}}{{formatShortHash $mgr.CurrentBuild.KernelCommit}}{{formatShortHash $mgr.CurrentBuild.SyzkallerCommit}}{{formatStat $mgr.MaxCorpus}} + {{if $mgr.CoverLink}} + + {{end}} + {{formatStat $mgr.MaxCover}} + {{if $mgr.CoverLink}} + + {{end}} + {{formatStat $mgr.TotalCrashes}}{{formatStat $mgr.TotalExecs}}{{if $mgr.FailedBuildBugLink}}bug{{end}}
+{{end}} +{{end}} -- cgit mrf-deployment