X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/56d721569988522e5cca008a303b19d008b937dd..36b4a526be01a76eeb2ef2db645598f45f1de992:/lib/diagnostics/cmd.go diff --git a/lib/diagnostics/cmd.go b/lib/diagnostics/cmd.go index 4f3ad8b0ad..b0241b3ae4 100644 --- a/lib/diagnostics/cmd.go +++ b/lib/diagnostics/cmd.go @@ -31,7 +31,7 @@ func (cmd Command) RunCommand(prog string, args []string, stdin io.Reader, stdou f.StringVar(&diag.logLevel, "log-level", "info", "logging level (debug, info, warning, error)") f.BoolVar(&diag.checkInternal, "internal-client", false, "check that this host is considered an \"internal\" client") f.BoolVar(&diag.checkExternal, "external-client", false, "check that this host is considered an \"external\" client") - f.IntVar(&diag.priority, "priority", 500, "priority for test container (1..1000)") + f.IntVar(&diag.priority, "priority", 500, "priority for test container (1..1000, or 0 to skip)") f.DurationVar(&diag.timeout, "timeout", 10*time.Second, "timeout for http requests") err := f.Parse(args) if err == flag.ErrHelp { @@ -41,7 +41,7 @@ func (cmd Command) RunCommand(prog string, args []string, stdin io.Reader, stdou return 2 } diag.logger = ctxlog.New(stdout, "text", diag.logLevel) - diag.logger.SetFormatter(&logrus.TextFormatter{DisableTimestamp: true, DisableLevelTruncation: true}) + diag.logger.SetFormatter(&logrus.TextFormatter{DisableTimestamp: true, DisableLevelTruncation: true, PadLevelText: true}) diag.runtests() if len(diag.errors) == 0 { diag.logger.Info("--- no errors ---") @@ -72,15 +72,15 @@ type diagnoser struct { } func (diag *diagnoser) debugf(f string, args ...interface{}) { - diag.logger.Debugf(f, args...) + diag.logger.Debugf(" ... "+f, args...) } func (diag *diagnoser) infof(f string, args ...interface{}) { - diag.logger.Infof(f, args...) + diag.logger.Infof(" ... "+f, args...) } func (diag *diagnoser) warnf(f string, args ...interface{}) { - diag.logger.Warnf(f, args...) + diag.logger.Warnf(" ... "+f, args...) } func (diag *diagnoser) errorf(f string, args ...interface{}) { @@ -101,14 +101,15 @@ func (diag *diagnoser) dotest(id int, title string, fn func() error) { } diag.done[id] = true - diag.infof("%4d %s", id, title) + diag.logger.Infof("%4d: %s", id, title) t0 := time.Now() err := fn() - elapsed := fmt.Sprintf("%.0dms", time.Now().Sub(t0)/time.Millisecond) + elapsed := fmt.Sprintf("%d ms", time.Now().Sub(t0)/time.Millisecond) if err != nil { - diag.errorf("%s (%s): %s", title, elapsed, err) + diag.errorf("%4d: %s (%s): %s", id, title, elapsed, err) + } else { + diag.logger.Debugf("%4d: %s (%s): ok", id, title, elapsed) } - diag.debugf("%4d %s (%s): ok", id, title, elapsed) } func (diag *diagnoser) runtests() { @@ -333,13 +334,17 @@ func (diag *diagnoser) runtests() { var collection arvados.Collection diag.dotest(90, "creating temporary collection", func() error { + if project.UUID == "" { + return fmt.Errorf("skipping, no project to work in") + } ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(diag.timeout)) defer cancel() err := client.RequestAndDecodeContext(ctx, &collection, "POST", "arvados/v1/collections", nil, map[string]interface{}{ "ensure_unique_name": true, "collection": map[string]interface{}{ - "name": "test collection", - "trash_at": time.Now().Add(time.Hour)}}) + "owner_uuid": project.UUID, + "name": "test collection", + "trash_at": time.Now().Add(time.Hour)}}) if err != nil { return err } @@ -528,9 +533,12 @@ func (diag *diagnoser) runtests() { diag.dotest(160, "running a container", func() error { if diag.priority < 1 { - diag.debugf("skipping, caller requested priority<1 (%d)", diag.priority) + diag.infof("skipping (use priority > 0 if you want to run a container)") return nil } + if project.UUID == "" { + return fmt.Errorf("skipping, no project to work in") + } var cr arvados.ContainerRequest ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(diag.timeout))