open-nomad/command/eval.go

69 lines
1.6 KiB
Go
Raw Normal View History

2018-03-21 00:37:28 +00:00
package command
2018-03-21 21:04:54 +00:00
import (
"fmt"
2018-03-21 21:04:54 +00:00
"strings"
"github.com/hashicorp/nomad/api"
2018-03-21 21:04:54 +00:00
"github.com/mitchellh/cli"
)
2018-03-21 00:37:28 +00:00
type EvalCommand struct {
Meta
}
func (f *EvalCommand) Help() string {
2018-03-21 21:04:54 +00:00
helpText := `
Usage: nomad eval <subcommand> [options] [args]
This command groups subcommands for interacting with evaluations. Evaluations
are used to trigger a scheduling event. As such, evaluations are an internal
detail but can be useful for debugging placement failures when the cluster
does not have the resources to run a given job.
List evaluations:
$ nomad eval list
2018-03-21 21:04:54 +00:00
Examine an evaluations status:
$ nomad eval status <eval-id>
Delete evaluations:
$ nomad eval delete <eval-id>
2018-03-21 21:04:54 +00:00
Please see the individual subcommand help for detailed usage information.
`
return strings.TrimSpace(helpText)
2018-03-21 00:37:28 +00:00
}
func (f *EvalCommand) Synopsis() string {
return "Interact with evaluations"
}
func (f *EvalCommand) Name() string { return "eval" }
func (f *EvalCommand) Run(_ []string) int { return cli.RunResultHelp }
// outputEvalList is a helper which outputs an array of evaluations as a list
// to the UI with key information such as ID and status.
func outputEvalList(ui cli.Ui, evals []*api.Evaluation, length int) {
out := make([]string, len(evals)+1)
out[0] = "ID|Priority|Triggered By|Job ID|Status|Placement Failures"
for i, eval := range evals {
failures, _ := evalFailureStatus(eval)
out[i+1] = fmt.Sprintf("%s|%d|%s|%s|%s|%s",
limit(eval.ID, length),
eval.Priority,
eval.TriggeredBy,
eval.JobID,
eval.Status,
failures,
)
}
ui.Output(formatList(out))
2018-03-21 00:37:28 +00:00
}