cmd/jobs: interpret jobs/list response as JSON
Change-Id: Idf4f4766768c6f6aa7de65156befb83c1bd259c5
Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/498555
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Zvonimir Pavlinovic <zpavlinovic@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/cmd/jobs/main.go b/cmd/jobs/main.go
index da13d7c..638d1ab 100644
--- a/cmd/jobs/main.go
+++ b/cmd/jobs/main.go
@@ -15,6 +15,8 @@
"net/http"
"os"
"reflect"
+ "text/tabwriter"
+ "time"
credsapi "cloud.google.com/go/iam/credentials/apiv1"
credspb "cloud.google.com/go/iam/credentials/apiv1/credentialspb"
@@ -113,12 +115,21 @@
if err != nil {
return err
}
- body, err := httpGet(ctx, workerURL+"/jobs/list", token)
+ joblist, err := requestJSON[[]jobs.Job](ctx, "jobs/list", token)
if err != nil {
return err
}
- fmt.Printf("%s\n", body)
- return nil
+ tw := tabwriter.NewWriter(os.Stdout, 2, 8, 1, ' ', 0)
+ fmt.Fprintf(tw, "ID\tUser\tStart Time\tStarted\tFinished\tTotal\tCanceled\n")
+ for _, j := range *joblist {
+ fmt.Fprintf(tw, "%s\t%s\t%s\t%d\t%d\t%d\t%t\n",
+ j.ID(), j.User, j.StartedAt.Format(time.RFC3339),
+ j.NumStarted,
+ j.NumSkipped+j.NumFailed+j.NumErrored+j.NumSucceeded,
+ j.NumEnqueued,
+ j.Canceled)
+ }
+ return tw.Flush()
}
func doCancel(ctx context.Context, args []string) error {